Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][mysql] Jak połączyć wiele różnych zapytań..., ... do kilku tabel by prezentować wynik.
missile
post 10.03.2006, 21:50:48
Post #1





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 12.11.2005
Skąd: hen hen

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


Witam.

Mam problem. Próbuję wyciągnąć, w jednym zapytaniu do bazy:
1. liczbę rekordów z tabel "tabela1" oraz "tabela2"
2. dwa pola o największej wartości z "tabela3"

Bez problemu uzyskuje te wyniki pisząc osobne zapytania. Jednak na potrzeby mojego Forum chcę połączyć te zapytania w jedno, by móc wyświetlić wyniki np. różnych informacji o jakimś poście na Forum i nie wiem z której strony to ugryźć.

Jeśi ktoś wie jak proszę o podpowiedź.
Z góry dziękuje smile.gif


[10.03.2006 22:45]
Myślałem o czymś takim:

  1. <?php
  2.  
  3. include ('_forum/_connection.php');
  4.  
  5. $sql_query = "SELECT post COUNT(*) as post_count,
  6. post_comment COUNT(*) as post_comment_count" .
  7. "FROM posts, posts_comment" .
  8. "LEFT JOIN forum" .
  9. "ON forum_id, forum_name, forum_description ";
  10.  
  11. $sql_result = mysql_query($sql_query, $conn)
  12.  or die(mysql_error() . 'Błąd pobierania info o forum!<br>' . $sql_query);
  13.  
  14. while ($sql_row = mysql_fetch_assoc($sql_result)) {
  15.  
  16.  echo '<div class="TcontentsMenu">
  17.  <div id="mark">' . $sql_row['forum_name'] . '</div>
  18.  <div class="ForumInfo">Tematy: <b>' . $sql_row['post_count'] . '</b>. Wszystkie wypowiedzi: <b>' . $sql_row['post_comment_count'] . '</b>.<br />Ostatnia: <b>0000-00-00 00:00:00</b>.</div>
  19.  <div>&nbsp;&nbsp;&nbsp;' . $sql_row['forum_description'] . '.. <a href="'.$_SERVER['PHP_SELF'].'?look=_forum&showforum=' . $sql_row['forum_id'] . '&show=_' . $sql_row['forum_id'] . '" class="sign1" id="q">więcej<span id="LinkArrows">>></span></a></div><br /><br />
  20. </div>';
  21. }
  22.  
  23. ?>


...ale wywala błąd:

Cytat
You have an error in your SQL syntax near 'COUNT(*) as post_count, post_comment COUNT(*) as post_comment_coun' at line 1
Błąd pobierania info o forum!
SELECT posts COUNT(*) as post_count, post_comment COUNT(*) as posts_comment_countFROM posts, post_commentLEFT JOIN forumON forum_id, forum_name, forum_description


No to kombinuje dalej... smile.gif


[10.03.2006 23:27]
Takie coś działa, ale...

  1. <?php
  2.  
  3. include ('_forum/_connection.php');
  4.  
  5. $sql = "SELECT COUNT(*) FROM posts LIMIT 1";
  6. $result = mysql_query($sql)
  7. or die(mysql_error() . '<br>' . $sql_query);
  8.  
  9. $PostCount = mysql_num_rows( $result );
  10.  
  11. ?>


...po wstawieniu w odpowiednie miejsce zmiennej $PostCount, wartość powtarza się w każdym, z wyświetlonych przez funkcję while() wyników i jest taka sama...

[11.03.2006 8:13]
A może wyjściem z sytuacji będzie zastosowanie kilku zapytań połączonych jakąś funkcją lub pętlą?


[12.03.2006 9:46]
Już sobie poradziłem. Zastosowałem osobną tabelę przechowującą dane o liczbie tematów i wypowiedzi. Tabela jest niewielka, posiada tylko kilka pól i rekordów więc z wydajnością nie będzie problemów... biggrin.gif
Temat uważam za zamknięty...

Pozdrawiam biggrin.gif

Ten post edytował missile 12.03.2006, 09:52:53


--------------------
Ważne, by mieć cel... Bo czym jest życie bez niego...
Go to the top of the page
+Quote Post

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 Wersja Lo-Fi Aktualny czas: 13.08.2025 - 21:39