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.
  1. <div>  
  2. <input type="text" name="markax" class="bev"  list="mark" autocomplete="off"/>  
  3.  <datalist class="bev" name="mark" id="mark" >   
  4. <?php  
  5. $csatlakozás = mysqli_connect("belépő adatok");  
  6. $select = "SELECT marka FROM exit";  
  7. $query = mysqli_query($csatlakozás,$select);  
  8.    while ($array = mysqli_fetch_array($query)){  
  9.  echo"<option value=\"$array[marka]\">$array[marka]</option>";  
  10.  echo"<br>";};  
  11.  ?>  
  12.  </datalist>  
  13.      <label for="markax"> Gyártó </label>  
  14.     </div>  
  15.  <br>  
  1. <div>  
  2. <input type="text" name="markax" class="bev"  list="mark" autocomplete="off"/>  
  3.  <datalist class="bev" name="mark" id="mark" >      
  4. <?php   
  5. $csatlakozás = mysqli_connect("belépő adatok");  
  6. $select = "SELECT marka FROM exit";  
  7. $query = mysqli_query($csatlakozás,$select);  
  8. $array = mysqli_fetch_array($query);  
  9.    for ($i=0; $i<=count($array); $i++){  
  10.  echo"<option value=\"$array[marka]\">$array[marka]</option>";  
  11.  echo"<br>";};   
  12.  ?>  
  13.  </datalist>  
  14.      <label for="markax"> Gyártó </label>  
  15.     </div>  
  16.  <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:
  1. while ($array = mysqli_fetch_array($query)) { // <-- cikluson belül == ismétlésenként 1 hívás  
  2.     echo"<option value=\"$array[marka]\">$array[marka]</option>";  
  3.     echo"<br>";  
  4. }  
  5.   
  6. $array = mysqli_fetch_array($query); // <-- cikluson kívül == összesen 1 hívás  
  7. for ($i=0; $i<=count($array); $i++) {  
  8.     echo"<option value=\"$array[marka]\">$array[marka]</option>";  
  9.     echo"<br>";  
  10. }  
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.