Ci-dessous est juste une maquette de 2 codes en PHP/MySQL.
Le premier renvoie un résultat mysql et exécute une boucle while pour itérer les résultats, le second fait presque la même chose mais place le résultat dans une requête et le met ensuite à l'écran. Maintenant, pour une approche plus OO, la deuxième méthode serait mieux je pense (pas sûr, j'apprends) mais là où je suis confus est, ne pas utiliser la deuxième méthode ci-dessous utiliser deux fois plus de mémoire? N'est-il pas fondamentalement en train de créer 2 tableaux au lieu de 1? Le mettre dans un tableau semble beaucoup plus flexible, s'il vous plaît donnez-moi vos conseils/conseils. Gardez à l'esprit que ce ne serait pas une simple chose courue 1 fois sur une page, un exemple réel sur une page sur mon site que tableau peut contenir 5000 noms d'utilisateur et numéro d'utilisateur dans le tableau et plusieurs requêtes peuvent être faites sur la même page tous avec des données différentes.En PHP devrais-je utiliser WHILE avec un résultat mysql ou un tableau?
<?PHP
// first method without using array
$url = "http://www.google.com/";
$sql = "SELECT user_id, nickname FROM `".TABLE_USERS."`
WHERE referrer LIKE '".$db->escape($url)."%'
ORDER BY nickname DESC
LIMIT 0,10";
$rows = $db->query($sql);
while ($record = $db->fetch_array($rows)) {
echo "<tr><td>$record[user_id]</td>
<td>$record[nickname]</td></tr>";
}
//////////////////////////////////////////////////////////////////////
//second method using array
$url = "http://www.google.com/";
$sql = "SELECT user_id, nickname FROM `".TABLE_USERS."`
WHERE referer LIKE '".$db->escape($url)."%'
ORDER BY nickname DESC
LIMIT 0,10";
// feed it the sql directly. store all returned rows in an array
$rows = $db->fetch_all_array($sql);
// print out array later on when we need the info on the page
foreach($rows as $record){
echo "<tr><td>$record[user_id]</td>
<td>$record[nickname]</td></tr>";
}
?>
J'ai un peu gâché ça, avec la limite ce serait probablement comme 50 éléments sur une page par requête, mais j'ai l'idée de l'utiliser beaucoup plus de mémoire – JasonDavis
Vous pourriez obtenir 50 résultats assez facilement et ne vous inquiétez pas trop sur la mémoire. Il semble que vous ne récupériez que deux champs dans vos requêtes, un identifiant et un pseudonyme, donc nous ne parlons que de quelques octets de données pour chaque enregistrement. MySQL aurait également besoin de mémoire pour le jeu de résultats, mais vous l'utiliserez dans les deux cas, cela ne fait donc aucune différence pour votre approche PHP. – zombat