Afficher un message
Vieux 31/03/2008, 21h50   #1
alainL
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut php. variables et requete

Bonjour,
J'ai une erreur de syntaxe dans une requête et je ne vois pas où ? type
de variable ?? c'est survenu quand j'ai voulu ajouter et tester un
champ int dans ma table.
Voilà une partie du code :
__________________________________________________ __________________________________________________ ___
Le formulaire contient des select (qui eux fonctionnent) et un input
pour entrer ce qui sera un entier
__________________________________________________ __________________________________________________ ____
le traitement passe les variables (ça aussi ça marchait qd il n'y avait
pas le text nb_petales que je change en entier avec intval...
<?
$fleur = $_POST['fleur'];
$bois = $_POST['bois'];
$nervures = $_POST['nervures'];
$nbpetales = $_POST['nb_petales']; # <---------------- ???
$nb_petales=intval($nbpetales); # <---------------- ???
$petales = $_POST['petales'];
$corolle = $_POST['corolle'];
$couleur = $_POST['couleur'];
$lumiere = $_POST['lumiere'];
$terrain = $_POST['terrain'];
$altitude = $_POST['altitude'];
print ("Critères retenus : ");
print("$fleur + $bois + feuilles : $nervures + $nb_petales pétales +
pétales : $petales $corolle + $couleur + terrain : $lumiere, $terrain,
$altitude") ;
echo '<br>';

# jusque là, le progr marche et affiche ce que je demande, y compris
nb_petales...

//connexion table
$db=mysql_connect('localhost','root','');
mysql_select_db('floresoule',$db);
$sql = "SELECT nom, lien, vignette, fleur, bois, nervures, petales_min,
petales_max, petales, corolle, couleur, lumiere, terrain, altitude FROM
floresoule2 WHERE fleur like '%$fleur%' and bois like '%$bois%' and
'petales_min'<=%nb_petales% and 'petales_max'>=%nb_petales% and nervures
like '%$nervures%' and petales like '%$petales%' and corolle like
'%$corolle%' and couleur like '%$couleur%' and lumiere like '%$lumiere%'
and terrain like '%$terrain%' and altitude like '%$altitude%' ORDER BY nom";
$req = mysql_query($sql) or die('Erreur
SQL!<br>'.$sql.'<br>'.mysql_error());
$total=mysql_num_rows($req);

# j'ai donc ajouté à cette requête la condition nb_petales doit être
entre petales_min et petales_max (champs déclarés et renseignés) comme
entiers dans la table
__________________________________________________ ________________________________________________

et voilà le résultat :_((( :



Critères retenus : grandes fleurs + non_ligneuse + feuilles : simples +
5 pétales + pétales : différents % + % + terrain : %, %, % ## ça
c'est bon
Erreur SQL!
SELECT nom, lien, vignette, fleur, bois, nervures, petales_min,
petales_max, petales, corolle, couleur, lumiere, terrain, altitude FROM
floresoule2 WHERE fleur like '%grandes fleurs%' and bois like
'%non_ligneuse%' and 'petales_min'<=%nb_petales% and
'petales_max'>=%nb_petales% and nervures like '%simples%' and petales
like '%différents%' and corolle like '%%%' and couleur like '%%%' and
lumiere like '%%%' and terrain like '%%%' and altitude like '%%%' ORDER
BY nom
Erreur de syntaxe près de '%nb_petales% and 'petales_max'>=%nb_petales%
and nervures like '' à la ligne 1
__________________________________________________ _________________________________________________

Merci pour vos conseils !

--
Alain L

  Réponse avec citation
 
Page generated in 0,05866 seconds with 9 queries