Vous n'êtes pas identifié(e).
Pages : 1
Corrigé merci
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à.
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
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.
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 !
j'utilises PG en localhost
Port 5432
Adresse ?
Il y a un service PostgreSQL en cours d'éxécution.
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.
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
Oui, toujours le même message.
Quand je lances dans la commande pg_config --bindir je n'ai aucun résultat.
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.
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.
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
@ 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.
"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
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
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....
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