Probleme requete SQL dans variable

Résolu/Fermé
gono - 11 juin 2009 à 16:02
 gono - 11 juin 2009 à 16:33
Bonjour,
voici mon code, que je fasse comme sa :
$requete = mysql_query("SELECT COUNT(*) FROM reservation WHERE date='.$date2.' AND heure_deb>='.$hdeb.' AND heure_fin<='.$hfin.' AND (type_mat='portable' OR type_mat2='portable' OR type_mat3='portable') ");
$rep=(9-$requete);
if ($rep > 0)
{
echo '<option value="portable">Portable</option>';
}

ou comme sa :

$requete =9 - mysql_query("SELECT COUNT(*) FROM reservation WHERE date='.$date2.' AND heure_deb>='.$hdeb.' AND heure_fin<='.$hfin.' AND (type_mat='portable' OR type_mat2='portable' OR type_mat3='portable')");
if ($requete > 0)
{
echo '<option value="portable">Portable</option>';
}

la requête marche sous l'analyseur de requête de phpmyadmin(en remplacant évidement les variables par des valeurs), mais cela ne fonctionne pas dans mes pages, quelqu'un saurait-il pourquoi ?
A voir également:

4 réponses

babou054 Messages postés 162 Date d'inscription lundi 11 mai 2009 Statut Membre Dernière intervention 1 septembre 2009 11
11 juin 2009 à 16:03
tu as tester tes variables ?
0
jeangilles Messages postés 816 Date d'inscription samedi 21 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 185
11 juin 2009 à 16:06
mysql_query te renvoit pas un nombre, mais une ressource
pour avoir la réponse, utilises le code suivant :

$requete = mysql_query("SELECT COUNT(*) FROM reservation WHERE date='.$date2.' AND heure_deb>='.$hdeb.' AND heure_fin<='.$hfin.' AND (type_mat='portable' OR type_mat2='portable' OR type_mat3='portable') ");
$reponse= mysql_fetch_row ($requete );
$rep= 9-$reponse[0];
0
Bonjour

Non, cette requête ne marche certainement pas. Elle contient des points qui n'ont rien à faire ici
mysql_query("SELECT COUNT(*) FROM reservation WHERE date='$date2' AND heure_deb>='$hdeb' AND heure_fin<='$hfin' AND (type_mat='portable' OR type_mat2='portable' OR type_mat3='portable')");
Là où ils étaient placés, ce n'étaient pas de opérateurs de concaténation mais de simples caractères comme les autres. Si tu avais affiché la requête réellement envoyée à mysql, tu aurais vu les points.
0
sa marche niquel, merci.

$requete = mysql_query("SELECT COUNT(*) FROM reservation WHERE date='$date2' AND heure_deb>='$hdeb' AND heure_fin<='$hfin' AND (type_mat='portable' OR type_mat2='portable' OR type_mat3='portable') ");
$reponse= mysql_fetch_row ($requete );
$rep=9-$reponse[0];
if ($rep > 0)
{
echo '<option value="portable">Portable</option>';
}

pour les points que j'avais mis, j'avais a la base fait comme sa : '".$variable."'

merci a vous, je vais pouvoir continuer mon travail ! :)
0