Rechercher : dans
Par :

PHP, variable dans une clause WHERE MySql

Dernière réponse le 19 aoû 2008 à 10:25:41 bivouak, le 10 oct 2005 à 10:52:09 
 Signaler ce message aux modérateurs

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 !
++ Biv
Toujours à votre Service

Meilleures réponses pour « PHP, variable dans une clause WHERE MySql » dans :
MySQL - Savoir qui est connecté et qui fait quoi VoirPour connaître qui est connecté et ce qu'il fait au niveau d'une base MySQL il suffit de lancer la commande : mysql> show processlist; La liste des process et des utilisateur s'affiche. Pour terminer un processus, il suffit de le tuer en...
PHP - Les variables VoirConcept de variable avec PHP Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage PHP peuvent être de trois...
PHP - Les variables d'environnement VoirNotion de variable d'environnement Les variables d'environnement sont, comme leur nom l'indique, des données stockées dans des variables permettant au programme d'avoir des informations sur son environnement. L'environnement, dans le cas du script...

1

StreM, le 10 oct 2005 à 10:55:08

Essaie

$req = mysql_query("SELECT * FROM auto WHERE marque='$marque3'") or die ("erreur req ".mysql_error());
Pour voir...

Moins le blanc est intelligent, plus le noir lui parait bête

Répondre à StreM

2

bivouak, le 10 oct 2005 à 10:56:52

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.
++ Biv
Toujous à votre Service

Répondre à bivouak

3

StreM, le 10 oct 2005 à 11:03:10

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());

Moins le blanc est intelligent, plus le noir lui parait bête

Répondre à StreM

4

bivouak, le 10 oct 2005 à 11:13:16

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.
++ Biv
Toujours à votre Service

Répondre à bivouak

6

StreM, le 10 oct 2005 à 11:25: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...

Moins le blanc est intelligent, plus le noir lui parait bête

Répondre à StreM

5

bivouak, le 10 oct 2005 à 11:23:21

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
++ Biv
Toujous à votre Service

Répondre à bivouak

7

FataL_KilleR, le 6 nov 2007 à 20:42:45
  • +1

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

++

Répondre à FataL_KilleR

8

 bheadman, le 19 aoû 2008 à 10:25:41

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) Le cerveau est un muscle, la bibliothèque une salle de musculation et le SMS le Mcdo de l'intelligence !!!

Répondre à bheadman