2012-02-14 7 views
0

に参加しました。同様に、このルックアップに何人が答えましたか。PHP行のカウント量は、私は、次のコードを抱えている

function lookup() 
{ 
    $sql = "SELECT * FROM lookup 
      INNER JOIN lookupCategories 
      ON lookup.FK_lookupCategory=lookupCategories.lookupCategoriesId 
      INNER JOIN lookupType 
      ON lookup.FK_lookupType=lookupType.lookupTypeId 
      LEFT JOIN authentication 
      ON lookup.FK_lookupUserId=authentication.userId 
      LEFT JOIN freelanceTypes 
      ON lookup.FK_freelanceTypes=freelanceTypes.freelanceTypesId 
      LEFT JOIN lookupAnswer 
      ON lookup.lookupId=lookupAnswer.FK_lookupId 
      ORDER BY lookupId DESC 
      LIMIT 5"; 
    $result = mysql_query($sql)or die(mysql_error()); 

    $viewLookup = Array(); 

    while($row=mysql_fetch_assoc($result)): 

     $viewLookup[$row['lookupId']]['lookupId'] = $row['lookupId']; 
     $viewLookup[$row['lookupId']]['lookupHeader'] = $row['lookupHeader']; 
     $viewLookup[$row['lookupId']]['lookupSubHeader'] = $row['lookupSubHeader']; 
     $viewLookup[$row['lookupId']]['lookupContent'] = $row['lookupContent']; 
     $viewLookup[$row['lookupId']]['lookupDate'] = $row['lookupDate']; 
     $viewLookup[$row['lookupId']]['lookupCategory'] = $row['lookupCategoryName']; 
     $viewLookup[$row['lookupId']]['lookupType'] = $row['lookupTypeName']; 
     $viewLookup[$row['lookupId']]['lookupByUsername'] = $row['username']; 
     $viewLookup[$row['lookupId']]['lookupByUserId'] = $row['userId']; 
     $viewLookup[$row['lookupId']]['lookupFreelanceTypeId'] = $row['FK_freelanceTypes']; 
     $viewLookup[$row['lookupId']]['freelanceWinner'] = $row['freelanceWinner']; 

    endwhile; 
    return $viewLookup; 
} 

スレッドに対する「回答」の数をカウントすることはできません。私のスレッドはルックアップに結合されています。その後、表示されるように配列に格納されます。

どのように答えを数え、残りのデータと共に配列に数値を格納すればよいですか?私はこれをしようとしましたが、何が間違っているのか理解できません。それは何かがあるかどうかを返すだけです - 1またはNULL。事前に

$viewLookup[$row['lookupId']]['countAnswers'] = count($row['lookupAnswerId']); 

感謝:)

+0

'$ row ['lookupAnswerId']'は配列ですか?もしそうでなければ、 'count'は動作しません。 –

+0

いいえ、$ row ['lookupAnswerId']はanswersテーブルの行です。私はこれが私の問題だと思っていますが、どうしたらいいのか分かりません。 – skolind

+0

テーブルから返された行の数だけを探していますか?もしそうなら、あなたはmysql_num_rows(http://php.net/manual/en/function.mysql-num-rows.php)を探しています – AlexC

答えて

2
$sql = select count(*).... 

残りは、条件を追加します。

+0

だから私は次のことをやってみません:ルックアップからカウント(*)を選択し、残りの部分に参加するか、何? – skolind

+0

あなたが書いた1番目のクエリを実行します。数字を取得するには、2番目のクエリを行うだけでカウント(*)を変更し、同じことをして、それを返します。代わりに、$ number = mysql_num_rows($ result)を使用することもできます。$ resultはmysqlリソース(クエリの後に受け取るリソース)です。 – itachi

+0

私はIDの後に数えられないので、これを行うことはできません。なぜなら、フロントページ上の特定のスレッドに対する回答数を表示する必要があるからです。私は私が後で数えるためにIDを持っていれば、これをやり遂げることができた。 – skolind

関連する問題