Weboldal készítés, internetes alkalmazások fejlesztése

php - tömb feltöltése ciklussal

Adatbázisban tárolt adatok lekérdezésére nagyon egyszerű megoldás létezik. A kigyűjtött adatokat aztán kiírathatjuk sortöréssel egymás után, vagy egy űrlap legördülő menüjét is feltölthetjük vele.

<?php
$lekerdezes = "SELECT adat_oszlop FROM adat_tabla WHERE adat_oszlop < '5' "; //minden 5 alatti érték kigyűjtése
$lekerdezes1 = mysqli_query($mysql, $lekerdezes); //sql lekérdezés - a $mysql változóban az adatbázishoz kapcsolódást tároltam
while ($lekerdezes2 = mysqli_fetch_assoc($lekerdezes1)) //találatok összegyűjtése
{
    echo '- '.$lekerdezes2['adat_oszlop'].'<br>'; //sortöréssel kiírjuk a talált adatokat
}
?>

A fenti példa tökéletesen működik és egy oldalon tulajdonképpen akárhányszor futtathatjuk ezt a lekérdezést, a többszöri futtatásal csak az a gond, hogy feleslegesen hajtja végre ugyanazon lekérdezést, terhelve az adatbázist. Kérdezzünk le egyszer, tegyük a találatokat egy tömbbe, majd a tömb elemeit listázzuk ki annyiszor, ahányszor kell:

 

 

<?php
$tomb = Array(); //tomb nevű tömb létrehozása
$lekerdezes = "SELECT adat_oszlop FROM adat_tabla WHERE adat_oszlop < '5' "; //adatok lekérdezése, amivel feltöltjük a tömböt
$lekerdezes1 = mysqli_query($mysql, $lekerdezes);
$talalatok_szama= mysqli_num_rows($lekerdezes1); //lekérdezés találatainak száma kell a későbbi ciklushoz
while ($lekerdezes2 = mysqli_fetch_assoc($lekerdezes1)) //lekérdezés összegyűjtése
{
$tomb[] = Array('talalatok' => $lekerdezes2['adat_oszlop']); //amíg van találat, addig pörgetjük a ciklust, minden körben nő a tömb elemeinek száma
}

//tömb elemeinek listázása:
for ($i=0; $i<$talalatok_szama; $i++)
{
echo '- '.$tomb[$i]['talalatok'];
}
?>