Existence de donnée dans base de donnée

Résolu
gabs77 Messages postés 379 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 8 octobre 2008 - 2 avril 2006 à 19:53
gabs77 Messages postés 379 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 8 octobre 2008 - 2 avril 2006 à 21:27
Bonjour, j'ai 2 pb
dans un premier temps, j'aimerais enregistrer dans une base de donnée un champ
et pour une meme donnée g 2 possibilité liste déroulante (niveau) et champ de texte si il n existe pas dans la base de donnée(nivtext).si il n 'existe pas dans la base de donnée je l enregistre dans la table correspondante a parit du champ texte(nivtext)
jusque la sa va !! sa fonctionne !

<?
if (empty($_POST['niveau'])&&isset($_POST['nivtext'])){$niveau = $_POST['nivtext'];}else{$niveau = $_POST['niveau'];};

if (isset($_POST['nivtext']))
{
$bdd = mysql_connect($host,$login,$pass);
mysql_select_db($hostname,$bdd);
$sql = "INSERT INTO classe_docs (lib_classe) VALUES('$niveau')";
mysql_query($sql) or die ('Erreur SQL ! '.$sql.'
'.mysql_error());
...

je fais une requete pour recup l identifiant (en auto increment) de cette donnée
mais la requete me retourne toujours l erreur suivante :
"Champ 'xcv' inconnu dans where clause"
...
//on réassocie les vraies valeurs aux variables avant ajout $sql "SELECT * FROM classe_docs WHERE lib_classe ".$niveau;
$req = mysql_query($sql) or die ('Erreur SQL ! '.$sql.'
'.mysql_error());
while($resultat=mysql_fetch_array($req))
{
if ( $resultat = $niveau){echo"$niveau existe déjà !";}
}
}
?>

deuxiemement, j'aimerai tester les champs du formulaire pour savoir si la donnée existe déjà ou pas dans la table
si il existe faudrait retourner une valeur false en disan ke sa existe déjà
mais je vois pas trop comment on fait

6 réponses

sidf Messages postés 1216 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 18 octobre 2012 5
2 avril 2006 à 20:29
$id=mysql_insert_id();



tu fais comme ça ?
3
sidf Messages postés 1216 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 18 octobre 2012 5
2 avril 2006 à 20:42
pas de requete à faire pour recuperer la derniere id d'insertion
3
sidf Messages postés 1216 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 18 octobre 2012 5
2 avril 2006 à 20:25
if ( $resultat == $niveau)

d'une part
0
sidf Messages postés 1216 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 18 octobre 2012 5
2 avril 2006 à 20:28
je fais une requete pour recup l identifiant (en auto increment) de cette donnée

mais la requete me retourne toujours l erreur suivante :

"Champ 'xcv' inconnu dans where clause"



fais voir la requete mais apparemment xcv n'est pas un champ de ta table
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gabs77 Messages postés 379 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 8 octobre 2008
2 avril 2006 à 21:25
Merci, je ne connaissai pas cette fonction, elle est très utile
elle prend l'identifiant de la nouvelle valeur incrémentée comme cela en l associant à une variable je pe remplir ma table avec les bonnes clés étrangères

<?
$bdd = mysql_connect($host,$login,$pass);
mysql_select_db($hostname,$bdd);

if (empty($_POST['niveau']) && isset($_POST['nivtext']))
{
$niveau = $_POST['nivtext'];
}else{
$niveau = $_POST['niveau'];
};

if (isset($_POST['nivtext']))
{
$sql = "INSERT INTO table (libellé) VALUES ('$niveau')";
mysql_query($sql) or die ('Erreur SQL ! '.$sql.'
'.mysql_error());
//on affecte a la variable la valeur de l'id_niveau de la donnée incrémentée
$idniv = mysql_insert_id();
}

$champ2 = $_POST['valeur2'];
$champ3 = $_POST['valeur3'];
$champ4 = $_POST['valeur4'];

$sql = "INSERT INTO table2 (champ2, champ3, champ4, id_niveau)
VALUES('$champ2','$champ3','$champ4','$idniv')";
mysql_query($sql) or die ('Erreur SQL ! '.$sql.'
'.mysql_error());

C BON TOUT CELA FONCTIONNE !!
0
gabs77 Messages postés 379 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 8 octobre 2008
2 avril 2006 à 21:27
maintenant j'ai un autre souci
comment est ce que je fais pour tester si mon champ existe déjà ou pas
j'aimerai que sa effectue un test pour voir si le champ existait
dans ce cas echo'existe déjà';
0
Rejoignez-nous