Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
#1 24/03/2013 23:26:33
- doha-i2m
- Membre
insertion d'un objet en fonction du nom de la table selectionné
Bonjour,
Voici mon problème, je voudrais lister les noms des tables que j'avais dans ma base dans un menu déroulant, l'utilisateur choisi la table dans laquelle il va insérer l'objet, un formulaire sera alors affiché contenant des champs des attributs de cette table pour les remplir, l'insertion s'effectue. voilà mon code pour le moment:
<?php
echo "<html>";
echo "<body>";
echo "<form name='ajout_obj' action='test1.php' method='post'>";
echo "Classe :";
$dbconn = pg_connect("host=localhost port=5432 dbname=postgis user=user password=root")or die("Connexion impossible");
$result = pg_query ($dbconn, "SELECT cname FROM classofclasses");
echo " <select name='classe'>";
while ($row = pg_fetch_row($result)) {
echo "<option value='$row[0]' name='$row[0]'> $row[0]</option>";
}
echo "</select>";
echo "<INPUT name='valider' type='submit' value='Valider'>";
echo "</form>";
echo "</body>";
echo "</html>";
?>
<?php
$dbconn = pg_connect("host=localhost port=5432 dbname=postgis user=user password=root")or die("Connexion impossible");echo "<form name='ajout_obj1' action='test2.php' method='post'>";
if(isset($_POST['valider'])){
$classe = $_POST['classe'];
echo "classe: $classe <br>";
$res = pg_query ($dbconn, "SELECT * FROM $classe ");
$i = pg_num_fields($res);
for ($j = 0; $j < $i; $j++) {
$fieldname = pg_field_name($res, $j);
echo "$fieldname\n:";
echo "<input type='text' name=$fieldname>";
echo "<br>";
}
echo "<INPUT name='valider1' type='submit' value='Valider'>";
echo "</form>";
echo "</body>";
echo "</html>";
}
Le problème est ici! lors de la récupération et l'insertion des données:
if(isset($_POST['valider1']))
{
$classe = $_POST['classe'];
$res = pg_query ($dbconn, "SELECT * FROM $classe ");
$i = pg_num_fields($res);
for ($j = 0; $j < $i; $j++) {
$fieldname[j] = pg_field_name($res, $j);
}
$id = $_POST['$fieldname[0]'];$name=$_POST['$fieldname[1]'];
$res=pg_query($dbconn, "INSERT INTO '$classe' VALUES ('$id','$name')");
if (!$res) {
echo "erreur";
} else {echo "insertion effectué";
}
}
Au début tout ça marcha bien , les attributs sont affichés, le problème réside dans le dernier code au niveau du nom de la table ($classe) et au niveau de la récupération des noms des champs!
Je suis débutante :\ heelp plz
Hors ligne
#2 25/03/2013 00:05:02
- gleu
- Administrateur
Re : insertion d'un objet en fonction du nom de la table selectionné
Ne pas utiliser de guillemets simples autour du nom de la table. Ne pas utiliser de guillemets simples pour les valeurs entières.
Cette fois-ci, c'était simple. La prochaine fois, pensez à donner le message d'erreur pour qu'on n'ait pas à jouer aux devinettes.
Guillaume.
Hors ligne