Page 1 sur 1
PHP / POSTGRES : manipulation de données
Posté : 05 août 2005, 11:55
par odyssee
Bonjour,
Je cherche à insérer des données dans une table (PostGres) mais en utilisant une boucle via un script php(plutot qu'un auto_increment), pour numéroter les lignes de 1 à n. Mais cela ne marche pas. Quelqu'un pourrait-il m'éclairer ? MERCI
<?php
pg_connect...
//creation table :
pg_exec ($conn_db, CREATE TABLE ma_table
(numero INT,
(titre VARCHAR (20))");
//maj de la table :
for ($j=1; $j<10; $j++);
pg_exec ($con_db, "INSERT INTO $ma_table[numero] VALUES ($j)");
pg_close...
?>
Posté : 05 août 2005, 12:44
par Cyrano
Qu'est-ce que t'empèche d'utiliser un champ en auto-increment ?
Posté : 05 août 2005, 12:54
par odyssee
Rien ne m'empeche d'utiliser l'auto_increment (bien plus simple...). Simplement il s'agit là d'un exercice pour me familiariser avec l'utilisation des boucles pour php/postgres (je suis une novice).
Posté : 05 août 2005, 13:02
par Cyrano
Ok, t'exite pas sur le bouton d'envoi de message, ça répète l'opération pour rien.
Pour ton problème, il s'agit alors de récupérer le dernier numéro enregistré pour ne pas risquer d'enregistrer un doublon, ce qui louperait puisque, si c'est une clé primaire, ton SGBD va te jeter en refusant le doublon.
Une fois que tu as ce numéro, il te suffit de l'incrémenter et d'insérer ta nouvelle ligne.
Où est la difficulté ?
Posté : 05 août 2005, 13:59
par odyssee
Sorry, pour le double envoi.
En fait, il s'agit d'une table ne contenant aucun enregistrement. Je ne peux donc pas récupérer le dernier numéro enregistré.
Posté : 05 août 2005, 14:08
par NoNos
Si ta table est vide tu prend comme numero d'index 1 sinon tu cherche le numero du dernier
Posté : 05 août 2005, 14:25
par Invité
J'ai bien pris 1 comme point de départ. Mais la boucle ne fonctionne pas.
J'ai en retour le message d'erreur suivant : "parse error near or at 10"
//maj de la table :
for ($j=1; $j<10; $j++);
pg_exec ($con_db, "INSERT INTO $ma_table[numero] VALUES ($j)");
pg_close...
Posté : 07 août 2005, 20:11
par Maitrepylos
attention sur Postgres (je viens d'avoir le problème), si tu as fais des insertions dans le bdd et puis si tu les as effacer, postgres ne recommence pas à 0, à vérifier!
MaitrePylos