• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

pętla FOR co 3 powtórzenia pętli WHILE

0 głosów
455 wizyt
pytanie zadane 18 kwietnia 2015 w PHP, Symfony, Zend przez makoso Mądrala (7,400 p.)

Witam panowie mam problem chce aby w pętli była pętla która wykona się co 3 przejscia zwykłej penli a mianowicie co 3 wyświetlenia rekordów z bazy danych kod wygląda tak nie mam pojęcia jak to zrobić kombinujkę i nic nie wychodzi -.-

 

 while($result=mysql_fetch_assoc($query))
  {
      global $www, $color;
echo 'echuje tutaj polez bazy danych'';
echo 'echuje tutaj polez bazy danych'';
echo'echuje tutaj polez bazy danych'';
echo 'echuje tutaj polez bazy danych'';
echo 'echuje tutaj polez bazy danych'';
echo'echuje tutaj polez bazy danych'';

echo 'echuje tutaj polez bazy danych';



//tu leży problem jak to zrobić?
for ($i = 0; $i % 3; ++$i){
echo "<hr>";}




  }

 

2 odpowiedzi

0 głosów
odpowiedź 18 kwietnia 2015 przez Geek Pasjonat (19,830 p.)
for($i=0;i<9;i++) {
$warunek = $i % 3; 
if($warunek == 0) {
//tutaj pętla która wykona się co 3 razy
}
}

Mam świadomość że pewnie da się do zrobić łatwiej, ale ten sposób przyszedł mi do głowy i działa. Pętle zmotyfikuj wedle potrzeby.

komentarz 18 kwietnia 2015 przez makoso Mądrala (7,400 p.)
nie wiem czemu ale wywala mi błąd serwera takjakby pętla biegła w nieskończonośc :)
for($i=0;i<9;$i++) {
$warunek = $i % 3;
if($warunek == 0) {
echo "<hr>";
}
}

dodałem $ przed i++ponieważ chyba się machnąłes :)

mimo to pętla biegnie i biegnie :)
komentarz 18 kwietnia 2015 przez Geek Pasjonat (19,830 p.)
Działa, po prostu zapomniałem też dodać $ przed i<9. Jak poprawisz to będzie śmigała ;) Zawsze zapomnę tego $ ;)
komentarz 18 kwietnia 2015 przez makoso Mądrala (7,400 p.)

zauważyłem i owszem działa tylko ta pentla wykonuje się odrazu a chciałem aby wykonywala się co 3 obroty pętli while próbuję wstawić $i i $i++ do while ale wywala bład z while :( 

dokładniej wygląda to tak:

 

  while($result=mysql_fetch_assoc($query);$i=0;$i++ )
  {
      global $www, $color;
echo '<div id="produkt">';
echo '<img src="'.$result['obrazek'].'" /><br/>';
echo'<div id="prezentacja">';
echo '<div id="nazwa"><h2>'.$result['nazwa'].'</h2></div>';
echo '<div id="opis">'.$result['opis'].'</div>';
echo'</div>';

echo '<div id="cena">Cena: '.$result['cena'].' PLN <br/></div><button>Dodaj do koszyka</button></div>';



for($i<9;) {
$warunek = $i % 3; 
if($warunek == 0) {
echo "<hr>";
}//koniec for
}//koniec if
 }//koniec while

wyświetla:
Parse error: syntax error, unexpected ';' in /home/u263487932/public_html/test/test.php on line 41

a ja kzrobię tak jak mi wysłałes to wykonuje całą pentę odrazu 

 

komentarz 18 kwietnia 2015 przez Geek Pasjonat (19,830 p.)
for($i=0;$i<9;$i++) {
$warunek = $i % 3; 
if($warunek == 0 && $i != 0) {
echo "<hr>";
}
}

A tak?

komentarz 19 kwietnia 2015 przez mowmiheniek Stary wyjadacz (11,920 p.)

Stawiasz tą drugą pętlę w złym miejscu.

while($result=mysql_fetch_assoc($query))
  {

    for($i=0;$i<9;$i++) {
   $warunek = $i % 3; 
    if($warunek == 0) {
    echo "<hr>";
    }

      global $www, $color;
echo 'echuje tutaj polez bazy danych'';
echo 'echuje tutaj polez bazy danych'';
echo'echuje tutaj polez bazy danych'';
echo 'echuje tutaj polez bazy danych'';
echo 'echuje tutaj polez bazy danych'';
echo'echuje tutaj polez bazy danych'';
 
echo 'echuje tutaj polez bazy danych';
   }
}

Jak postawisz ja na koncu to pierwsza przeleci i wykona sie druga.

 

0 głosów
odpowiedź 19 kwietnia 2015 przez Dawid Sobieszczuk Mądrala (6,240 p.)
edycja 19 kwietnia 2015 przez Dawid Sobieszczuk
$i = 0;
while($result=mysql_fetch_assoc($query)) {
    global $www, $color;
	echo 'echuje tutaj polez bazy danych';
	echo 'echuje tutaj polez bazy danych';
	echo 'echuje tutaj polez bazy danych';
	echo 'echuje tutaj polez bazy danych';
	echo 'echuje tutaj polez bazy danych';
	echo 'echuje tutaj polez bazy danych';
 
	echo 'echuje tutaj polez bazy danych';
	
	if(($i%3)==3)
		for ($j = 0; $j<3; ++$j) 
			echo "<hr>";
		
	$i++;
}

Ile razy ta druga pętla ma się wykonać? Nie bardzo rozumiem jaki efekt chcesz uzyskać z tego kodu który podesłałeś.

Podobne pytania

0 głosów
3 odpowiedzi 153 wizyt
pytanie zadane 10 maja 2015 w C i C++ przez fibonacci Użytkownik (730 p.)
0 głosów
1 odpowiedź 68 wizyt
0 głosów
3 odpowiedzi 136 wizyt
Porady nie od parady
Odznacz odpowiedź zieloną fajką, jeśli uważasz, że jest ona najlepsza ze wszystkich i umożliwiła ci rozwiązanie problemu.Najlepsza odpowiedź

63,304 zapytań

109,563 odpowiedzi

228,872 komentarzy

43,896 pasjonatów

Przeglądających: 187
Pasjonatów: 7 Gości: 180

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...