Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Problem z odczytem danych z tabeli., Błędny wynik zapytania MYSQL
jerico
post
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 22.11.2009

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


Szukam od 2 dni odpowiedzi i nie potrafię rozwiązać następującego problemu.
Poniższy kod jak widać odczytuje zawartość tabel. Problem polega na tym, że błędnie wyświetlana jest druga kolumna wiersza (zaznaczona przez pogrubienie, funkcja printf()). Na początku myślałem, że źle zapisano zapytanie mysql ale następne dwa $wynik3 i $wynik4 są zbudowanie na tej samej zasadzie a wyniki wyświetlają się prawidłowo.
Błąd polega na tym, że nazwy firm generowane się w niezrozumiały dla mnie sposób.

Tabela user u
id | nazwa
1 | aaa
2 | bbb
3 | ccc

Tabela harmonogram h
nr zlecenia | idcompany | produkt | etap
1 | 1 | 3 |1
2 | 2 | 1 |3
3 | 1 | 5 |8
4 | 3 | 4 |3
5 | 3 | 7 |6


Wynik jest taki
1 | bbb | projdukt3 | etap1
2 | aaa | projdukt1 | etap3
3 | aaa | projdukt5 | etap8
4 | ccc | projdukt4 | etap3
5 | ccc | projdukt7 | etap6

Oczywiście jest jeszcze tabela produkt i etap zbudowane tak jak user.

Nie rozumie skąd taka kolejność ? Dlaczego jest to niezgodne z zapytaniem, w którym wskazuje, że h.idcompany = u.id. Jeszcze raz powtórzę dane z kolumny produkt i etap są generowane na tej samej zasadzie i wszystko jest ok.
Nie mogę rozgryźć jak/na jakiej podstawie generowana jest kolejność w tablicy asocjacyjnej dla zmiennej $firma

$wynik = mysql_query("select * from harmonogram");
$wynik2 = mysql_query("select company from harmonogram h, users u where h.idcompany = u.id");
$wynik3 = mysql_query("select produkt from produkt p, harmonogram h where p.id_produkt = h.product");
$wynik4 = mysql_query("select nazwa from etap e, harmonogram h where e.id_etap = h.etap");

$rec = mysql_num_rows($wynik);

for ($i=0; $i <$rec; $i++) {
$wiersz = mysql_fetch_array($wynik);
$firma = mysql_fetch_array($wynik2);
$produkt = mysql_fetch_array($wynik3);
$etap = mysql_fetch_array($wynik4);

printf('
<tr valign="top" align="left").'">
<td> <font class="small_font2">'.$wiersz["nr_zlecenia"].'</font></td>
<td> <font class="small_font2">'.$firma["company"].'</font></td>
<td> <font class="small_font2">'.$produkt["produkt"].'</font></td>
<td> <font class="small_font2">'.$etap["nazwa"].'</font></td>
</tr>
');
Go to the top of the page
+Quote Post

Posty w temacie


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: 22.08.2025 - 21:57