Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak napisac zapytanie do 2 tabel
Forum PHP.pl > Forum > Przedszkole
dobryvinyl.com
Witam

mam takie tabele

Witam, pisze wlsnie prosty skrypcik forum. Chcial bym jednak aby byl on dosc optymalny.

Sklada sie on z 3 tabel

forum_fora / zawiera ona fora

- id
- data
- nazwa
- opis
- priorytet
- miasto_id


forum_tematy / zawiera tematy przpisane do odpowiedniego fora

- id
- data
- temat
- tresc
- foro_id
- status
- nick
- email



i jak teraz wypisac 5 najnowszych tematow z danego miasta?
Wieviór
W miejscu gdzie masz ostatnie tematy, wyczytujesz ostatnie rekordy z tabeli z tematami, gdzie foro_id = id(z tabeli forum_fora)
dobryvinyl.com
tyle to ja wiem ale cos mi niewychodzi napisanei tego zapytania
Wieviór
Najpierw łączysz się do tabeli z forami, rozumiem, że zamierzasz to jakoś wyświetlać jak na każdym forum, po kolei. Przypisujesz:

  1. <?php
  2. $forum = $wyczytanebanezbazy[id];
  3. ?>


I potem łaczysz się do tabeli z tematami:

  1. SELECT *
  2. FROM forum_tematy WHERE foro_id = $forum ORDER BY DATA DESC LIMIT 5
dobryvinyl.com
eh dalej nie oto mi chodzi chodzi mi o napisanie takiej relacji miedzy tymi dwoma tabelami zeby wypisac tematy z for, ktorego kategoria nalezy do danego miasta.
ennics
  1. SELECT *
  2. FROM forum_fora f1
  3. LEFT JOIN forum_tematy f2 USING(id)
  4. WHERE ...
dobryvinyl.com
W dalszym ciagu cos nietak. Relacja wyglada umnie nastepujaco

  1. <?php
  2. $wynik_temat = mysql_query ("select t.temat, t.id, f.id, f.miasto_id from forum_tematy t, forum_fora f W
    HERE f.id=t.foro_id AND f.miasto_id='$miasto' ORDER BY `t.data` DESC LIMIT 0 , 7 "
    );
  3.     while($rekord_temat = mysql_fetch_array ($wynik_temat)){
  4.  
  5. ?>



i caly czas mam Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource


jak zrobic zemy mysql wyplu cos wiecej na temat bledu?
ennics
  1. <?php
  2.  
  3. $wynik_temat = mysql_query ("select t.temat, t.id, f.id, f.miasto_id from forum_tematy t, forum_fora f W
    HERE f.id=t.foro_id AND f.miasto_id='"
    . $miasto ."' ORDER BY `t.data` DESC LIMIT 0 , 7 ");
  4. while($rekord_temat = mysql_fetch_array ($wynik_temat)){
  5.  
  6. ?>
dobryvinyl.com
dalej mam blad:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource

a czy idzie jakos wypluc o jaki argument mu chodzi?
ennics
spróbuj
  1. <?php
  2.  
  3.  
  4. $wynik_temat = mysql_query ("select t.temat, t.id, f.id, f.miasto_id from forum_tematy t, forum_fora f W
    HERE f.id=t.foro_id AND f.miasto_id='"
    . $miasto ."' ORDER BY `t.data` DESC LIMIT 0 , 7 ");
  5. while($rekord_temat = mysql_fetch_array ($wynik_temat)){
  6. }
  7.  
  8.  
  9. ?>

pokaże Ci kod i opis ostatniego błędu mysql
dobryvinyl.com
hmm kod:

  1. <?php
  2. $wynik_temat = mysql_query ("select t.temat, t.id, f.id, f.miasto_id from forum_tematy t, forum_fora f W
    HERE f.id=t.foro_id AND f.miasto_id='"
    . $miasto ."' ORDER BY `t.data` DESC LIMIT 0 , 7 ");
  3. while($rekord_temat = mysql_fetch_array ($wynik_temat)){
  4.  
  5.  
  6.  
  7. if($licznik_c=="0"){
  8. print "<tr valign="top">";
  9. $licznik_c++;
  10. }else{
  11. print "<tr bgcolor="#EEEEEE" valign="top">";
  12. $licznik_c=0;
  13. }
  14. print "<td><img src="gfx/forum/strzalka.gif" width="5" height="7"><a href="?dzial=forum.post&temat=$rekord_temat[1]&miasto=$miasto">$rekord_temat[0]</a></td>";
  15.  
  16. print "</tr>";
  17.  
  18. }
  19.  
  20. ?>


wypluwa mi:

Kod
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /XXXXX/inc/forum/forum_index.php on line 16
mysql_error:mysql_errno



wiec chyba cos nie tak?
ennics
co jest w 16 linijce ? bo chyba nie chodzi o print "</tr>";
Ociu
  1. <?php
  2. ?>

?
chyba
  1. <?php
  2. print mysql_error() . ":" . mysql_errno();
  3. ?>
dobryvinyl.com
jak mam sobie to wytlumaczyc ?


Unknown column 't.data' in 'order clause':1054



a jak wywalilem date to mi wyskoczylo



You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'DESC LIMIT 0 , 7' at line 1:1064
Ociu
Masz w tabeli t kolumnę data ? Zobacz poprawnośc nazw, spróbuj przetestować zapytanie w phpmyadmin.
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.