Quatre fonctions permettent de récupèrer le ou les enregistrements (ou tuples) retournés par une requête SELECT. Toutes ces fonctions travaillent de la même façon : elles renvoient un par un les enregistrements sélectionnés par la requête, puis NULL quand il n'y a plus rien.

Ce qui différencie ces fonctions c'est la forme sous laquelle les enregistrements sont renvoyés :

mysqli_fetch_assoc() est la fonction à privilégier car :

Exemples ...

Exemple : sélection simple
Exemple : sélection simple
Exemple : sélection simple

On ne teste pas les erreurs sur les fonctions mysqli_fetch_assoc(), mysqli_fetch_row(), mysqli_fetch_array() ou mysqli_fetch_object(). Les erreurs importantes pouvant survenir sont dans la requête SQL et interviennent donc dans la fonction mysqli_query().

Si une requête de sélection ne renvoie pas d'enregistrement (ie ne sélectionne rien), les fonctions renverront la valeur NULL.

Le test de "sélection vide" peut être fait comme dans l'exemple suivant.

Exemple : sélection ne renvoyant pas d'enregistrement

Le code

$enr = mysqli_fetch_assoc($r);

if ($enr === NULL) {
	echo 'Aucun enregistrement sélectionné.';
} else {	
	infoTableau($enr);
}

peut aussi être écrit :

if ($enr = mysqli_fetch_assoc($r)) {
	infoTableau($enr);
} else {
	echo 'Aucun enregistrement sélectionné.';	
}

if ($enr = mysqli_fetch_assoc($r)) { est un "raccourci" souvent utilisé avec PHP :

Nous profitons ici du transtypage automatique fait par PHP qui évalue un tableau non vide comme TRUE, et qui évalue NULL comme FALSE.

Pour connaitre le nombre d'enregistrements sélectionnés par une requête de sélection nous pouvons utiliser la fonction mysqli_num_rows(), comme illustré dans l'exemple suivant.

Exemple : sélection ne renvoyant pas d'enregistrement