Vérifier champs ds une table php

Résolu/Fermé
lééé - 23 déc. 2009 à 15:01
 Nairolf - 3 janv. 2010 à 16:08
Bonjour,
je développe une application en php pour une entreprise et la j'ai un souci : quand l'utilisateur souhaitera entrer une nouvelle donnée dans la table, je veux vérifier si le nom qu'il entre est déjà présent dans la table ou pas !
Pour le moment j'ai mis :

//requete pr avoir tous les champs de ma table
if($nom = 'chps') //$nom correspond à ce que l'utilisateur a tapé et chps correspond à la colonne de ma table
{
echo 'impossible';
}
else
{
// insert into...
}

Sauf que maintenant, je ne peux plus entrer aucun nom alors que l'ajout doit se faire !
Je ne sais plus comment faire...
Merci de votre aide !

6 réponses

Bonjour

il faut deux = pour comparer, un seul ne suffit pas
D'autre part, si ton champ s'appelle chps, ce n'est pas en comparant avec 'chps' que tu compares avec ton champ. En faisant çà, tu compares avec le mot de 4 lettres chps, pas avec un champ.
ça doit donc plutôt donner quelque chose du genre
if($nom == $rep['chps']) ...
(en supposant que tu as extrait quelque chose de ta base et que tu l'as mis dans $rep avec un mysql_query)

On pourrait te donner une réponse plus précise si tu en montrais un peu plus long de ton code - notamment comment tu extrais les infos de ta base
0
Mopra-L
Messages postés
146
Date d'inscription
lundi 29 juin 2009
Statut
Membre
Dernière intervention
23 mai 2012
6
23 déc. 2009 à 15:12
Bonjour,

Attention, avec un seul "=", ca devient une affectation, ce qui est donc toujours vrai.

Edit : Ah, ben trop tard ^^
0
Merci pour votre aide

Voila mon code pour accepetr l'ajout ou non :
$mysqlLink = connexion(HOST,USER,PWD,BDD);

$nom=$_POST['nom'];

echo '<div id="ecriture1">';

$requete="SELECT idacces, tAcces FROM acces;";

if (strlen($nom) < 1 or strlen($nom) > 4)
{
echo'Ajout impossible !<br/><br/>';
echo'<div id="ecriture3"';
echo "<a href='acces.php'>• Retour au menu d'accès •</a>";
echo'</div>';
}
else
{
if ($nom = "tAcces")
{
echo'Le nom existe déjà !<br/><br/>';
echo'<div id="ecriture3"';
echo "<a href='acces.php'>• Retour au menu d'accès •</a>";
echo'</div>';
}
else
{
$sql="INSERT INTO acces VALUES ('','".$nom."');";
$jeu=@mysql_query($sql,$mysqlLink);

if ($jeu==true)
{
echo "Vous venez d'ajouter $nom.<br/><br/>";
$query="SELECT tAcces FROM acces;";
$result = mysql_query($query) or die("Requete non comprise");
echo "<table>";
echo'Comme accès, il y a : <br/>';
while ($tableau = mysql_fetch_array($result))
{
echo'• ';
echo $tableau['tAcces'] ;
echo '<br/>';
}
echo'<br/><br/>';
echo'<div id="ecriture3"';
echo "<a href='acces.php'>• Retour au menu d'accès •</a>";
echo'</div>';
}
else
{
echo 'Ajout impossible <br/><br/>';
echo'<div id="ecriture3"';
echo "<a href='acces.php'>• Retour au menu d'accès •</a>";
echo'</div>';
}

echo '</div>';
}
0
Merci pour votre aide

Voila mon code pour accepetr l'ajout ou non :
$mysqlLink = connexion(HOST,USER,PWD,BDD);

$nom=$_POST['nom'];

echo '<div id="ecriture1">';

$requete="SELECT idacces, tAcces FROM acces;";

if (strlen($nom) < 1 or strlen($nom) > 4)
{
echo'Ajout impossible !<br/><br/>';
echo'<div id="ecriture3"';
echo "<a href='acces.php'>• Retour au menu d'accès •</a>";
echo'</div>';
}
else
{
if ($nom = "tAcces")
{
echo'Le nom existe déjà !<br/><br/>';
echo'<div id="ecriture3"';
echo "<a href='acces.php'>• Retour au menu d'accès •</a>";
echo'</div>';
}
else
{
$sql="INSERT INTO acces VALUES ('','".$nom."');";
$jeu=@mysql_query($sql,$mysqlLink);

if ($jeu==true)
{
echo "Vous venez d'ajouter $nom.<br/><br/>";
$query="SELECT tAcces FROM acces;";
$result = mysql_query($query) or die("Requete non comprise");
echo "<table>";
echo'Comme accès, il y a : <br/>';
while ($tableau = mysql_fetch_array($result))
{
echo'• ';
echo $tableau['tAcces'] ;
echo '<br/>';
}
echo'<br/><br/>';
echo'<div id="ecriture3"';
echo "<a href='acces.php'>• Retour au menu d'accès •</a>";
echo'</div>';
}
else
{
echo 'Ajout impossible <br/><br/>';
echo'<div id="ecriture3"';
echo "<a href='acces.php'>• Retour au menu d'accès •</a>";
echo'</div>';
}

echo '</div>';
}
0

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

Posez votre question
en voyant un insert into
je suppose que tu utilise php couplé a mysql( ou d'ailleur n'importe quel sgbd),
le sgbd peur le faire a ta place si tu le lui demande:
exple:

CREATE TABLE test(
id int(10) PRIMARY KEY NOT NULL auto_increment,
nom char(10) NOT NULL UNIQUE,
.....
);

grace a UNIQUE on ne pourra pas avoir de doublons

dans ton script php

t'ora juste envoyé la requete et mysql se charge du reste

....
$query = " INSERT INTO test VALUES('', '".$nom."', '....')";
$result = mysql_query($query) or (die(mysql_error()); exit;);
....
0
et si je désire mettre un message d'erreur pour prévenir l'utilisateur que le nom existe déja je fais comment?
0
j'ai regarder dans la base pour mettre ma colonne en UNIQUE sauf que je n'arrive pas à trouver comment le mettre
Merci de ton aide en tout cas
0
Pour répondre à ta question initiale...
if ($nom = "tAcces") est totalement incorrect. Ceci n'est pas une comparaison, et si c'en était une, tu comparerais avec les texte "tAcces", pas avec le contenu d'un quelconque champ...
Il faudrait que tu recherches si le nom existe déjà avec
$requete="SELECT idacces, tAcces FROM acces WHERE tAccess='$nom';"; 
$reponse=mysql_query($requete);
if (mysql_num_rows($reponse)>0) {
  il y a déjà quelqu'un avec ce nom
} else {
  tu peux ajouter
}
0
merci bcp pour ta réponse mais ça me mets une erreur :
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/acces_ajoutbis.php on line 34

et ça me rajoute le nom même si il y est déjà dans la base !
0
j'ai trouvé mon erreur : une erreur de frappe dans ce que t'avais marqué... Merci le copier-coller =/
En tout cas merci beaucoup pour ton aide !
0
Nairolf > lééé
3 janv. 2010 à 16:06
Bonjour,
Quel était l'erreur dans le copier/coller? Je ne la trouve pas et j'ai le même message d'erreur que tu avais...
Merci
0
Nairolf > lééé
3 janv. 2010 à 16:08
Bonjour,
Quel était l'erreur dans le copier/coller? je tombe sur le même message d'erreur que toi avant que tu ais fait la correction...
Merci
0