recherche mysql
bonjour
j'ai un tableaux avec 3 colonnes:
-id (un chiffre de 1 à ...)
-login (VARCHAR(20))
-val (Enum('0','1')
je voudrais faire une rechercher et comptabilisé tous les résultat ou par exemple login= abc et val=0 et le stocké dans une variables.
merci d'avance
Ce que tu faire, c'est une requete SQL de ce genre :
SELECT id FROM table WHERE login='abc' AND val='0'
Ensuite, grace à la fonction
mysql_num_rows tu peux récupérer le nombre de résultat.
excellent merci, c'est la fonctions mysql_num_rows que j'avais oublié :/
<?php
$result = mysql_query("SELECT id FROM message WHERE destinataire='".$_SESSION["login"]."' AND read='0'");
if (!$result) { ?>
<a href="...">Boite de reception1</a><?
}
else {
$nb = mysql_num_rows($result);
if ($nb == '0') { ?>
<a href="...">Boite de reception2</a><?
} else {?>
<a href="..."><b>Boite de reception3 <? echo '('.$nb.')';?></b></a>;
<? } } ?>
mon probléme c'est qu'il va au premiere if, pourtant ds mon tableaux les valeurs y sont et je trouve pas la solution
Note du modérateur : merci de lire les conditions d'utilisation des forums, notamment la partie concernant le BB-Code
quand j'enleve le "AND read='0'" tous marche niquel sauf qu'il me met dans $nb tous les message
j'précise que la colonne read est de type enum('0', '1') je sais pas si ca change qqch mais je suis sure que non
apres 15 milliard d'essais c'etais en faite le mot "read" qui posais probleme dans la requete :/
quel merde je suis, enfin voila merci ^^
Oui, la solution c'est de l'entourer avec des backquotes `.
Genre : AND `read` = '0' (je précise pour ceux qui ont le même problème que toi).
Sinon, tu as une faille de sécurité avec ton WHERE destinataire='".$_SESSION["login"]."'.
Un :
<?php
$sql = " ... WHERE destinataire='".mysql_real_escape_string($_SESSION["login"])."' AND `read` = '0'";
?>
serait plus sage.
je comprend pas ma faille de sécurité, j'en doute pas qu'il y en ait car mon session_star()t est trés basique mais quel différence ca fait si je fais .mysql_real_escape_string($_SESSION["login"]).
As tu la documentation de la fonction ? Car la faille est expliquée justement en exemple 2.
Quand on colle une variable dans une requete, il faut TOUJOURS l'escaper. Sinon, tu te risques à de l'injection SQL.
ou se trouve la documantation stp?
merci