Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] problem w operacjach na 2 tabelami
Forum PHP.pl > Forum > Przedszkole
wSBk
Witam
Borykam się z problemem:
Mam połaczenie do 2 tabel jednej bazy danych. W jednej przechowuje nazwy firm, w drugiej branze:

  1. <?php
  2. # Wyświetlkamy wszystkie firmy
  3. while ($query && $rekord = mysql_fetch_array ($query)) {  
  4. print'<tr onMouseOver="this.style.backgroundColor='#E1EAFE'"; onMouseOut="this.style.backgroundColor='transparent'">'; 
  5. print'<td>';
  6. # Jeżeli id (bid) firmy jest równy branży (tabela z listą firm) to wyświetlam z tabeli branze nazwe przyporzadkowaną bid 
  7. $query3 = mysql_query ("SELECT * FROM $mysql_tabela3");
  8. $rekord3 = mysql_fetch_array ($query3);
  9. if ($rekord['branza'] == $rekord3['bid']) {
  10. print $rekord3['bnazwa'];
  11. } else {
  12. print 'nie mogę wyświetlić nazwy branży';
  13. }  
  14. # Wyświetlam dalej tabele firma
  15. print'</td>';
  16. print'<td><span style="color: #D6D6D6;">[id: '.$rekord['kid'].']</span> ['.$rekord['inicjaly'].'] '.$rekord['firma'].' </td>';
  17. print'<td><a href="index.php?kid='.$rekord['kid'].'">więcej</a></td>';
  18. print'<td><a href="index.php?edytuj='.$rekord['kid'].'">edytuj</a></td>';
  19. print'<td><a href="index.php?usun='.$rekord['kid'].'">usuń</a></td>';
  20. print'</tr>'; 
  21. }
  22. ?>

Skrypt wyświetla wszędzie tam gdzie bid = 1 nazwę branży, natomiast tam gdzie jest bid inny niż 1 wyświetla się informacja iż nie można wyświetlić nazwy branży.
Cysiaczek
Czyli co? Jaki jest ten problem, bo piszesz, że jest problem, a potem, że problemu nie ma. Zdecyduj się.
wSBk
Cytat(wSBk @ 18.05.2007, 10:15:09 ) *
Skrypt wyświetla wszędzie tam gdzie bid = 1 nazwę branży, natomiast tam gdzie jest bid inny niż 1 wyświetla się informacja iż nie można wyświetlić nazwy branży.
Cysiaczek
No oczywiście, bo tak jest to zaprogramowane. Pisałem, bo nie ma żadnego błędu w kodzie, a Ty nie podałeś oczekiwanego rezultu.

  1. <?php
  2. if ($rekord['branza'] == $rekord3['bid']) {// jeśłi mają te same wartości
  3. print $rekord3['bnazwa']; // wypisz
  4. } else { // jeśli nie mają równych wartości
  5. print 'nie mogę wyświetlić nazwy branży'; // błąd
  6. }
  7. ?>


Pozdrawiam
wSBk
Oczekiwanym rezultatem jest wyświetlenie dla
bid = 1 wyswietlenie branza 1
bid = 2 wyswietlenie branza 2
bid = 3 wyswietlenie branza 3
bid = 4 wyswietlenie branza 4

A w tej chwili wyswietla tylko
bid = 1 wyswietlenie branza 1
bid = 2 wyswietlenie nie mogę wyświetlić nazwy branży
bid = 3 wyswietlenie nie mogę wyświetlić nazwy branży
bid = 4 wyswietlenie nie mogę wyświetlić nazwy branży

czyli:

  1. Branża Nazwa firmy Opcje
  2. branza 1 [id: 1] [@] Nazwa firmy więcej edytuj usuń
  3. nie mogę wyświetlić nazwy branży [id: 2] [@] asss więcej edytuj usuń
  4. branza 1 [id: 4] [@] 312 więcej edytuj usuń
  5. nie mogę wyświetlić nazwy branży [id: 5] [@] Zaklady Budowy Drog Lesnych S.A. więcej edytuj usuń

gdzie id 2 i 5 mają wartość branży = 2 a 1 i 4 wartość branży =1
Kicok
mysql_fetch_array" title="Zobacz w manualu PHP" target="_manual zwraca tylko jeden wiersz. Jeśli chcesz pobrać cały wynik zapytania, to musisz użyć tej funkcji w pętli:

  1. <?php
  2.  
  3. $query3 = mysql_query( 'SELECT * FROM ' . $mysql_tabela3 );
  4. while( $rekord3 = mysql_fetch_array( $query3 ) )
  5. {
  6. echo( '$rekord['branza'] = ' . $rekord['branza'] . '; $rekord3['bid'] = ' . $rekord3['bid'] . '<br />' );
  7. }
  8.  
  9. ?>
wSBk
dziękuję za pomoc.
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.