Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/02/2011, 17h59   #1
Invité de passage
 
Inscription : février 2011
Messages : 10
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 10
Points : 2
Points : 2
Par défaut Insertion de variables

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 :
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 :
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 ?
nardoum est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2011, 20h31   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Commence par faire un echo de la chaine de requête que tu executes.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h42.


 
 
 
 
Partenaires

Hébergement Web