2010-12-02 7 views
-3

これは答え私は質問と回答の2つのテーブルを持っています。すべての質問を回答の詳細とともに表示したいと思います。例えば。 23(ビュー)12(答)

SELECT 
    M.id, M.j_surname, 
    Q.id as qid, Q.qus_view_count, Q.qus_owner, Q.qus_title, Q.qus_description, 
    Q.qus_createddate, 
    COUNT(A.qus_id) as ans_count, 
    A.qus_id FROM jt_questions Q 
LEFT JOIN jt_members M ON M.id = Q.qus_owner 
LEFT JOIN jt_answers A ON Q.id = A.qus_id 
GROUP BY A.qus_id 
ORDER BY Q.qus_createddate DESC 
LIMIT $offset, $recordsPerPage; 
+3

PHPについては、実際に気にする人はいません。クエリを抽出し、それが必要なことをしない理由を説明してください。 –

+0

あなたはそこにstackoverflow競争相手を開発していますか?ハァッ?ハァッ? – martynthewolf

+0

StackoverflowはKingです。コミュニティプロジェクト。 –

答えて

2

せずに質問が表示されません全てNULL

+0

すでにこれを行いましたが、回答のない質問は表示されませんでした。 –

+0

あなたは私たちに表示されていない 'WHERE'節を持っていましたか?これは、あなたの '外部ジョイン'を '内部ジョイン 'に変換したかもしれません。 –

+3

ああ、今質問の質問が完全に変わって、私の答えが無意味に見えるようになりました。すばらしいです! –

0

$オフセットの値を持つことになりますA.qus_id未回答の質問についてはGROUP BY Q.idないGROUP BY A.qus_id

をお試しください= "1;ドロップテーブルjt_answers; - ";

何あなたのコードでやったことは、このように見えた場合EDITは

$SQL = "SELECT 
    M.id, M.j_surname, 
    Q.id as qid, Q.qus_view_count, Q.qus_owner, Q.qus_title, Q.qus_description, 
    Q.qus_createddate, 
    COUNT(A.qus_id) as ans_count, 
    A.qus_id FROM jt_questions Q 
LEFT JOIN jt_members M ON M.id = Q.qus_owner 
LEFT JOIN jt_answers A ON Q.id = A.qus_id 
GROUP BY A.qus_id 
ORDER BY Q.qus_createddate DESC 
LIMIT $offset, $recordsPerPage;"; 

私がする必要があるでしょうすべては、上記の私のオリジナルの答えのように見えるようにオフセット$を取得することです。それはあなたのjt_answersテーブルを削除します。

$ offsetが正の整数であることを確認するなど、これらの値を検証できます。

しかし実際には、MySQLiのパラメータバインディングを使用するべきです。これは変数を変数に置き換えますか?データベースがそれらをどのように扱うかを決めることができるように変数を渡すことができます。

http://www.php.net/manual/en/mysqli-stmt.bind-param.php

+0

?駄目?本当に? –

+0

セキュリティは重要です。 – DampeS8N

+0

セキュリティリスクがどこにあるのかを知りたいです。心から感謝しています。 –

関連する問題