私は自分のコードをリファクタリングしています。以下のコードの最初のクエリは、送信された最新のタブのtab_idを取得します。 2番目のQueryは各タブの詳細を取得します。 私の古いやり方で、私はPHPとHTMLを組み込みました。本当に完全な混乱でした。今は2つのクエリを1にマージし、そして/または配列にロードしたいと思います。私はそれがむしろSQL関連の問題だと思うPHPの2次元配列に複数のmysqlクエリがあります
WHERE tabs.tab_id IN (1,2,3,4)
やイベント
WHERE tabs.tab_id in (select tab_id from tabs ...)
:なぜSQLを使用しない
は、お気軽におよび/または肉屋
function get_newest_tabs()
{
$db_open;
$sql = "SELECT tab_id, song_id, user_id FROM tabs ORDER BY time_added DESC ". "LIMIT 15";
$result = mysql_query($sql) or die("ERROR - newest tabs function: ".mysql_error());
if (mysql_num_rows($result) > 0)
{
for($i = 0; $i < mysql_num_rows($result); $i++)
{
$tab_id = mysql_result($result, $i, "tab_id");
$db_open;
$sql =
"SELECT tabs.tab_id, tabs.tab_version, tabs.number_of_hits, artist.artist_name, users.user_alias, songs.song_name, tabs.time_added
FROM tabs, users, artist, songs
WHERE tabs.tab_id ='".$tab_id."' AND tabs.user_id = users.user_id AND tabs.song_id = songs.song_id AND songs.artist_id = artist.artist_id";
$result2 = mysql_query($sql) or die("ERROR - i3p mysql - 4: ".mysql_error());
if(mysql_num_rows($result2) == 1)
{
$song_name = mysql_result($result2, 0, "songs.song_name");
$artist_name = mysql_result($result2, 0, "artist.artist_name");
$user_alias = mysql_result($result2, 0, "users.user_alias");
$tab_version = mysql_result($result2, 0, "tabs.tab_version");
$number_of_hits = mysql_result($result2, 0, "tabs.number_of_hits");
$time_added = mysql_result($result2, 0, "tabs.time_added");
}
}
}
}
このリンクは興味深いかもしれません。なぜmysql_num_rowsを使うのが最良でないかもしれないかを説明します。 http://stackoverflow.com/questions/1165298/is-mysqlnumrows-efficient-and-or-standard-practice – Smandoli