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