我正在研究一个应该从MySQL获取数据的PHP脚本。
这就是我在做什么:
<?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。
如果我输入查询..codigo_verificacion =&#34; 9dv2ACvtwn2&#34; ...查询工作正常。
如果我把:
codigo_verificacion = '".$doctor_actual."'
或
codigo_verificacion = '.$doctor_actual.'
或
codigo_verificacion = $doctor_actual
它显示消息:
No Data Available
答案 0 :(得分:3)
您应该阅读Variable scope。外部函数$doctor_actual
和函数内部$doctor_actual
是两个不同的变量。正如你可以在上面读到的那样
<?php
$var = 'text';
function myFunc()
{
global $var;
echo $var; // 'text'
}
将解决您的问题。
但是在下面的评论中注意到@Sean,最好将值作为参数传递。只需在函数中添加其他参数,并在函数调用期间传递值。