Php Mysql选择其中id=array()
我试图在一个SELECT WHERE id=array()中插入一个数组,并且我试图在一个表中显示结果,我可以得到一行数据,第一个队的名字,胜利和失败,但是剩下的4个队没有出现。我试图显示id等于该数组的所有队Php Mysql选择其中id=array(),php,mysql,arrays,Php,Mysql,Arrays,我试图在一个SELECT WHERE id=array()中插入一个数组,并且我试图在一个表中显示结果,我可以得到一行数据,第一个队的名字,胜利和失败,但是剩下的4个队没有出现。我试图显示id等于该数组的所有队 $tournament = mysql_query("SELECT * FROM `tournaments` WHERE `id` = ".((int)$slug[1])." LIMIT 1"); if (mysql_num_rows($tournament) > 0) {
$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>';
}`
$tournament=mysql\u查询(“从'tournaments'中选择*,其中'id`=”((int)$slug[1])。“限制1”);
如果(mysql_num_rows($tournament)>0){
$tourbank=mysql\u fetch\u assoc($tourbank);
}
//数组等于273287234423124
$teamx=array();
$teamx[]=$tourbank['teams'];
$tteams=mysql_query(“从`teams`中选择*,其中`id`位于(“.intlode(',”,array_map('intval',$teamx))))限制128”);
如果(mysql_num_rows($tteams)>0){
$tteams=mysql_fetch_assoc($tteams);
$template['TOURNAMENTTEAMS'].=''.$tteams['name'.'.'.'.$tteams['wins'.'.'.'.'.$tteams['loss'.'.';
}否则{
$template['TOURNAMENTTEAMS'].='没有符合条件的球队';
}`
您需要循环查看您的结果,现在如果您得到1或10个结果,您只需打印第一项
if (mysql_num_rows($tteams) > 0) {
$results = mysql_fetch_assoc($tteams);
foreach($results as $row) {
$template['TROURNAMENTTEAMS'] .= ... ;
}
} else {
$template['TROURNAMENTTEAMS'] .= ... ;
}
让我们考虑一下你的代码> $TeMx数组的值如下:
$teamx = array(273,287,234,423,124);
$tteams = mysql_query("SELECT * FROM `teams` WHERE `id` IN (" . implode(',', $teamx)) . ") LIMIT 128");
那么您的查询应该如下所示:
$teamx = array(273,287,234,423,124);
$tteams = mysql_query("SELECT * FROM `teams` WHERE `id` IN (" . implode(',', $teamx)) . ") LIMIT 128");
不需要数组映射
功能
该错误可能出现在您的$锦标赛['teams']中代码>。检查其中的值,如果这些值与我上面的$teamx
数组类似,那么您必须循环使用$tournament['teams']
生成一个数组 if(mysql\u num\u行($result)>0){
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>';
}
}
而($tteamsfetch=mysql\u fetch\u assoc($result)){
$template['TOURNAMENTTEAMS'].=''.$tteamsfetch['name'.'.'.'.$tteamsfetch['wins'.'.'.'.$tteamsfetch['loss'.'.';
}
}
如果$tourbank['teams']
已经用逗号分隔,那么您不需要将它放在另一个维度的数组中。感谢您的帮助,我使用这个if(mysql_num_rows('result)>0){while($tteamsfetch=mysql_fetch_assoc($result)){$template['TOURNAMENTTEAMS']。$tteamsfetch['name']“.$tteamsfetch['wins']”.“.$tteamsfetch['LOSS']”.;}