Page 1 sur 2

erreur query was empty

Posté : 23 nov. 2005, 20:33
par Florent
Bonjour
Je n'ai pas vraiment trouvé de doc sur ce type d'erreur, d'ou ma venue ici.

$reponse = mysql_query("SELECT locataire FROM maison where village='$village' ");
$donnee = mysql_fetch_array($reponse) ;

echo '<br> phase 1 ok';

$locataire = $donnee['locataire'] / 5;

echo '<br> phase 2 ok' . $locataire;

if ($total < intval($locataire)) {

echo '<br> phase 3 ok';
.......
}
Donc voilà j'ai mis des echo pour essayer de comprendre.
je vois en résultat phase 1 ok et phase 2 ok puis le message d'erreur : Erreur SQL !

Query was empty

Ce serait super si quelqu'un pouvait m'aiguiller.
Merci d'avance

Posté : 23 nov. 2005, 21:05
par charabia
Rajoutes un mysql_error pour voir ton erreur :
$sql = "SELECT locataire FROM maison where village='".$village."'";  
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
Ensuite testes directement ta requête dans phpMyAdmin pour voir si tu as un résultat.

Posté : 24 nov. 2005, 13:23
par Invité
J'ai rajouté le mysql_error et le message d'erreur ne change pas.
J'ai executé la requette directement dans mon admin et le résultat est ok.

Donc je suppose que le problème vient d'ailleurs ?

Pourtant avec mon echo $locataire; le nombre affiché est correct et c'est ça que je ne comprend pas.....

Posté : 24 nov. 2005, 13:57
par zeus
si tu fait un var_dump sur $locataire, ça donne quoi ?

Posté : 24 nov. 2005, 17:52
par Invité
si tu fait un var_dump sur $locataire, ça donne quoi ?
A ma grande surprise : NULL

Pourtant avec echo, la valeur affichée est correcte par rapport à ce qui est dans la BDD

Posté : 24 nov. 2005, 17:56
par mere-teresa
Il vaudrait mieux que tu fasses :
if($reponse = mysql_query("SELECT locataire FROM maison where village='$village' "))
{
  echo "phase poser requete OK<br />";
}
else
{
  echo "pas de requete posée<br />";
}

if($donnee = mysql_fetch_array($reponse))
{
  echo '<br> phase fetch  ok'; 
}
else
{
  echo "pas de résultats trouvés<br />";
}

Posté : 24 nov. 2005, 17:57
par Florent
Désolé je me suis trompé j'avais fais des essais en neutralisant des lignes

Var_dump($locataire) me donne string(4) "1928"

Normalement dans la BDD locataire est de type bigint

Posté : 24 nov. 2005, 18:00
par zeus
A mon avis, c'est la division de cette ligne qui pose pb
$locataire = $donnee['locataire'] / 5;
essaye comme ça :
$locataire = ($donnee['locataire']/5);

Posté : 24 nov. 2005, 18:07
par Florent
J'obtiens ça :
okfloat(385.6) Erreur SQL !

Query was empty

Posté : 24 nov. 2005, 18:11
par zeus
Postes ton code dans l'état actuel afin que j'essaye chez moi

Posté : 24 nov. 2005, 18:24
par Florent
Le poster, c'est pas que je ne veux pas mais y'en a des pages.

J'ai essayer un truc :
J'ai coller dans un nouveau fichier le bout de code + les paramètres pour se connecter et là ça marche sans erreur.

Donc je pense que l'erreur vient d'ailleurs, alors je vais neutralise cette partie et faire des essais.

Posté : 24 nov. 2005, 18:47
par Florent
Les parties incluses neutralisée une à une je me retrouve avec l'erreur suivante :

Erreur SQL !Resource id #11
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'Resource id #11' at line 1

Parcontre je ne vois ce qu'est le "Resource id #11"

Posté : 24 nov. 2005, 18:49
par mere-teresa
C'est pas fetch alors ?

Posté : 24 nov. 2005, 20:04
par Florent
J'ai résolu le problème :
Bien plus loin dans le code, dans un fichier inclus j'avais plusieurs requête de ce style :
$sql = "SELECT locataire FROM maison where village='".$village."'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

$sql2 = "SELECT chose FROM table where login='".$login."'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

La deuxième ligne de la deuxième requête fait un query vers sql au lieu de sql2
Voilà l'erreur

Merci de m'avoir aidé.

Cependant j'ai une question toute simple :
Dans ma requête j'ai écrit : '$village'
Vous écrivez : '".$village."'"
Pouquoi le . est il utile, puisque sans, ça marche ?

Posté : 24 nov. 2005, 20:45
par charabia
Cependant j'ai une question toute simple :
Dans ma requête j'ai écrit : '$village'
Vous écrivez : '".$village."'"
Pouquoi le . est il utile, puisque sans, ça marche ?
Tout dépend du codeur, les . que tu vois servent à faire la concaténation. Perso je préfère concaténer de cette manière pour différencier rapidement les variables ;)

N'oublies pas de mettre le [Résolu] !