Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Pętla w pętli = zapętlanie HELP!
Forum PHP.pl > Forum > Przedszkole
la_chica_bonita
Hej,

  1. <?php
  2. $result = mysql_query("SELECT b.idpos, b.miasto, r.region
  3.                        FROM tab_bh b
  4.                            LEFT OUTER JOIN tab_region r ON b.idreg = r.idreg
  5.                        ORDER BY b.`idPOS` ASC;");
  6.  
  7. $result2 = mysql_query("SELECT b.idpos, count( s.model_sprzetu )
  8.                        FROM smp_08 s
  9.                        INNER JOIN tab_bh b ON s.tp_id_partnera = b.idpos
  10.                        GROUP BY b.idpos
  11.                        ORDER BY b.idpos ASC ;");
  12. $ilew = mysql_num_rows($result);
  13. $ilew2 = mysql_num_rows($result2);
  14. ?>


mam z tym taki problem, że jak ilew > ilew2 i gdy robię tak:

  1. <?php
  2. for ($i=0; $i<$ilew; $i++) {
  3.    $row = mysql_fetch_row($result);        
  4.    echo '<tr>';
  5.    echo '<td align=center>'.$row[0].'</td>'; // REGION
  6.    echo '<td align=center>'.$row[1].'</td>'; // DSA
  7.    echo '<td align=center>'.$row[2].'</td>'; // KSA
  8.    echo '<td align=center>'.$row[3].'</td>'; // NAZWA PH
  9.    echo '<td align=center>'.$row[4].'</td>'; // ID BH
  10.    echo '<td align=center>'.$row[5].'</td>'; // MIASTO BH
  11.    for  ($k=0; $k<$ilew2; $i++) {
  12.        $row1 = mysql_fetch_row($result2);
  13.        if ($row1[0]===$row[4])
  14.            echo '<td align=center>'.$row1[1].'</td>'; // dostawa wlasna
  15.    }        
  16.    echo '</tr>';
  17. }
  18. ?>


to mi się zapętla i wyskakuje błąd, że minęło więcej niż 30 sekund i jest błąd.. :/

a jak robię tak:

  1. <?php
  2. $ilew = mysql_num_rows($result);
  3. $ilew2 = mysql_num_rows($result2);
  4.  
  5. for ($i=0; $i<$ilew; $i++) {
  6.    $row = mysql_fetch_row($result);
  7.    $row1 = mysql_fetch_row($result2);        
  8.    echo '<tr>';
  9.    echo '<td align=center>'.$row[2].'</td>'; // REGION
  10.    echo '<td align=center>'.$row[0].'</td>'; // ID BH
  11.    echo '<td align=center>'.$row[1].'</td>'; // MIASTO BH
  12.    if ($row1[0]===$row[0])
  13.        echo '<td align=center>'.$row1[1].'</td>'; // dostawa wlasna
  14.    else
  15.        echo '<td align=center>0</td>';
  16.        
  17.    echo '</tr>';
  18. }
  19. ?>


to pojawia mi się inny problem, bo jak jest $row1[0] = $row[0] to jest spoko, a jak nie jest rowne, to pozniej do konca wypisuje mi zera, bo row zarowno jak i row1 przesuwaja sie.. a row1 powienien sie zatrzymac.. qrcze jak temu zaradzic?

pliska help
Czapla
  1. <?php
  2. for  ($k=0; $k<$ilew2; $i++) {
  3.       $row1 = mysql_fetch_row($result2);
  4.       if ($row1[0]===$row[4])
  5.           echo '<td align=center>'.$row1[1].'</td>'; // dostawa wlasna
  6.   }
  7. ?>

Po pierwsze w drugiej lini w pętli for masz i++ ma być k++
Po drugie zobacz na tego ifa porównujesz $row1[0]===$row[4] i sprawdzasz czy są identyczne co jest nieprawdą stąd zwraca ci warunek po else
Po trzecie:
Cytat
a row1 powienien sie zatrzymac

użyj break $k;

Co do tego drugiego przykladu to sprawa jest podobna używasz operatora ===, ktory sprawdza czy zmienne są tego samego typu i sobie równe.
la_chica_bonita
cos to nie idzie.. wraz..
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.