[PHP] problème de vérif

Fermé
Kafe - 27 mars 2008 à 18:20
sly-bzh Messages postés 415 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 5 décembre 2009 - 28 mars 2008 à 18:41
Bonjour,
j'aimerai vérifier qu'un numéro n'existe pas dans ma base de données et faire en sorte que s'il n'existe pas, il soit inséré, et sinon qu'un message d'erreur s'affiche...
J'aimerai récupérer les numéros que j'ai dans ma base dans une variable et ensuite faire les vérifs directement, mais je ne sais pas comment mettre plusieurs données dans une variable et donc je ne sais pas comment faire la vérif juste après.
Merci de vos réponses.
Et si je n'ai pas été assez clair, faites le moi savoir...
Ciao
A voir également:

7 réponses

j'aimerais afficher un alert mais pendant une durée limitée genre 5 secondes
0
j'aimerais afficher un alert mais pendant une durée limitée genre 5 secondes;tu peu m'aider
0
Premièrement, ce serait sympa de ne pas flooder et en plus si tu as un problème, fais toi un topic et ne vient pas pourrir celui des autres.
Merci, ciao.
0
sly-bzh Messages postés 415 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 5 décembre 2009 118
27 mars 2008 à 20:01
Bonjour,
Il existe en SQL une commande IF EXIST et IF NOT EXIST qui, si j'ai bien compris ton problème, t'iras à merveille. Il me semble qu'elle s'utilise comme ça : imaginons que le numéro que tu testes est dans une variable $nb et qu'il est contenu dans la champ "numero" de ta table "table1" de ta base de donnée :
$sql = "IF NOT EXISTS (SELECT * FROM table1 WHERE numero='$nb') INSERT INTO Table1 VALUES (...);"
mysql_query($sql);

Je ne suis pas absolument certains de la structure, mais en gros c'est ça...
0

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

Posez votre question
Kafe Finch Messages postés 4 Date d'inscription jeudi 27 mars 2008 Statut Membre Dernière intervention 28 mars 2008
27 mars 2008 à 20:32
En fait, je crois que ça peut m'être utile mais en fait la modification, je ne l'a fait pas avec SQL mais avec PHP... donc je fais la condition de l'alternative avec php... je sais pas si je suis clair... mais il faudrait que ma requête SQL me renvoie une sorte de "oui/non" que je puisse exploiter dans la condition après...
0
Kafe Finch Messages postés 4 Date d'inscription jeudi 27 mars 2008 Statut Membre Dernière intervention 28 mars 2008
28 mars 2008 à 10:01
Si quelqu'un avait une autre solution pour moi ce serait avec plaisir...
Merci d'avance!!!
Ciao
0
sly-bzh Messages postés 415 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 5 décembre 2009 118
28 mars 2008 à 13:51
Si tout ce que tu veux c'est savoir si l'entrée est déja présente ou pas dans ta base de donnée, il suffit de faire un "SELECT * FROM table WHERE numero = $num". Tu testes ensuite si ta requète te donne une réponse ou pas. Si oui, le numéro est déjà rentré, si non, tu le rentres.
0
Kafe Finch Messages postés 4 Date d'inscription jeudi 27 mars 2008 Statut Membre Dernière intervention 28 mars 2008
28 mars 2008 à 16:05
oui mais je sais pas comment testé si ma requête me renvoie quelque chose...
0
sly-bzh Messages postés 415 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 5 décembre 2009 118 > Kafe Finch Messages postés 4 Date d'inscription jeudi 27 mars 2008 Statut Membre Dernière intervention 28 mars 2008
28 mars 2008 à 16:48
Par exemple :
$sql = "SELECT * FROM table1 WHERE numero = $nb";
$result = mysql_query ($sql) or die(mysql_error());

$table = mysql_fetch_array($result);

if ($table) 
{
   echo "$nb est present dans la base";
}
else 
{
   echo "$nb n'est pas present dans la base";
   // a partir de là tu fais ce que tu veux avec ton $nb
}
0
Kafe Finch Messages postés 4 Date d'inscription jeudi 27 mars 2008 Statut Membre Dernière intervention 28 mars 2008 > Kafe Finch Messages postés 4 Date d'inscription jeudi 27 mars 2008 Statut Membre Dernière intervention 28 mars 2008
28 mars 2008 à 18:22
Merci Sly je crois que c'est bon maintenant...
Je vais faire mon c***** mais j'ai un nouveau problème que je n'arrive pas à résoudre...

j'ai un formulaire:

<tr>
  <td><input type="text" name="num" maxlength="20"size="10" value="<?php echo $nom?>"/></td>
  <td><input type="text" name="numTrav" maxlength="40"size="10" value="<?php echo $nom?>"/></td>
  <td><input type="text" name="sexe" maxlength="40"size="10" value="<?php echo $nom?>"/></td>
  <td><input type="text" name="racialBov" maxlength="40"size="10" value="<?php echo $nom?>"/></td>
  <td><input type="text" name="dateNaissance" maxlength="40"size="10" value="<?php echo $nom?>"/></td>
  <td><input type="text" name="nom" maxlength="40"size="10" value="<?php echo $nom?>"/></td>
  <td><input type="text" name="dateEntree" maxlength="40"size="10" value="<?php echo $nom?>"/></td>
  <td><input type="text" name="caEnt" maxlength="40"size="10" value="<?php echo $nom?>"/></td>
  <td><input type="text" name="dateSortie" maxlength="40"size="10" value="<?php echo $nom?>"/></td>
  <td><input type="text" name="caSort" maxlength="40"size="10" value="<?php echo $nom?>"/></td>
  <td><input type="text" name="pays" maxlength="40"size="10" value="<?php echo $nom?>"/></td>
 </tr> 


après l'avoir rempli je l'envoie ici:
$marequete1="insert into betes values('" 
               .$_POST['num']."','" 
               .$_POST['numTrav']."','"
               .$_POST['sexe']."','"
               .$_POST['racialBov']."','"
               .$_POST['dateNaissance']."','"
               .$_POST['nom']."','"
               .$_POST['dateEntree']."','"
               .$_POST['caEnt']."','"
               .$_POST['dateSortie']."','"
               .$_POST['caSort']."','"
               .$_POST['pays']."')";
              
              enregistrement($marequete1);


et j'ai ce message d'erreur:
Requete Invalide : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 9


je suppose que c'est pour cette requête mais j'aimerai avoir un avis extérieur pour me dire si ça a l'air correct...
Merci
0
sly-bzh Messages postés 415 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 5 décembre 2009 118
28 mars 2008 à 18:41
Ouf on y est arriver :D
Pour ton problème, tu devrais créer des variables intermédiaires qui contiendraient les valeurs que ton formulaire envoit. Du genre :
$numTrav = $_POST['numTrav'];

Parceque là quand tu insères, si tu regardes bien tes apostrophes ('), dans ta variable $_POST, tu en as et du coup tout est décalé...
Crée ces variables et tout devrais (je dis bien devrais...) rentrer dans l'ordre
0