Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zmiana pierwszego rekordu w pętli while
Forum PHP.pl > Forum > Przedszkole
-anderson-
Witam,

mam problem z wyborem pierwszego rekordu w pętli while. Generalnie wskazanie konkretnego rekordu gdzieś w środku pętli nie stanowi problemu.

Do wyboru rekordu stosuje:
  1. $count++; if($count == 4) $body .= '<div class="item" id="4"></div>';


W przypadku gdy tę metodę chciałbym zastosować do pierwszego rekordu to niestety nie działa.

  1. $query = "SELECT * FROM tabela ORDER BY date DESC";
  2. $result = mysql_query ($query);
  3. while ($row = mysql_fetch_array($result)){
  4. $body .= '
  5. <div class="item"></div>';
  6. $count++;
  7. if($count == 4) $body .= '<div class="item" id="4"></div>';
  8. if($count == 7) $body .= '<div class="item" id="7"></div>';
  9. if($count == 10) $body .= '<div class="item" id="10"></div>';
  10. echo '<div id="container">'.$body.'</div>';


Tu pojawia się drugie pytanie, czy istnieje możliwość wewnątrz pętli, dla tych wybranych rekordów stworzyć nowe funkcje, np. SELECT * FROM tabela WHERE ... ORDER BY ...

P.S
Ważne jest to dla mnie aby ten pierwszy rekord był wewnątrz $body bo do wyświetlania rekordów używam jquery masonry.

Pozdrawiam
mar1aczi
Cytat(-anderson- @ 28.01.2014, 10:34:00 ) *
  1. $query = "SELECT * FROM tabela ORDER BY date DESC";
  2. $result = mysql_query ($query);
  3. while ($row = mysql_fetch_array($result)){
  4. $body .= '
  5. <div class="item"></div>';
  6. $count++;
  7. if($count == 4) $body .= '<div class="item" id="4"></div>';
  8. if($count == 7) $body .= '<div class="item" id="7"></div>';
  9. if($count == 10) $body .= '<div class="item" id="10"></div>';
  10. echo '<div id="container">'.$body.'</div>';

Przed tym kodem
  1. $body='';
  2. $count=0;

i wtedy
  1. while ($row = mysql_fetch_array($result)){
  2. $count++;
  3. if($count == 1) $body .= '<div class="item"></div>';
  4. if($count == 4) $body .= '<div class="item" id="4"></div>';
  5. if($count == 7) $body .= '<div class="item" id="7"></div>';
  6. if($count == 10) $body .= '<div class="item" id="10"></div>';
  7. }
  8. echo '<div id="container">'.$body.'</div>';

Jeśli dobrze Cie zrozumiałem.
-anderson-
Wielkie dzięki, poukładane tak jak miało być.

  1. $query = "SELECT * FROM tabela ORDER BY date DESC";
  2. $result = mysql_query ($query);
  3. $body .= '<div class="item" id="0"></div>';
  4. $count=0;
  5. $body .= '<div class="item" id="1"></div>';
  6. $count=1;
  7. $body .= '<div class="item" id="2"></div>';
  8. $count=2;
  9. $body .= '<div class="item" id=3"></div>';
  10. $count=3;
  11. while ($row = mysql_fetch_array($result)){
  12. $body .='<div class="item"></div>';
  13. $count++;
  14. if($count == 4) $body .= '<div class="item" id="4"></div>';}
  15. echo '<div id="container">'.$body.'</div>';


Teraz to drugie pytanie, czy wewnątrz

  1. $body .= '<div class="item" id="0"></div>';


Można zrobić osobną pętle?

  1. $query = "SELECT * FROM tabela WHERE ... ORDER BY date DESC";
  2. $result = mysql_query ($query);
  3. while ($row = mysql_fetch_array($result)){ ... }
  4. echo '...';
Turson
Oczywiście, że możesz
-anderson-
  1. $query = "SELECT * FROM tabela ORDER BY date DESC";
  2. $result = mysql_query ($query);
  3. $body .= '<div class="item" id="0"></div>';
  4. $count=0;
  5. $body .= '<div class="item" id="1">
  6. '$query1 = "SELECT * FROM tabela WHERE ... ORDER BY date DESC";
  7. $result1 = mysql_query ($query1);
  8. while ($row1 = mysql_fetch_array($result1)){
  9. $body1 .='<li class="lists"></li>';}
  10. echo '<ul>'.$body1.'</ul>';'
  11. </div>';
  12. $count=1;
  13. ...
  14. while ($row = mysql_fetch_array($result)){...} echo '';


Mam coś takiego i wyskakuje mi błąd składni przed funkcją $query1
Turson
Brakuje średnika po ' a przed $query1
-anderson-
tak, wyłapałem to, ale mimo wszystko gdzies coś źle zrobiłem, bo w miejscu drugiej pętli przerwana zostaje ta główna.
-anderson-
  1.  
  2. $query = "SELECT * FROM tabela ORDER BY date DESC";
  3. $result = mysql_query ($query);
  4. $body .= '<div class="item" id="0"></div>';
  5. $count=0;
  6. $body .= '<div class="item" id="1">';
  7. $query1 = "SELECT * FROM tabela WHERE ... ORDER BY date DESC";
  8. $result1 = mysql_query ($query1);
  9. while ($row1 = mysql_fetch_array($result1)){
  10. $body1 .='<li class="lists"></li>';}
  11. echo '<ul>'.$body1.'</ul>';
  12. echo '</div>';
  13. $count=1;
  14. $body .= '<div class="item" id="2"></div>';
  15. $count=2;
  16. $body .= '<div class="item" id="3"></div>';
  17. $count=3;
  18. while ($row = mysql_fetch_array($result)){$body .='...';} echo ''.$body.'';
  19.  


Ktoś wie w czym tkwi błąd? W miejscu nowego zapytania urywana jest główna pętla, a poza tym nowe zapytanie nie reaguje w ogóle na polecenie WHERE.
-anderson-
Rozwiązane!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.