2014-04-22 6 views
0

je dois obtenir le nombre de lignes d'une idEtudiant puis écho si le nombre est supérieur à 10.Obtenez le nombre de lignes

C'est ce que je l'ai écrit jusqu'à présent. Mais ne semble pas fonctionner.

$findID = ID1231275; 
$gipct = mysql_query("SELECT COUNT(studentID) FROM classFees WHERE studentID = '".$findID."'"); 
if ($gipct>10) { 
echo ("$gipct"); 
} 

Répondre

2
$searchID = 'ID1231275'; 
$gipct = mysql_query("SELECT COUNT(studentID) as students FROM classFees WHERE studentID = '$searchID'"); 
$row = mysql_fetch_object($gipct); 
if ($row->students >10) { 
echo $row->students; 
} 

BTW, les fonctions de mysql_ sont déconseillés et peuvent/seront supprimées dans les futures versions de php, je vous recommande de regarder les déclarations AOP ou des fonctions mysqli_

+1

'ID1231275' devrait être une chaîne, pas une constante. – Jurik

+0

Oui, j'ai raté cela – gbestard

+0

C'est le même nom de table ... – gbestard

0

Si vous utilisez PHP> 5 alors vous devez utiliser mysqli à la place de la classe mysql. Ensuite, essayez ceci:

$db = new mysqli('localhost','user','pass','database'); 
$searchID = 'ID1231275'; 
$stmt = $db->prepare("SELECT COUNT(studentID) FROM classFees WHERE studentID =? "); 
$stmt->bind_param('s', $searchID); 
$stmt->execute(); 
$stmt->bind_result($gipct); 
$stmt->fetch(); 
if ($gipct > 10) { 
echo ($gipct); 
} 
+0

Où est la connexion à la base de données dans la mysqli_query()? – gbestard

+0

Cochez cette case: php.net/manual/fr/class.mysqli.php –

+0

Vous avez utilisé le style procédural sur la requête, vous devez donc fournir la connexion à la base de données – gbestard

0

$gipct est une ressource mysql. Vous devez donc utiliser la fonction mysql_num_rows pour obtenir toutes les lignes sélectionnées.

Cela ne fonctionne pas dans votre cas, car vous avez un COUNT dans votre requête, donc vous obtenez une seule ligne.

Dans votre cas, vous devez d'abord aller chercher les données.

$gipct = mysql_query("SELECT COUNT(studentID) AS countout FROM classFees WHERE...."); 

$row = mysql_fetch_object($gpict); 
if ($row->countout > 10) { 
    echo ("$gipct"); 
} 

Ou la méthode avec le mysql_num_rows

$gipct = mysql_query("SELECT * FROM classFees WHERE student..."); 

if (mysql_num_rows($row) > 10) { 
    echo ("$gipct"); 
} 

Mais ici vous sélectionnez tous les enregistrements qui peuvent être beaucoup plus lente que la première solution.

Questions connexes