|
Publicité | ||||||||||||||||||||||
|
|
#1 (permalink) |
|
Membre Confirmé
![]() Date d'inscription: juin 2006
Messages: 200
|
Bonjour,
Voici mon problème : Prenons un exemple simple : un utilisateur A veut faire une sélection d'objet. Afin de vérifier qu'il ne possède pas déjà cet objet, je vérifie avec son identifiant "utilisateur A" qu'il ne possède rien sur la base de données. Code :
$obj_a_inserer = "tv"; $identifiant = "utilisateur A"; $tab_id_objet = array(); //Connexion a la BDD $connexion = mysql_connect($host, $login, $mdp); mysql_select_db("toto"); // Sélection de la base mateo21 $resultat = mysql_query("SELECT objet FROM test WHERE identifiant='$identifiant';") or die(mysql_error()); $i = 0; while($donnees = mysql_fetch_assoc($resultat)){ $tab_id_objet[$i] = $donnees['id_objet']; $i++; } mysql_close(); if (in_array($obj_a_inserer,$tab_id_objet)){ echo "Entre 1".'<br>'; }else{ echo "Entre 2".'<br>'; } Je veux maintenant insérer la valeur si elle n'existe pas dans la base de données Code :
$obj_a_inserer = "tv"; $identifiant = "utilisateur A"; $tab_id_objet = array(); //Connexion a la BDD $connexion = mysql_connect($host, $login, $mdp); mysql_select_db("toto"); // Sélection de la base mateo21 $resultat = mysql_query("SELECT objet FROM test WHERE identifiant='$identifiant';") or die(mysql_error()); $i = 0; while($donnees = mysql_fetch_assoc($resultat)){ $tab_id_objet[$i] = $donnees['id_objet']; $i++; } mysql_close(); if (in_array($obj_a_inserer,$tab_id_objet)){ echo "Entre 1".'<br>'; }else{ echo "Entre 2".'<br>'; $connexion = mysql_connect($host, $login, $mdp); mysql_select_db("toto"); mysql_query("INSERT INTO test VALUES ('$identifiant','$obj_a_inserer');") or die(mysql_error()); mysql_close(); } En plus, l'objet a insérer est bien inséré dans la base de données... On dirait que la requête pour inclure l'objet se fait des le démarrage de la page et qu'ensuite il exécute le contenu de la page. Savez vous d'où peux provenir ce phénomène ? Merci |
|
|
|
|
|
#2 (permalink) |
![]() Date d'inscription: juillet 2005
Messages: 9 911
|
Sur d'anciennes version de firefox, des liens HTML vides (par exemple link="" ou dans un css background-url("ta_page.php") ) provoque un double appel de la page et donc un double traitement.
Au passage : - ton $i ne sert à rien : Code :
while($donnees = mysql_fetch_assoc($resultat)){ $tab_id_objet[] = $donnees['id_objet']; } |
|
|
|
|
|
#6 (permalink) | |
![]() Date d'inscription: juillet 2005
Messages: 9 911
|
tu devrais faire un debug en retirant l'insert.
ca te permettra de mieux enqueter sur ton cas Citation:
|
|
|
|
|
|
|
![]() |
||
Requete mysql qui s'execute avant l'execution de la page
|
||
| Outils de la discussion | |
|
|