Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php/mysql] wyswietlanie pustego pola
Forum PHP.pl > Forum > Przedszkole
plurr
witam,

mam dwie bazy:
Pracownicy (id_prac, imie, nazwisko, pesel, nr_dowodu, stanowisko, id_kont) oraz
Kontrachenci (id_kont, nazwa, miasto, telefon)

Pracownik jest powiazany z kontrachentem za pomoca 'id_kont' - chce wiedizec u ktorego kontrachenta jest dany pracownik.
Tabela aktywnosc nie jest istotna w tym momencie.

Kod wyglada nastepujaco:

  1. <?php
  2. ...
  3.  
  4. $sql = "select imie, nazwisko, pesel, stan, od, do, nazwa, miasto, pracownicy.id_ko
    nt from pracownicy, aktywnosc, kontrachenci where pracownicy.id_prac=aktywnosc.id
    _akt AND pracownicy.id_kont=kontrachenci.id_kont"
    ;
  5.  
  6.  
  7.  
  8. $query = mysql_query($sql);
  9. $num = mysql_num_rows($query);
  10.  
  11. echo "<table id="sql" >";
  12.  
  13. echo "<th>imie<th>nazwisko<th>pesel<th>stan<th>od<th>do<th>nazwa<th>miasto ";
  14.  
  15. for($i=1; $i<=$num; $i++)
  16. {
  17. $wiersz = mysql_fetch_array($query);
  18. if($i%2)
  19. echo "<tr id="tr1">";
  20. else 
  21. echo "<tr>";
  22. echo "<td>".$wiersz['imie']."</td>";
  23. echo "<td>".$wiersz['nazwisko']."</td>";
  24. echo "<td>".$wiersz['pesel']."</td>";
  25. echo "<td>".$wiersz['stan']."</td>";
  26. echo "<td>".$wiersz['od']."</td>";
  27. echo "<td>".$wiersz['do']."</td>";
  28. if($wiersz['id_kont'] == "")
  29.  
  30. {
  31. echo "<td>n/a</td>";
  32. echo "<td>n/a</td>";
  33. }
  34.  
  35. else 
  36. {
  37. echo "<td>".$wiersz['nazwa']."</td>";
  38.  echo "<td>".$wiersz['miasto']."</td>";
  39. }
  40.  
  41. echo "</tr>";
  42. }
  43.  
  44. echo "</th></table>";
  45. ?>


w zawartosci wyswietlanej maja byc wszyscy pracownicy w wraz z kontrachentem u ktorego są, jesli pracownicy.id_prac jest puste tzn ze znajduje sie w firmie i ma wypisac "n/a " w polu nazwa i miasto (kontrachenta).

Problem w tym ze bazie mam np 6 pracownikow, z tego trzech ma wpisany id_kont, pozstali nic.

Skrypt dziala zle, a mianowicie wypisuje mi tylko tych ktorzy maja wpisane id_kont. :/

Prosze o pomoc bo juz nie wiem gdzie robie blac :/
misiek172
wypisuje ci tylko tych ponieważ w zapytaniu masz:

where pracownicy.id_prac=aktywnosc.id_akt AND pracownicy.id_kont=kontrachenci.id_kont

wywal ostatni warunek, bedziesz mial:

where pracownicy.id_prac=aktywnosc.id_akt

i teraz wyświetli ci wszystkich
plurr
ale bez tego warunku mi dubluje wyniki, ten warunek laczy dwie tabele, zeby sie wiersze nie powtarzaly. hmm.

wydaje mi sie ze trzeba zrobic tak jakby dwa zapytania, pierwsze to te ktore wybiera z bazy pracownikow niemajacych id_kont, a drugie tych mających - pozniej jakos to polaczyc zeby stworzylo jedna tabele hmm...
misiek172
no to zastosuj w zapytaniu polecenie DISTINCT

http://forum.php.pl/index.php?showtopic=56819&hl=
plurr
distinct tu nie pomoze. Piszac dubluje mialem na mysli to, ze sql tworzy wiersze z roznymi mozliwosciami, warunek musi byc. Problem nada istnieje :/

domyslam sie wiec, ze nikt nie moze mi pomoc sad.gif
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.