2009-11-27 10 views
3

Je veux exécuter une requête et il retournera une ligne ou aucune. Je ne veux pas utiliser mysql_fetch_array(). Que puis-je faire d'autre?alternative à mysql_fetch_array()

+0

Pourquoi ne pas utiliser 'mysql_fetch_array()'? –

+0

Je doutais que je devrais utiliser tout inutilement. Je voulais me débarrasser de la boucle While. – RKh

+1

Essayez d'utiliser la bibliothèque d'abstraction de la base de données PEAR :: MDB2 au lieu d'appeler directement les appels de fonction mysql. –

Répondre

4

Alternatives à mysql_fetch_array()

  1. mysql_fetch_object()
  2. mysql_fetch_assoc()
  3. mysql_fetch_row()

Vous ne devez pas utiliser une boucle while. En utilisant mysql_num_rows(), vous pouvez vérifier le nombre de lignes retournées. Cela fonctionne sur le jeu de résultats renvoyé à partir d'un appel mysql_query().

$res = mysql_query('select 0'); 
if (mysql_num_rows($res)) { 
    $data = mysql_fetch_array($res); 
} 
2

Vous pouvez écrire une fonction pour le faire pour vous.

function get_one_row($query) { 
$result = mysql_query($query); 
$row = mysql_fetch_array($result); 
return($row); 
} 

Ou essayez-vous d'éviter complètement mysql_fetch_array?

3

Si vous avez seulement une (ou zéro) ligne à tirer.

$result = mysql_query(/* ... */); 
$row = mysql_fetch_array($result); 
mysql_free_result($result); 

S'il y a une ligne, $row l'aura. Sinon - $row sera false. Pas besoin de while().


Si vous voulez juste savoir combien de lignes que vous avez

$count = mysql_num_rows($result); 
+0

Je vois. Ok, est-il possible de déterminer le nombre de lignes dans un tableau? Quelque chose comme row_count. – RKh

+2

mysql_num_rows() –