Page 1 sur 1
Problème de requête avec variable PHP
Posté : 18 nov. 2005, 17:27
par jeanbrut
Bonjour,
Merci pour ce forum, c'est intéressant.
Bon voilà j'ai une requête très simple dans un code, mais elle ne me sort pas ce que je veux :
$query = "SELECT AGENT, SUM(REP) FROM Stats WHERE AGENT =".$variable." GROUP BY AGENT";
En fait, quand ma variable est numérique, il me donne un résultat et quand c'est une chaîne de caractère, ça ne me renvoie rien.
Je pense que ce problème est standard, mais je n'ai pas trouvé dans les forums de solutions.
Merci à vous.
Posté : 18 nov. 2005, 17:32
par rami
Les champ de type text doivent être entourés de simple quote:
$query = "SELECT AGENT, SUM(REP) FROM Stats WHERE AGENT ='".$variable."' GROUP BY AGENT";
Posté : 18 nov. 2005, 17:32
par Genius
Salut,
essaye
$query = "SELECT `AGENT`, SUM(`REP`) FROM `Stats` WHERE `AGENT` ='".$variable."' GROUP BY `AGENT`";
toujours
Posté : 18 nov. 2005, 17:36
par jeanbrut
Merci pour cette réponse rapide.
Malheureusement, ca ne marche toujours pas.
Je pense peut-etre que ça vient du fait que j'utilise une variable vecteur comme ceci :
$query = "SELECT AGENT, SUM(REP) FROM Stats WHERE AGENT ='".$Truc[$i]."' GROUP BY AGENT";
Si vous pouvez m'aider, merci.
Posté : 18 nov. 2005, 17:38
par rami
Affiche ta requête générée et testes la dans dans un requeteur (dans PhpMyAdmin par exemple).
Toujours
Posté : 18 nov. 2005, 17:43
par jeanbrut
En fait mon champ agent contient des noms-prénoms, mais dans de rares cas il contient un log (donc donnée numérique). Sur les données numériques, la requête fonctionne et me renvoie les résultats demandés, mais sur les données texte, il ne me renvoie rien.
Posté : 18 nov. 2005, 17:47
par rami
Si ca ne te renvoit rien, c'est peut être qu'aucune ligne correspondate n'a été trouvé dans la table?
SISISI
Posté : 18 nov. 2005, 17:49
par jeanbrut
Si obligatoirement, car les données issues de mon vecteur proviennent de la même table. En fait, je fais une sous-sélection d'agents pour lesquels je souhaite avoir les stats.
Posté : 18 nov. 2005, 17:53
par rami
Affiche ta requete alors!
$query = "SELECT AGENT, SUM(REP) FROM Stats WHERE AGENT ='".$Truc[$i]."' GROUP BY AGENT";
echo $query.'<br>';
Ensuite, tu fais un copier coller d'une des requetes affichées, et tu la colles dans un requeteur (PhpMyAdmin MysqlCC...).
YES
Posté : 18 nov. 2005, 17:59
par jeanbrut
Ah oui, je vois ça répond à mon problème.
Je me rends compte en fait que ma variable NOM PRENOM n'a en fait que le nom (car le nom et le prénom sont séparés par un espace, et donc PHP a intégré ça comme un champ différent).
Bon il va donc falloir que je trouve comment lui faire sortir le champ en entier dans la variable.
Merci beaucoup.
Posté : 18 nov. 2005, 20:27
par rami
Montre nous ton code, notamment d'ou provient $Truc[$i].
Merci
Posté : 21 nov. 2005, 10:08
par jeanbrut
Merci... Voici la partie où je prends "truc" :
$query = "SELECT DISTINCT AGENT FROM Stats";
$result = mysql_query($query);
// Recuperation des resultats
echo "<SELECT name=\"Truc[]\" size=\"10\" multiple>";
while($row = mysql_fetch_row($result))
{
$Agent = $row[0];
echo "<OPTION Value=$Agent> $Agent </OPTION>";
}
echo "</SELECT>";
Modération (Zeus) : merci d'utiliser les balise pour poster du code[/color]