Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]INNER JOIN, wyswietlanie danych
IMP
post
Post #1





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 20.08.2007

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


Hej

mam problem z wyświetleniem danych z zapytania łączącego dwie tabele. Zapytanie pobiera dane z tablicy newsy a także rekordy z tablicy user jeżeli pole autor i pole id w tablicy user sa takie same.

Pierwotna metoda wyswietlania ktora zastosowalem wyglada tak:
  1. while( $i < $Data->per_page )
  2. {
  3. $id = mysql_result($Data->content,$i,"id");
  4. $autor = mysql_result($Data->content,$i,"users.nick");
  5. $autor_id = mysql_result($Data->content,$i,"users.id");
  6. $title = mysql_result($Data->content,$i,"title");
  7. $text = mysql_result($Data->content,$i,"content");
  8. $text_ext = mysql_result($Data->content,$i,"content_extended");
  9. $img_src = mysql_result($Data->content,$i,"img");
  10. $category = mysql_result($Data->content,$i,"category");
  11. $date = mysql_result($Data->content,$i,"data");


Następnie po prostu wyświetliłem zmienne. Problem zaczyna się przy stronicowaniu. Dla pustych rekordów php zwraca error postaci:
  1. Warning: mysql_result() [function.mysql-result]: Unable to jump to row 4 on MySQL result index 18
.. i tak dla każdego wiersza.

Zmieniłem więc podejscie i zrobiłem tak:
  1. while($wynik = mysql_fetch_array($Data->content))
  2. {
  3.  
  4. $this->code .= '<div class="news">';
  5. $this->code .= '<h2 class="news"><img src="/images/category/'.$wynik['category'].'.jpg" alt="starcraft '.$wynik['category'].'" />'.$wynik['title'].'<br /><span>autor: <a href="/profil/'.$wynik['users.id'].'/'.$wynik['users.nick'].'/">'.$wynik['users.nick'].'</a> | '.$wynik['data'].'</span></h2>';
  6. $this->code .= '<div class="content"><img src="'.$wynik['img'].'" alt="starcraft 2 news" class="banner" /><br />';
  7. $this->code .= '<p>'.$wynik['content'].'</p><br />


W tym wypadku problem polega na tym że nie wyświetla się $wynik['users.nick'] z kolei $wynik['nick'] już tak.
Podobny problem jest z $wynik['users.id'] i $wynik['news.id']. Nie mam dostępu do tego drugiego. Jest jakby nadpisany.

na wszelki wypadek podam zapytanie:
  1. $query2 = 'SELECT * FROM '.$table.' INNER JOIN users ON '.$table.'.autor = users.id ORDER BY '.$table.'.'.$sort.' DESC LIMIT '.$this->start.','.$this->stop.'';
Ale tak jak napisałem w przypadku pierwszego sposobu wszystkie dane są dostępne.
Prosze o pomoc.
Go to the top of the page
+Quote Post

Posty w temacie
- IMP   [MySQL][PHP]INNER JOIN   16.09.2010, 14:57:44
- - smietek   Jeśli chcesz używać pierwszego, użyj LEFT JOIN zam...   16.09.2010, 18:41:38
- - IMP   Dzięki, pomogło.   18.09.2010, 08:37:14


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

 



RSS Aktualny czas: 22.08.2025 - 06:55