Php Mysql选择其中id=array()

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) {

我试图在一个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_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']”.;}