Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]2 tablice w petli
Oczko21
post
Post #1





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 12.07.2009

Ostrzeżenie: (0%)
-----


Chcialbym polaczyc dwie tablice w petli, ale jakos mi to nie wychodzi

  1. $tablica1=" zapytanie do bazy ";
  2. $tablica1=mysql_query($tablica1);
  3. $tablica1=mysql_fetch_array($tablica1);
  4.  
  5. $tablica2=" drugie zapytanie do bazy ";
  6. $tablica2=mysql_query($tablica2);
  7. while($tablica2=mysql_fetch_array($tablica2))
  8. {
  9. if($tablica2['kto'] == $tablica1['odp']){
  10. [i]INSTRUKCJA[/i]
  11. }else{
  12. [i]INSTRUKCJA2[/i]
  13. }
  14. }

Nie wywala zadnego bledu, tylko nie wiedzac czemu caly czas przyrownuje wszystkie rekordy z tablica2 do pierwszego rekordu z tablica1. Probowałem rowniez wstawic wszystkie zapytania tablica1 wewnatrz petli ale efekt byl ten sam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Kshyhoo
post
Post #2





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Napisz, jakie dane chcesz wyciągnąć... Powiązania? Generalnie, jeżeli chcesz wyszukiwać z dwóch tabel, to np.:
  1. $osoby = mysql_query("SELECT * FROM osoby;");
  2.  
  3. for ($i=0;$i<mysql_num_rows($osoby);$i++) {
  4. $osoba = mysql_fetch_array($osoby);
  5. echo $osoba["nazwisko"].": ";
  6. $nazwiska = mysql_query("SELECT * FROM nazwiska WHERE osobaid={$osoba["id"]}");
  7. for ($j=0;$j<mysql_num_rows($nazwiska);$j++) {
  8. $nazwisko = mysql_fetch_array($nazwiska);
  9. echo $nazwisko["nazwisko"];
  10. if ($j<mysql_num_rows($nazwiska)-1) echo ", ";
  11. }
  12. echo "<br>";
  13. }


Ten post edytował Kshyhoo 19.01.2010, 19:40:53
Go to the top of the page
+Quote Post
Oczko21
post
Post #3





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 12.07.2009

Ostrzeżenie: (0%)
-----


chcialbym aby w srodku petli dane z obu tablic byly porownywane i jesli sa takie same to zeby robila sie instrukcja1 a jesli inne to instrukcja2
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #4





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




No to w czym problem? Jeżeli coś jest == czemuś, to to, a jak coś jest !=, to coś innego... ;p
Go to the top of the page
+Quote Post
Oczko21
post
Post #5





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 12.07.2009

Ostrzeżenie: (0%)
-----


Tak, ale problem w tym ze porownuje mi cala tablice1 z tylko pierwszym rekordem tablicy2, dodam ze w drugiej tablicy znajduje sie wiecej rekordow niz 1
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #6





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Masz tu przykład, jak porównuje się tablice:
  1. // $a = array(1,1,0,2,2,7);
  2. // $b = array(2,1,0,9);
  3.  
  4. $a = explode(" ","Jakieś zdanie do porównania");
  5. $b = explode(" ","Jakieś zdania do porównania");
  6.  
  7. $ile = (count($a)>=count($b))?count($a):count($b);
  8.  
  9. for($i=0;$i<$ile;$i++) {
  10. if ($a[$i]==$b[$i]) {
  11. $zgodne++;
  12. echo "$a[$i] - $b[$i]<br />";
  13. } else {
  14. $niezgodne++;
  15. echo "<b>$a[$i] - $b[$i]</b><br />";
  16. }
  17. }
  18.  
  19. echo "zgodne: $zgodne - niezgodne: $niezgodne";

Go to the top of the page
+Quote Post
Oczko21
post
Post #7





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 12.07.2009

Ostrzeżenie: (0%)
-----


Zrobilem analogicznie jak w przykladzie ktory podales i dalej nie wiedzac czemu porownuje tylko pierwsze rekordy z obu tabel

  1. $tab1=" ... ";
  2. $tab1=mysql_query($tab1);
  3. $tab1=mysql_fetch_array($tab1);
  4.  
  5.  
  6. $tab2=" ... ";
  7. $tab2=mysql_query($tab2);
  8. $ile=mysql_num_rows($tab2);
  9. $tab2=mysql_fetch_array($tab2);
  10. for($i=0;$i<$ile;$i++) {
  11. if ($tab2['x']==$tab1['xx']) {
  12. echo ''.$wynik['x'].' - '.$qq2['xx'].'<br />';
  13. } else {
  14. echo '<b>'.$tab2['x'].' - '.$tab1['xx'].'</b><br />';
  15. }
  16. }
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 6.10.2025 - 09:22