2017-02-26 60 views
0

我正在研究一個應該從MySQL獲取數據的PHP腳本。MySQL查詢變量不被接受

下面是我在做什麼:

<?php 
include('db.php'); 
session_start(); 
$doctor_actual=$_SESSION['doctor_actual']; 
echo $doctor_actual; 
if(isset($_REQUEST['actionfunction']) && $_REQUEST['actionfunction']!=''){ 
$actionfunction = $_REQUEST['actionfunction']; 

    call_user_func($actionfunction,$_REQUEST,$con,$limit,$adjacent); 
} 
function showData($data,$con,$limit,$adjacent){ 
    $page = $data['page']; 
    if($page==1){ 
    $start = 0; 
    } 
    else{ 
    $start = ($page-1)*$limit; 
    } 
    $sql = "select * from tb_opiniones_doctor where codigo_verificacion = '".$doctor_actual."' order by id_opinion_doctor asc"; 
    $rows = $con->query($sql); 
    $rows = $rows->num_rows; 

    $sql = "select * from tb_opiniones_doctor where codigo_verificacion = '".$doctor_actual."' order by id_opinion_doctor asc limit $start,$limit"; 

    $data = $con->query($sql); 
    $str='<table><tr class="head"><td>Id</td><td>Firstname</td><td>Lastname</td></tr>'; 
    if($data->num_rows>0){ 
    while($row = $data->fetch_array(MYSQLI_ASSOC)){ 
     $str.="<tr><td>".$row['id_opinion_doctor']."</td><td>".$row['id_opinion_doctor']."</td><td>".$row['id_opinion_doctor']."</td></tr>"; 
    } 
    }else{ 
    $str .= "<td colspan='5'>No Data Available</td>"; 
    } 
    $str.='</table>'; 

echo $str; 
pagination($limit,$adjacent,$rows,$page); 
} 

我的問題是在這兩個查詢,他們只當我把真正的價值爲$ doctor_actual,不作爲的變量。

我已經回覆$ doctor_actual的值,它是9dv2ACvtwn2。

如果我把查詢.. where codigo_verificacion =「9dv2ACvtwn2」...查詢工作正常。

如果我把:

codigo_verificacion = '".$doctor_actual."' 

codigo_verificacion = '.$doctor_actual.' 

codigo_verificacion = $doctor_actual 

它顯示的信息:

No Data Available 

回答

3

您應該閱讀約Variable scope$doctor_actual外部函數和$doctor_actual內部函數是兩個不同的變量。正如你可以閱讀上面這樣的東西

<?php 
$var = 'text'; 

function myFunc() 
{ 
    global $var; 
    echo $var; // 'text' 
} 

將解決您的問題。


但正如注意@Sean在下面的評論是最好的想法傳遞值作爲參數。只需在函數中添加附加參數並在函數調用期間傳遞值即可。

+0

謝謝Wolen,你是對的。 – mvasco

+1

儘管技術上正確,但通常不建議使用'global' - >'global $ var;'。由於他們已經在使用函數參數,所以爲什麼不建議在那裏添加它。 – Sean

+0

你是對的,作爲參數傳遞價值是更好的主意,我會更新我的答案,謝謝! – Wolen