SELECT COUNT & PHP
Résolu/Fermé
coronier
-
2 nov. 2009 à 13:50
avion-f16 Messages postés 19252 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 10 février 2025 - 2 nov. 2009 à 15:11
avion-f16 Messages postés 19252 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 10 février 2025 - 2 nov. 2009 à 15:11
Bonjour,
J'ai un problème pour PHP renvoie la valeur correcte d'un comptage dans une BDD MySQL.
Voici mon code:
$sql= mysql_query("SELECT count (*) FROM Profils WHERE mail='$mail'");
alors que ma requête sous PhpMyAdmin marche très bien et renvoie le bon résultat:
SELECT count (*) FROM Profils WHERE mail='Un Truc'.
J'ai essayé les mysql_result, les mysql_fetch_array et autres joyeuseries, ca fait deux jours que je ne trouve pas de solution...
Merci d'avance.
J'ai un problème pour PHP renvoie la valeur correcte d'un comptage dans une BDD MySQL.
Voici mon code:
$sql= mysql_query("SELECT count (*) FROM Profils WHERE mail='$mail'");
alors que ma requête sous PhpMyAdmin marche très bien et renvoie le bon résultat:
SELECT count (*) FROM Profils WHERE mail='Un Truc'.
J'ai essayé les mysql_result, les mysql_fetch_array et autres joyeuseries, ca fait deux jours que je ne trouve pas de solution...
Merci d'avance.
A voir également:
- Count mysql php
- Easy php - Télécharger - Divers Web & Internet
- Mysql community server - Télécharger - Bases de données
- Expert php pinterest - Télécharger - Langages
- Php alert ✓ - Forum PHP
- Mysql gratuit ou payant - Forum MySQL
9 réponses
avion-f16
Messages postés
19252
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
10 février 2025
4 505
2 nov. 2009 à 14:53
2 nov. 2009 à 14:53
// Checkmail $sql = 'SELECT * FROM `Profils` WHERE mail="$mail"'; $req = mysql_query($sql) or die('Erreur dans <em>“'.$sql.'”</em> :<br/>'.mysql_query()); $nb = mysql_num_rows($req); echo 'Il y a ' . $nb . ' valeurs<br>';Le comptage n'est par erronné : Entre apostrophes, les variables ne sont pas remplacées par leur valeur, contrairement aux guillemées. Voici donc la ligne corrigée :
$sql = 'SELECT * FROM `Profils` WHERE mail="'.$mail.'"';
avion-f16
Messages postés
19252
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
10 février 2025
4 505
2 nov. 2009 à 14:00
2 nov. 2009 à 14:00
Essaye avec ça :
<?php ... $sql = 'SELECT COUNT(*) AS `nb` FROM `profils` WHERE `mail`="'.$mail.'"'; $req = mysql_query($sql) or die('Erreur dans <em>“'.$sql.'”</em> :<br/>'.mysql_query()); $data = mysql_fetch_assoc($req); $nb = $data['nb']; ... ?>Il y a aussi une seconde méthode :
<?php ... $sql = 'SELECT * FROM `profils` WHERE mail="'.$mail.'"';< $req = mysql_query($sql) or die('Erreur dans <em>“'.$sql.'”</em> :<br/>'.mysql_query()); $nb = mysql_num_rows($req); ... ?>
Bonjour avion,
Merci pour tes propositions qui me semblent tout ce qu'il y a de plus juste, pourtant les deux me renvoient des erreurs:
Erreur dans “SELECT * FROM `profils` WHERE mail="truc@machin.fr"” :
Pourtant l'écriture de données ne pose aucun problème... Un truc m'échappe vraiement.
Merci pour tes propositions qui me semblent tout ce qu'il y a de plus juste, pourtant les deux me renvoient des erreurs:
Erreur dans “SELECT * FROM `profils` WHERE mail="truc@machin.fr"” :
Pourtant l'écriture de données ne pose aucun problème... Un truc m'échappe vraiement.
avion-f16
Messages postés
19252
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
10 février 2025
4 505
2 nov. 2009 à 14:10
2 nov. 2009 à 14:10
C'est peut-être (même sûrement) parce que j'ai mis "profils" en minuscules.
Je te conseil de renommer ta table en minuscule plutôt que de mettre une majuscule à la requête.
Je te conseil de renommer ta table en minuscule plutôt que de mettre une majuscule à la requête.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Il y avait en effet un problème de majuscules, merci.
En revanche, le count est erronné; il me retourne aucune valeur alors qu'elles y sont, ce qui conduit à une tentative infructueuse d'inscription (doublon table primaire) et à un feedback erroné. Je met mon bout de code:
// Checkmail
$sql = 'SELECT * FROM `Profils` WHERE mail="$mail"';
$req = mysql_query($sql) or die('Erreur dans <em>“'.$sql.'”</em> :<br/>'.mysql_query());
$nb = mysql_num_rows($req);
echo 'Il y a ' . $nb . ' valeurs<br>';
// Test Regex Mail
if(preg_match('`^:alnum:([-_.]?:alnum:)+_?@:alnum:([-.]?:alnum:)+\.[a-z]{2,4}$`',$mail))
{
$mailok=1;
}
...
// Vérif pwd
if ($pwd1 == "" OR $pwd2 == "")
...
// Check Pwd équivalents
if($pwd1!=$pwd2){
...
// Si mail Ok et pas de doublons, inscription bdd
if ($nb==0 AND $mailok==1) {
En revanche, le count est erronné; il me retourne aucune valeur alors qu'elles y sont, ce qui conduit à une tentative infructueuse d'inscription (doublon table primaire) et à un feedback erroné. Je met mon bout de code:
// Checkmail
$sql = 'SELECT * FROM `Profils` WHERE mail="$mail"';
$req = mysql_query($sql) or die('Erreur dans <em>“'.$sql.'”</em> :<br/>'.mysql_query());
$nb = mysql_num_rows($req);
echo 'Il y a ' . $nb . ' valeurs<br>';
// Test Regex Mail
if(preg_match('`^:alnum:([-_.]?:alnum:)+_?@:alnum:([-.]?:alnum:)+\.[a-z]{2,4}$`',$mail))
{
$mailok=1;
}
...
// Vérif pwd
if ($pwd1 == "" OR $pwd2 == "")
...
// Check Pwd équivalents
if($pwd1!=$pwd2){
...
// Si mail Ok et pas de doublons, inscription bdd
if ($nb==0 AND $mailok==1) {
avion-f16
Messages postés
19252
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
10 février 2025
4 505
2 nov. 2009 à 14:26
2 nov. 2009 à 14:26
Erreu de ma part :
$req = mysql_query($sql) or die('Erreur dans <em>“'.$sql.'”</em> :<br/>'.mysql_query());→ Mets plutot mysql_error()
En effet, merci.
Par contre ca ne changera pas le problème de comptage...
Je ne vois pas ce qui plante dans mon code php...
Par contre ca ne changera pas le problème de comptage...
Je ne vois pas ce qui plante dans mon code php...
Cher camarade,
Ta statue, je te la fais en or ou en platine ?
Encore merci d'avoir été aussi didactique et patient. Vraiment bon esprit.
Ta statue, je te la fais en or ou en platine ?
Encore merci d'avoir été aussi didactique et patient. Vraiment bon esprit.
avion-f16
Messages postés
19252
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
10 février 2025
4 505
2 nov. 2009 à 15:11
2 nov. 2009 à 15:11
En platine, je veux bien.
Mais ne la fait pas trop grande parce que ... : Masse volumique = 21 090 kg/m³
Mais ne la fait pas trop grande parce que ... : Masse volumique = 21 090 kg/m³