(excuses si nécessaire - ma première pile dépassement de la question. Je serai heureux de le modifier si quelqu'un a des suggestions. J'ai cherché une réponse mais j'ai bien peur que ma compréhension de la terminologie ne soit pas assez bonne pour faire une recherche complète.) p>
Je suis habitué à utiliser mysql_fetch_array pour obtenir des enregistrements à partir d'une base de données. Lorsque vous obtenez des enregistrements de cette façon, mysql_num_rows me donne un nombre de lignes. Sur mon projet actuel, cependant, j'utilise mysql_fetch_Object. MySQL_NUM_ROWS ne semble pas fonctionner avec cette fonction et lorsque je fais un «compte» sur les résultats de la requête, je reçois la réponse attendue: 1 (un objet). P>
Y a-t-il un moyen de "voir dans" l'objet et de compter les éléments à l'intérieur? P>
4 Réponses :
Essayez Nombre ((tableau) $ objet) code>. p>
Cela m'a donné une réponse différente. Il a renvoyé le nombre de champs dans ma requête sélectionnée.
Si vous l'utilisez dans un style de procédure (c'est-à-dire mysql_fetch_object () vs. Résultat $> fetch_object ()), mysql_num_rows doit fonctionner exactement de la même manière que lors de l'utilisation de MySQL_FETCH_ARRAY (). Pourriez-vous poster un exemple de code? P>
J'utilise de cette façon (dans le style de procédure). Ne devrais-je pas être?
Non, l'utiliser de manière procédurale est ok. Pourriez-vous poster un extrait de votre code?
À ce stade, le code a tellement changé cela ne serait pas pertinent. Merci d'avoir posé la question.
La fonction mysql_num_rows code> fonctionne sur votre ressource de résultat, pas votre ligne d'objet. Exemple h3>
$link = mysql_connect("localhost", "mysql_user", "mysql_password");
mysql_select_db("database", $link);
$sql = "SELECT id, name FROM myTable";
$result = mysql_query($sql, $link);
$rowCount = mysql_num_rows($result);
while($row = mysql_fetch_object){
echo "id: ".$row->id." name: ".$row->name."<BR>";
}
echo "total: ".$rowCount;
Je pense que mysql_fetch_object code> dans votre tandis que () code> doit réellement être mysql_fetch_object ($ résultat) code>
<?php
mysql_connect("localhost", "user", "password");
mysql_select_db("database");
$result = mysql_query("SELECT SQL_CALC_FOUND_ROWS * FROM table");
$countQuery = mysql_query("SELECT found_rows() AS totalRows");
$rows = mysql_fetch_object($countQuery);
echo $rows->totalRows;
?>
I hope this is useful :)
C'est intéressant (je n'étais pas au courant de ce genre de sélection SQL_CALC_Found_Rows), mais je veux faire d'autres choses en plus de compter les lignes.
Nice, mais vous devriez accompagner la fonction mysql_ * *, remplacez-la avec MySQLI, PDO (
mysqli-> num_Rows code> est une propriété définie sur le nombre de lignes retournées)