PHP, variable dans une clause WHERE MySql

Fermé
bivouak Messages postés 189 Date d'inscription mardi 10 décembre 2002 Statut Membre Dernière intervention 20 mai 2011 - 10 oct. 2005 à 10:52
 bety - 18 juin 2014 à 17:46
Salut tout le monde !

Voila je débute un peu en PHP.
J'ai fait un petit site pour répertorier des voitures avec un petit moteur de recherche.

J'ai une page HTML avec des <input typre = "text" ... > qui est un formulaire. Sur cette page on choisit la marque du véhicule et cette page appelle une page PHP pour la lecture dans une base Mysql. Le tout est hébergé cher Free.

Ma requête renvoie cette erreur :
erreur req Unknown column 'Renault' in 'where clause'

voila le code :
<?php
$marque3 = $_POST['marque2'];

$mysql_host = 'sql.free.fr'; 
$mysql_user = '*****'; 
$mysql_password = '*****'; 
$mysql_base = 'auto';

$db = mysql_connect($mysql_host,$mysql_user,$mysql_password) or die ("erreur de connexion");
mysql_select_db($mysql_base,$db) or die ("erreur de connexion base"); 

$req = mysql_query("SELECT * FROM auto WHERE marque=$marque3") or die ("erreur req ".mysql_error());
while( $sortie = mysql_fetch_array($req))
{	print ($sortie[marque].' ');
	print ($sortie[model].'<br>');
 }


Mysql_close();
?>


Voila, lorsque dans la requête je met 'Renault' à la place $marque3 ca marche sans problème.
Si je met '$marque3' ça ne me revoie aucun résultat.

Est ce que j'ai une erreur dans mon code ?

Le champ dans ma base est de type varchar(30).

Merci à tous !
A voir également:

8 réponses

FataL_KilleR
6 nov. 2007 à 20:42
Bonjour,
Oui, tu dois seulent modifier le fichier styl.css en y ajoutant le code pour que la première lettre soit une majuscule :).

++
2
StreM Messages postés 515 Date d'inscription lundi 18 octobre 2004 Statut Membre Dernière intervention 28 février 2007 124
10 oct. 2005 à 11:03
Ah pardon j'avais pas compris ca... lundi matin...
Et ca ?
$req = mysql_query("SELECT * FROM auto WHERE marque='".$marque3."'") or die ("erreur req ".mysql_error());

Sinon :
$str = "SELECT * FROM auto WHERE marque='$marque3'";
$req = mysql_query($str) or die ("erreur req ".mysql_error());
1
MERCIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII olalaaaaaaaaaaaa j'ai passe 12h sans trouver la solution main maintenant ca maaaaaaaarche
0
StreM Messages postés 515 Date d'inscription lundi 18 octobre 2004 Statut Membre Dernière intervention 28 février 2007 124
10 oct. 2005 à 10:55
Essaie
$req = mysql_query("SELECT * FROM auto WHERE marque='$marque3'") or die ("erreur req ".mysql_error());
Pour voir...
0
bivouak Messages postés 189 Date d'inscription mardi 10 décembre 2002 Statut Membre Dernière intervention 20 mai 2011 33
10 oct. 2005 à 10:56
Salut !

Comme je le dis dans mon message ca ne me renvoie aucun résultat car il cherche $marque3 dans ma base au lieu de la valeur qu'elle contient avec ce code.
0

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

Posez votre question
bivouak Messages postés 189 Date d'inscription mardi 10 décembre 2002 Statut Membre Dernière intervention 20 mai 2011 33
10 oct. 2005 à 11:13
Ok je viens de tester

Le permier ne me renvoie rien alors que ma base est pleine

Le deuxième ne me renvoie rien non plus.
0
StreM Messages postés 515 Date d'inscription lundi 18 octobre 2004 Statut Membre Dernière intervention 28 février 2007 124
10 oct. 2005 à 11:25
Fais un echo $str;
copie la requete, execute la dans phpmyadmin et regarde la différence entre cette requête et celle que lui exécuterais pour afficher ce que tu veux.
C'est étrange tout de même...
0
bivouak Messages postés 189 Date d'inscription mardi 10 décembre 2002 Statut Membre Dernière intervention 20 mai 2011 33
10 oct. 2005 à 11:23
Ok c'est bon pas la peine d'aller plus loin !

Je viens de trouver l'erreur.

Dans ma base j'ai mis les nom des marques en Varchar(30) avec la 1ère lettre en majuscule, comme sur ma page HTML de mon formulaire.

Je viens de remplacer la majuscule par un minuscule et ca marche impec.

Seulement la majuscule a disparu lors de l'affichage du résultat.
Est ce qu'il est possible de remplacer l'Interclassement ou le type pour conserver cette majuscule ?

Merci de ton aide, c'est sympa de ta part
0
bheadman Messages postés 105 Date d'inscription samedi 1 septembre 2007 Statut Membre Dernière intervention 17 septembre 2008
19 août 2008 à 10:25
Bon le topic est une peu vieux mais voici ce que moi j'ai fait pour intégrer des variables dans une requette sql (Base MySql5 et PHP5)

<?php

$Compagnie = $_GET['Compagnie'];
$Table = "listes";
$Collone = "Jours, Total_Messages, Total_Messages_Size, Warning_Threshold, Prohibit_Send_Threshold, Prohibit_Receive_Threshold, Above_Below_Warning_Threshold, FirstName, LastName";
$Orderby = "LastName";
if (empty($Compagnie))
{
   $sql = "SELECT $Collone FROM $Table Order By $Orderby";
   $Compagnie = "TOUTES";
}
else
{
   $Where = "WHERE Company = '$Compagnie'";
   $sql = "SELECT $Collone FROM $Table $Where Order By $Orderby";
}
$db = new PDO('mysql:host=localhost;dbname=liste_quotat', 'root', '');
$select_messages = $db->prepare($sql);
$select_messages->setFetchMode(PDO::FETCH_ASSOC);
$select_messages->execute();

echo "Utilisateurs de la compagnie : ".$Compagnie.'<BR>'.'<BR>'.'<BR>';

foreach($select_messages->fetchAll() as $i => $message)
{

    echo $i." - ".$message['LastName']." ".$message['FirstName'];
}

?>




Pour info cette base est en local donc aucun risque, pour ça que Userdb = root et Passdb = 'rien' :D
Pour ceux qui connaisse, cette structure est très très fortement inspiré des cours PHP,pages "7 - Manipulation de données", du site développez.com (j'ai commencé le PHP la semaine dernière :P)
0
regarde le tableau _post [''marque2''] la variable dans laquelle tu rentres la valeur n'est pas la meme ke l'entree du formulaire. change l'entree en _post [''marque3'']
0