ugrás a tartalomhoz

For vagy while ciklus

sz0tyi · 2014. Aug. 29. (P), 14.41
Sziasztok,

Bocs az amatőr kérdésért, még eléggé kezdő vagyok. Adott a két kód, és hosszas erőlködés, nyomozás útján sem jöttem rá, hogy miért nem működik hasonlóan a kettő.
A végcél az lett volna, hogy for segítségével valahogy eltérő háttérszíne legyen a találatoknak, de for-ral nekem a tömb első találatát jeleníti meg 3x.
<div>
<input type="text" name="markax" class="bev"  list="mark" autocomplete="off"/>
 <datalist class="bev" name="mark" id="mark" > 
<?php
$csatlakozás = mysqli_connect("belépő adatok");
$select = "SELECT marka FROM exit";
$query = mysqli_query($csatlakozás,$select);
   while ($array = mysqli_fetch_array($query)){
 echo"<option value=\"$array[marka]\">$array[marka]</option>";
 echo"<br>";};
 ?>
 </datalist>
     <label for="markax"> Gyártó </label>
    </div>
 <br>
<div>
<input type="text" name="markax" class="bev"  list="mark" autocomplete="off"/>
 <datalist class="bev" name="mark" id="mark" >    
<?php 
$csatlakozás = mysqli_connect("belépő adatok");
$select = "SELECT marka FROM exit";
$query = mysqli_query($csatlakozás,$select);
$array = mysqli_fetch_array($query);
   for ($i=0; $i<=count($array); $i++){
 echo"<option value=\"$array[marka]\">$array[marka]</option>";
 echo"<br>";}; 
 ?>
 </datalist>
     <label for="markax"> Gyártó </label>
    </div>
 <br>

Még egyszer bocs valószínűleg evidens dolgot kérdezek.
 
2

mysqli_fetch_array

Poetro · 2014. Aug. 29. (P), 15.12
A mysqli_fetch_array egyetlen sort ad vissza a lekérdezésed eredményeiből. Az első változat (while ciklus) a sorokon megy végig, a második (for ciklus) pedig az első sor oszlopain. Egyébkét PHP esetén hasznosabb a foreach ciklus használata for helyett.
Ezen kívül, hasznos lenne, ha az adatbázis műveleteket stb. elkülönítenéd a megjelenítéstől, mert így egybeolvad az egész, és nehéz követni.
3

Ha normálisan rendeznéd el a

kuka · 2014. Aug. 29. (P), 15.14
Ha normálisan rendeznéd el a bekezdéseket akkor jobban látszana a különbség:

while ($array = mysqli_fetch_array($query)) { // <-- cikluson belül == ismétlésenként 1 hívás
    echo"<option value=\"$array[marka]\">$array[marka]</option>";
    echo"<br>";
}

$array = mysqli_fetch_array($query); // <-- cikluson kívül == összesen 1 hívás
for ($i=0; $i<=count($array); $i++) {
    echo"<option value=\"$array[marka]\">$array[marka]</option>";
    echo"<br>";
}
4

Köszönöm szépen a válaszokat,

sz0tyi · 2014. Aug. 29. (P), 15.24
Köszönöm szépen a válaszokat, igyekszem meglépni a szükséges stílusbeli változásokat is.