Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 Re : PL/pgSQL » Utilisation de RETURNING » 13/06/2012 00:12:19
Corrigé merci ![]()
#2 Re : PL/pgSQL » Utilisation de RETURNING » 12/06/2012 22:22:33
Donc si je fais
<?php
$dbconnect=pg_connect("host=localhost dbname=Stanhome user=postgres password=ifesuh2m");
$num_cli=$_POST['num_client'];
$total=$_POST['total_ht'];
$insert_commandes="INSERT INTO commandes (num_com, total_com, num_pers) VALUES (DEFAULT,'".$total."','".$num_cli."') RETURNING num_com"; // ?????$result=pg_query($dbconnect, $insert_commandes);
while ($row = pg_fetch_array($result)) {
echo $row['num_com'];
}
$insert_ok=true;
foreach($_POST['num_produit'] as $cle=>$numproduit){
$qteproduit = $_POST['qte_produit'][$cle];
$insert_composer="INSERT INTO composer VALUES ('".$qteproduit."', '".$row['num_com']."','".$numproduit."')";if(!$insert_composer) {$insert_ok=false;}
//}
}
pg_query($dbconnect, $insert_composer);
//message
if($insert_ok){
echo "Commande enregistrée";
}else{
echo "PB Commande non enregistrée";
}
?>
Cela fonctionne ? J'ai un peu de mal à comprendre l'idée là.
#3 PL/pgSQL » Utilisation de RETURNING » 12/06/2012 21:15:13
- Kevfou
- Réponses : 5
Bonjour,
J'essaie, en vain, de faire une double requête d'insertion avec pour la 2éme la récupération de la clé primaire créer dans la 1ere requête.
Je m'explique avec un exemple:
<?php
$dbconnect=pg_connect("host=localhost dbname=Stanhome user=postgres password=.....");
$num_cli=$_POST['num_client'];
$total=$_POST['total_ht'];$insert_commandes="INSERT INTO commandes (num_com, total_com, num_pers) VALUES (DEFAULT,'".$total."','".$num_cli."') RETURNING num_com";
pg_query($dbconnect, $insert_commandes);
$insert_ok=true;
foreach($_POST['num_produit'] as $cle=>$numproduit){
$qteproduit = $_POST['qte_produit'][$cle];
$insert_composer="INSERT INTO composer VALUES ('".$qteproduit."', num_com,'".$numproduit."')";if(!$insert_composer) {$insert_ok=false;}
}
pg_query($dbconnect, $insert_composer);
if($insert_ok){
echo "Commande enregistrée";
}else{
echo "PB Commande non enregistrée";
}
?>
Donc l'idée, dans la première requête:
$insert_commandes="INSERT INTO commandes (num_com, total_com, num_pers) VALUES (DEFAULT,'".$total."','".$num_cli."') RETURNING num_com";
Je dois insérer ceci dans ma bdd et récupérer (avec RETURNING ???) la clé primaire auto-incrémenté' (avec le DEFAULT) pour ensuite l'insérer dans la 2éme requête:
Citation:
$insert_composer="INSERT INTO composer VALUES ('".$qteproduit."',ICI,'".$numproduit."')";
Hors comment faire cela ?
Merci de votre aide ![]()
#4 Re : Installation » "L'initialisation du cluster de bases de données à échoué" » 30/01/2012 13:57:43
Aucun soucis.
Au final cela fonctionne donc tout vas bien. ![]()
Je profites en même temps de ton aide pour une derniere chose (je l'espères)
J'essaie de faire une restauration d'une .backup mais en vain.
1/ Je crées une base de données.
2/ Clique droit sur celle-ci "Restaurer"
3/ Je choisis le format "personnalisé ou tar"
4/ je sélectionne mon fichier .backup
5/ Je ne peux pas cliquer sur le bouton restauration, pourquoi ?
Ceci doit être mon dernier problème je penses, je n'ai jamais eu à faire de restauration de BDD sous pgAdmin auparavant.
#5 Re : Installation » "L'initialisation du cluster de bases de données à échoué" » 30/01/2012 13:00:19
pgAdmin fonctionne parfaitement bien avec l'utilisateur machine.
Merci beaucoup rjuju, je vais enfin pouvoir travailler sur ma BDD.
Je n'aurai pas réussi sans aide !
#6 Re : Installation » "L'initialisation du cluster de bases de données à échoué" » 30/01/2012 12:48:04
j'utilises PG en localhost
#7 Re : Installation » "L'initialisation du cluster de bases de données à échoué" » 30/01/2012 12:43:17
Port 5432
Adresse ?
Il y a un service PostgreSQL en cours d'éxécution.
#8 Re : Installation » "L'initialisation du cluster de bases de données à échoué" » 30/01/2012 12:27:39
c:\data contient beaucoup de choses:
dossiers:
base
global
pg_clog
pg_multixact
pg_notify
pg_serial
pg_stat_tmp
pg_subtrans
pg_tblspc
pg_twophase
pg_xlog
fichiers:
pg_hba.conf
pg_ident.conf
pg_version
postgresql.conf
postmaster.opts
postmaster.pid
Dans le rapport des Applications je me retrouves avec des dizaines de lignes erreur PostgreSQL à cause de l'erreur cité au dessus concernant le rôle inexistant.
#9 Re : Installation » "L'initialisation du cluster de bases de données à échoué" » 30/01/2012 12:20:03
Oui le -D était bien "C:\data\".
J'utilise PgAdmin pour gérer mes BDD, pas les lignes de commandes.
Je n'ai pas de fichier pg_log dans c:\data
#10 Re : Installation » "L'initialisation du cluster de bases de données à échoué" » 30/01/2012 12:12:44
Oui, toujours le même message.
Quand je lances dans la commande pg_config --bindir je n'ai aucun résultat.
#11 Re : Installation » "L'initialisation du cluster de bases de données à échoué" » 30/01/2012 11:59:43
Toujours rien, je n'arrives pas effectuer un ajout de serveur sous pgAdmin.Toujours le message suivant:
Error connecting to the server: FATAL: le rôle "Postgresql"' n'éxiste pas.
#12 Re : Installation » "L'initialisation du cluster de bases de données à échoué" » 30/01/2012 11:33:59
je le vois bien mais:
Erreur 1069: l'échec d'une ouverture de session a empêché le démarrage du service.
C'est bien compliqué là....
Jai donc modifié le type de compte à utiliser en choisissant l'autre solution et là il démarre.
Quand je lances PgAdmin et que je clique sur l'icône en forme de prise électrique
je rentres:
nom: localhost
hôte: localhost
port: 5432
service:
base maintenance: postgres
nom utilisateur: Postgresql
mdp: monmdp
et....:
Error connecting to the server: FATAL: le rôle "Postgresql"' n'éxiste pas.
or le service porte se nom là, et aucun autres utilisateurs ne fonctionnent.
#13 Re : Installation » "L'initialisation du cluster de bases de données à échoué" » 30/01/2012 11:25:38
Je viens d'effectuer la manip avec cmd en administrateur.
Je ne sais pas si cela à fonctionner, je n'ai aucun message sur la commande lors de l'éxécution, j'arrive de suite à une nouvelle ligne.
en faisant pg_ctl.exe status -D "C:\data\" => aucun serveur en cours d'éxécution
#14 Re : Installation » "L'initialisation du cluster de bases de données à échoué" » 30/01/2012 11:17:01
@ Marc Cousin: Oui j'ai bien tout les dossiers créer lors de l'instal
@Rjuju: j'ai effectué la 1ère tâche initdb.exe avec succès.
En revanche pour pg_ctl je n'arrives pas à l'effectuer.
Pourtant je suis bien dans le bon dossier
C:\wamp\apps\bin > pg_ctl.exe register -N Postgresql -U postgres -P monmdp -D"C:\data\" => pg_ctl n'a pas pu ouvrir le gestionnaire de services.
La BDd n'est pas au même endroit que l'install, cela n'a posé aucun soucis lors de l'utilisation de initdb.exe.
#15 Re : Installation » "L'initialisation du cluster de bases de données à échoué" » 26/01/2012 17:53:36
"Si lors de l'installation vous avez bien les fichiers binaires installés" => Les fichiers binaires ?
Je comprends pas vraiment, je suis pas un grand fan de l'invite de commande mais je ne rebuts pas à l'utiliser si vous expliquez un chouilla plus en détail ![]()
#16 Re : Installation » "L'initialisation du cluster de bases de données à échoué" » 26/01/2012 11:27:42
Arf, bizarre car à la maison sur un anti-virus Avira l'installation fonctionnait très bien.
Je vais essayé de voir avec l'admin réseaux de l'entreprise.
Merci de votre aide
#17 Re : Installation » "L'initialisation du cluster de bases de données à échoué" » 26/01/2012 10:59:45
Malheureusement je ne pas faire cette manipulation.
Je suis en entreprise, les PC fonctionnent sous Kaspersky licence payante.
il est donc hors de question de le désinstaller....
#18 Installation » "L'initialisation du cluster de bases de données à échoué" » 26/01/2012 10:54:20
- Kevfou
- Réponses : 43
Bonjour,
J'essaie en vain d'installer PG sur cette ordinateur mais à chaque fois j'ai le message suivant:
"Problem running post-install step. Installation may not complete correctly. l'initalisation du cluster de bases de donnée à échoués".
Je lances pourtant l'installation en mode administrateur, je suis admin du pc.
Si je fais continuer, je peux bien accéder a PGadmin mais aucun serveur n’existe.
Chose étrange, j'ai réussi à l'installer correctement il y a 3 mois sur un autre ordinateur.
J'ai fait des recherches sur ce forum et sur internet mais je n'ai trouvé aucune solution, c'est pourquoi je me tournes vers vour.
Windows 7 64 bits
Bonne journée
Merci ![]()
Pages : 1