2

これを2つの異なるリストに表示するのに助けが必要です

$domains_sql = mysql_query("SELECT domains_id, domains_url, keywords_id, keywords_word, domains_comments_comment

     FROM
     (
     SELECT domains_id,domains_url
     FROM domains
     ORDER BY RAND()
     LIMIT 1
     ) as d

     INNER JOIN domains_comments
     ON domains_comments_domain = domains_id

     INNER JOIN domains_keywords
     ON domains_keywords_website = domains_id

     INNER JOIN keywords
     ON domains_keywords_keyword = keywords_id
         ORDER BY keywords_word ASC") or die (mysql_error());


$num = mysql_num_rows($domains_sql);

$current_price = "";


for($i=0;$i<$num;$i++){


$domains_result = mysql_fetch_array($domains_sql);

$domains_id = $domains_result['domains_id'];
$domains_url = $domains_result['domains_url'];
$domains_name = preg_replace('#^https?://www.#', '', $domains_url);                

$keywords_id = $domains_result['keywords_id'];
$keywords_word = $domains_result['keywords_word'];

$domains_comments = $domains_result['domains_comments_comment'];

if($domains_url != $current_price) {

echo $domains_name."<br /><br />";

$current_price = $domains_url;

}

echo $keywords_word."<br />";
echo $domains_comments."<br />";
}

プリントアウト:

MSOffice
ドメイン1- パート
1MySQL ドメイン1-MySQLドメイン1-パート 1PHP ドメイン 1 - PHP ドメイン1-パート 1VisualBasic ドメイン1- VisualBasic ドメイン 1- パート












そして私はそれが必要です:

(キーワードからの情報)

MS Office
MySQL
PHP
Visual Basic

(コメントからの情報)

ドメイン1
ドメイン1-パート1-

4

1 に答える 1

1

ドメインのコメントとキーワードがどのように関連しているか、そして単に2つのリストが必要なのか、キーワードごとに1つのコメントリストが必要なのかはわかりません。

とにかく、クエリロジックを書き直して、キーワードのプライマリクエリを作成し、コメントに対してより単純なクエリを実行することもできます(すべてに1つ、またはキーワードごとに1つ)が、クエリの時間とデータセットが好みの場合単一のクエリで、複数レベルの配列でデータを再構築できます。

また、すべてのアイテムを1回だけリストしたいと思います。

$keywords = array();
$comments = array(); //if you want all comments in one list
for($i=0;$i<$num;$i++){
  $domains_result = mysql_fetch_array($domains_sql);

  //Stores complete row data, only keeps the last, if the same value is fetched from the db several times
  $keywords [$domains_result['keywords_word']] = $domains_result;
  $comments[$domains_result['domains_comments_comment']] = $domains_result;
}
//Now you have the two list, could be printed several ways, to only print the values
print implode("<br />\n",array_keys($keywords));
print "<br />";
print implode("<br />\n",array_keys($comments));

//Loop trough
foreach ($keywords as $keyword=>$data) {
  print "$keyword<br>\n";
  print $data['keywords_word']."<br>\n";
  print_r($data);
}
于 2012-11-27T15:26:33.350 に答える