[英]Mysql SELECT WHERE id = array()
我試圖在SELECT WHERE id = array()中插入一個數組,然后試圖在表中顯示結果,我可以得到一行數據,第一隊的名字,勝利和失敗,但是剩下的四隊可以我試圖向所有團隊展示id等於數組的團隊。
$tournament = mysql_query("SELECT * FROM `tournaments` WHERE `id` = ".((int)$slug[1])." LIMIT 1");
if (mysql_num_rows($tournament) > 0) {
$tournament = mysql_fetch_assoc($tournament);
}
//array is equal to 273,287,234,423,124
$teamx = array();
$teamx[] = $tournament['teams'];
$tteams = mysql_query("SELECT * FROM `teams` WHERE `id` IN (" . implode(',', array_map('intval', $teamx)) . ") LIMIT 128");
if (mysql_num_rows($tteams) > 0) {
$tteams = mysql_fetch_assoc($tteams);
$template['TOURNAMENTTEAMS'] .= '<tr><td style="text-align: center;"><strong>' .$tteams['name']. '</td><td style="text-align: center;">' .$tteams['wins']. '</td><td style="text-align: center;">' .$tteams['losses']. '</td></tr>';
}else{
$template['TOURNAMENTTEAMS'] .= '<tr><td style="text-align: center;"><strong>No eligible teams.</td><td style="text-align: center;"></td><td></td></tr>';
}`
您需要遍歷結果,現在如果您獲得1或10個結果,則僅打印第一項。
if (mysql_num_rows($tteams) > 0) {
$results = mysql_fetch_assoc($tteams);
foreach($results as $row) {
$template['TROURNAMENTTEAMS'] .= ... ;
}
} else {
$template['TROURNAMENTTEAMS'] .= ... ;
}
讓我們考慮您的$teamx
數組具有以下值:
$teamx = array(273,287,234,423,124);
然后您的查詢應如下所示:
$tteams = mysql_query("SELECT * FROM `teams` WHERE `id` IN (" . implode(',', $teamx)) . ") LIMIT 128");
不需要array_map
函數。
錯誤可能出在您的$tournament['teams'];
。 檢查其中的值,如果值類似於上面的$teamx
數組,則必須遍歷$tournament['teams'];
$teamx
生成一個數組。
if (mysql_num_rows($result) > 0) {
while ($tteamsfetch = mysql_fetch_assoc($result)){
$template['TOURNAMENTTEAMS'] .= '<tr><td style="text-align: center;"><strong>' .$tteamsfetch['name']. '</td><td style="text-align: center;">' .$tteamsfetch['wins']. '</td><td style="text-align: center;">' .$tteamsfetch['losses']. '</td></tr>';
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.