Bonsoir !
J'ai un problème, voilà hier on m'a recommandé de modifier mon script pour qu'il insert chaque champs dans la base plutôt que tout dans un champ séparemment par une virgule.
J'ai donc un script javascript qui m'envoie des valeurs que je récupère avec $_REQUEST.
Seulement un seul champ se rempli dans la base de donnée à chaque fois (lorsque je dis à chaque fois, ça signifie que je dois efface mon entrée dans la bdd et régénérer le script php, alors c'est un autre champ qui se remplit, donc un seul à la fois...)
Voici mon code, je soupçonne le UPDATE et le INTO, mais je n'arrive pas à identifier le problème :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 <?php include("config.php"); include("data.php"); include("functions.php"); header("Cache-Control: no-cache"); header("Pragma: nocache"); $usercv_id = $user_email; // Mes paramètres BDD $server="localhost"; $user="root"; $password=""; $database="bddnardoum"; $table="profilmembre"; // Connexion mysql_connect($server,$user,$password); @mysql_select_db($database); if (isset($_REQUEST["validtable"]) || isset($_REQUEST["valcolortable"]) || isset($_REQUEST["valtitletable"]) || isset($_REQUEST["valtexttable"]) || isset($_REQUEST["valdisplaytable"])) { // SET $validtable =$_REQUEST["validtable"]; $valcolortable =$_REQUEST["valcolortable"]; $valtitletable =$_REQUEST["valtitletable"]; $valtexttable =$_REQUEST["valtexttable"]; $valdisplaytable =$_REQUEST["valdisplaytable"]; /* $file = fopen ("nom_du_fichier.txt", "a+"); fwrite($file, $validtable." ".$valcolortable." ".$valtitletable." ".$valtexttable." ".$valdisplaytable); fclose($file); */ $rs=mysql_query("SELECT * FROM $table WHERE usercv_id='$usercv_id'"); if (mysql_num_rows($rs)==0) mysql_query("INSERT INTO $table(usercv_id,idtable,colortable,titletable,texttable,displaytable,optionnel) VALUES('$usercv_id','$validtable','$valcolortable','$valtitletable','$valtexttable','$valdisplaytable','')"); else mysql_query("UPDATE $table SET idtable='$validtable', colortable='$valcolortable', titletable='$valtitletable', texttable='$valtexttable', displaytable='$valdisplaytable' WHERE usercv_id='$usercv_id'"); echo "OK"; } else { // GET $rs=mysql_query("SELECT * FROM $table WHERE usercv_id='$usercv_id'"); if ($row=mysql_fetch_row($rs)) echo $row[0]; else echo ""; } mysql_close(); ?>
Donc voilà quelques infos :
Il n'y a pas d'erreur MySQL, ni d'erreur avec le isset.
Les informations qui sont contenues dans les $_REQUEST en "post" sont bien enregistrées sans problème dans un fichier texte.
Lorsque je modifie chaque variable dans le fichier php, et que je met "test" au lieu de $_REQUEST["blabla"], elles s'enregistrent toutes bien dans la base. Et lorsque j'appelle les variables $_REQUEST, c'est là qu'il n'y en a qu'une qui s'enregistre.
Ensuite voilà dans mon code javascript :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 $.post("mapage.php",{validtable:idtable}); $.post("mapage.php",{valcolortable:colortable}); $.post("mapage.php",{valtitletable:titletable}); $.post("mapage.php",{valtexttable:texttable}); $.post("mapage.php",{valdisplaytable:displaytable});
Lorsque je modifie ces variables directement dans le js et que je les remplace par "test", un seul champs est rempli au hasard dans la bdd, donc le même problème.
Apparemment c'est MySQL qui refuserait d'enregistrer cette suite de variables.
Et bizarrement dans le fichier texte qui est écrit, il arrive que 2 variables y soient écris, tout comme toutes les variables. Il y a peut-être quelque chose qui les stop ? La syntaxe ? Je sais pas ...
Voilà le contenu de toutes les variables. Chaque champ (séparés par des espaces) admet 7 informations séparées par des virgules.
De plus dans le fichier texte, elles ne sont pas enregistrées dans l'ordre.
http://nadim.doueiri.free.fr/nom_du_fichier.txt
Une idée ? Merci de votre aide !
J'ai remplacé chaque variable par le contenu qu'elle devrait avoir ordinairement, et pourtant tous les champs se remplissent, il y a un truc qui cloche je sais pas ... :/ MySQL ne veut pas travailler avec les variables ?
Partager