foreach不起作用,但是mysql_fetch_assoc

时间:2015-07-22 10:18:51

标签: php codeigniter

我是初学者,在本地网站上有电影和音乐目录,只是一个爱好,我使用CodeIgniter。一切都很好,并决定升级到CodeIgniter 3.0版。所有页面都加载没有问题,但专辑页面:

$string = $this->uri->segment(3);
$array=explode("8803",$string);
$id = ($array[1] / 11 );
$this->db->where('id', $id);
$query = $this->db->get('albuns');  
foreach ($query->result() as $data);
$id = $data->id;
$sqlDisc = "SELECT disc FROM songs
WHERE album_id = ".$id."
ORDER BY disc DESC";
$queryDisc = mysql_query($sqlDisc); //error msg listed below

$recDisc = mysql_fetch_assoc($queryDisc);
$numDisc = $recDisc['disc'];    
$disc_atual = 0

我收到此错误:“mysql_query():不推荐使用mysql扩展,将来会删除:使用mysqli或PDO代替”

我曾尝试使用foreach [模型页面],即使在之前版本的CI中也没有用。我不知道'mysql_fetch_assoc'和'foreach'之间的区别:

function get_disc()
{
$string = $this->uri->segment(3);
$array=explode("8803",$string);
$id = ($array[1] / 11 );
$this->db->select('disc');
$this->db->where('album_id', $id);
$this->db->order_by('disc', 'desc');
$query = $this->db->get('songs');
return $query->result();
}

为什么“$ array = explode(”8803“,$ string);”?
本地主机/ WD /音乐/专辑/所述-披白色专辑-灌录-DTS-51-wd88033443

何时工作:
“Lista das Trilhas - Disco 1”的英文意思是“Track Listing - Disc 1”

使用foreach不显示光盘编号:
“Lista das Trilhas”

我感谢任何帮助,谢谢你。

1 个答案:

答案 0 :(得分:0)

我的意思是显而易见的是改变你的代码 - 我会尽力帮助你,让你可以站在自己的脚上

$string = $this->uri->segment(3);
$array=explode("8803",$string);
$id = ($array[1] / 11 );
$this->db->where('id', $id);
$query = $this->db->get('albuns');  
foreach ($query->result() as $data)
{
    $id = $data->id;
    $queryDisc = $this->db
        ->select("disc")
        ->from("songs")
        ->where("album_id",$id)
        ->order_by("disc","DESC")
        ->get();

    $numDisc = $queryDisc->num_rows();
    if ($numDisc > 0)
    {
        foreach($queryDisc->result() AS $objDisc)
        {
            print_r($objDisc);
        }
    }
    $disc_atual = 0
}