php
  • mysql
  • 2013-10-10 107 views 0 likes 
    0

    我在這段代碼中遇到了問題,我從兩個表中獲取信息,並且「where news_id = $ dz」不起作用。其中包括這個代碼的Here is the pageMySQL WHERE查詢不起作用

    這裏是我的代碼:

    <?php 
    mysql_query("SET NAMES UTF8"); 
    $result = mysql_query("SELECT dz,title FROM dzeglebi where raioni='ყვარლის მუნიციპალიტეტი' && mxare='kaxeti' ORDER BY title ASC", $db); 
    $myrow = mysql_fetch_array ($result); 
    
    printf(
         "<h2><li> 
         <strong><a href='../../dzeglebi.php?id=%s'>%s</a> 
         </strong></li></h2>",$myrow["dz"],$myrow["title"]); 
    
    
    function FetchImage($id) 
    { 
        $images=array(); 
        $x=0; 
        $d=mysql_query("select * from `images` where news_id=$dz"); 
        while($data=mysql_fetch_array($d)) 
        { 
         $images["big"][$x]=$data["image"]; 
         $images["small"][$x]=$data["small"]; 
         $x++; 
        } 
    return $images; 
    } 
    function CountImages($id) 
    { 
    $d=mysql_query("select * from `images` where news_id=$dz"); 
    return mysql_num_rows($d); 
    } 
    $imgs=FetchImage($id); 
    
    for($i=0;$i<CountImages($id);$i++) 
    { 
    echo' 
    
    <img src="../'.$imgs["big"][$i].'" >'; 
    } 
    
    
    
    ?> 
    
    +0

    什麼是預期與實際輸出? – TheWolf

    +0

    你應該首先連接到$ db。在函數中,你不能訪問$ dz。在php函數內部,你只能訪問參數和局部變量。所以你應該傳遞$ dz az一個函數參數。 (或者將其作爲全局變量來訪問,但作爲參數傳遞是一種更好的方式。) 也許還有其他問題... –

    +0

    您在'FetchImage($ id)'和'CountImages($) $ id)'和where where news_id = $ dz'應該有'$ id' –

    回答

    0

    在第1查詢,通過AND mxare='kaxeti'改變&& mxare='kaxeti'。 此外,在功能FetchImageCountImages,通過news_id=$id

    1

    function CountImages($id) { $d=mysql_query("select * from images where news_id=$dz");改變news_id=$dz - 在這裏你應該使用$ ID

    下一個問題: - 不要使用for($i=0;$i<CountImages($id);$i++)改變它

    $len = CountImages($id); 
    for($i=0;$i<$len;$i++) 
    

    ,因爲你做的不需要爲每個FOR迭代執行SQL查詢,或者甚至刪除它 - 因爲您有$ images數組,因此迭代它

    下一個問題:

    $d=mysql_query("select * from `images` where news_id=$id"); 
    return mysql_num_rows($d); 
    

    切勿使用mysql_num_rows,使用SQL count(*) - 因爲它會從MySQL只發送1號到PHP,而不是整個結果集

    相關問題