[php] recup variable utilisable dans mysql

B4lth -  
vindicien Messages postés 136 Statut Membre -
Bonjour a tous, mon code est le suivant:

mysqli_query($link, "INSERT INTO choix_textile VALUES ('.$Id_commande.','.$Id_textile.','.$quantite_teeshirt.','N')") or die(mysqli_error($link));

ce qui me retourne l'erreur suivante:
"Catchable fatal error: Object of class mysqli_result could not be converted to string in..."

je pense que l'erreur vient du fait que les variables id_commande,id_textile,quantite_teeshirt ne sont pas converties du fait des simples quotes. D'ou le résultat inutilisable, j'ai donc utilisé mysqli_real_escape_string() d'ou le code suivant:

$req_choix="INSERT INTO choix_textile VALUES
('".mysqli_real_escape_string($link, $Id_commande)."',
'".mysqli_real_escape_string($link,$Id_textile)."',
'".mysqli_real_escape_string($link,$quantite_teeshirt)."','N')";
mysqli_query($link, $req_choix) or die(mysqli_error($link));


qui revoit cette erreur:
"Warning: mysqli_real_escape_string() expects parameter 2 to be string, object given in..."

cependant dans le code mysqli_real_escape_string contient bien les 2 arguments...

Je ne voit vraiment pas d'ou vient l'erreur, avez vous une idée svp?
A voir également:

3 réponses

vindicien Messages postés 136 Statut Membre 33
 
Salut,

Si $Id_commande et $Id_textile sont des integers et que les champs de ta base sont également des integers logiquement tu n'as pas besoin de les mettre entre quotes...

$req_choix="INSERT INTO choix_textile VALUES
(".$Id_commande.",".$Id_textile.",".$quantite_teeshirt.",'N')";

Ca devrait fonctionner si les 3 variables sont bien des int (en php et dans ta base)

Vind
0
B4lth
 
Merci de ta réponse qui résoud en partie le problème, maintenant j'ai l'erreur suivante:

"Unknown column 'tee' in 'where clause'"

Ce qui indique que il ne connait pas la colonne 'tee' dans un WHERE, ok
avec un print j'ai vérifié le contenu de $type_textile=tee-shirt... Ou est le problème?

De plus avec les print je me suis aperçu que les 2 codes suivant ne renvoient aucune valeure==> $Id_commande et $Id_textile sont vides...?????

$Id_commande = mysqli_query($link, "SELECT MAX(Id_commande) FROM commandes") or die(mysqli_error($link));


et

$Id_textile=mysqli_query($link, "SELECT Id_textile FROM stock_textile WHERE type_textile=".$type_textile." AND Taille=".$taille_textile."") or die(mysqli_error($link));


éclairez moi svp!
0
vindicien Messages postés 136 Statut Membre 33
 
Désolé pour le retard...

Dans ton where il ne doit pas y avoir de quote autour du nom de ton champ. Par exemple :
" select * from truc where tee='bleu'"

sinon pour $type_textile il te faut des guillemets car String :
$type_textile= "tee-shirt"

Et

$Id_textile=mysqli_query($link, "SELECT Id_textile FROM stock_textile WHERE type_textile=".$type_textile." AND Taille=".$taille_textile."") or die(mysqli_error($link));

ne fonctionnera que si $type_textile et $taille_textile sont des entiers (en base et dans ton code). C'est le cas ?
Si ce ne sont pas des entiers :

$Id_textile=mysqli_query($link, "SELECT Id_textile FROM stock_textile WHERE type_textile='".$type_textile."' AND Taille='".$taille_textile."'") or die(mysqli_error($link));
0