[英]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.