2013-06-04 63 views
0

我需要過濾日期(curdate)和醫生的id以查看每位醫生的日期(每位醫生只需要查看他/她每天的日期。)當在where子句中顯示數據時,兩個過濾器在pdo中mysql

我有這樣的代碼,如果我不把這個,id_doctor = GET['id_doctor']在工作where子句

<table class="table table-striped table-bordered bootstrap-datatable datatable"> 
    <thead> 
    <tr> 
    <th>Fecha</th> 
    <th>Hora</th> 
    <th>Nombre de Paciente</th> 
    <th>Acciones</th> 
    </tr> 
    </thead> 
    <tbody> 
    <? $sql = "SELECT * FROM CITAS WHERE f_cita = CURDATE(),id_doctor = GET['id_doctor'] ORDER BY f_cita, h_cita ASC"; 
    $result = $conn->query($sql); 
    while($row = $result->fetch(PDO::FETCH_ASSOC)) { 
    ?> 
    <tr> 
    <td>< 

? echo $row['f_cita'] ?></td> 
<td><? echo $row['h_cita'] ?></td> 
<td><? echo $row['nombrep'] ?></td> 
<td><a class="btn btn-success" href=paciente_personal_profile.php?id_paciente=<? echo $row['id_paciente']; ?>> 
<i class="icon-user icon-white"></i> Ver Perfil</a> 
</td> 
</tr><? } ?> 
</tbody> 
</table> 

我有這樣的FK(id_paciente和id_doctor)表CITAS但我需要的時候「X」 id_doctor登錄進入系統他/她只能看到他/她的日期...

你能幫我嗎這個,請嗎?

最好的問候!

回答

1

這是因爲它應該$_GET[]而不是GET[]所以

GET['id_doctor'] 

應該

$_GET['id_doctor'] 

,你也需要AND

WHERE f_cita = CURDATE() AND id_doctor = ".$_GET['id_doctor']." ORDER BY f_cita, h_cita ASC"; 
         --^you placed a comma here instead of AND 

關聯您的where子句我也會告訴你,你的代碼很容易受到MySQL的注射,你應該閱讀:How can I prevent SQL injection in PHP?

你應該用準備statment以避免任何風險,瞭解更多here

這是計算器

$id = 1; 
$stm = $pdo->prepare("SELECT name FROM table WHERE id=?"); 
$stm->execute(array($id)); 
$name = $stm->fetchColumn(); 
+0

喜一個很好的例子令牌@Fabio,與$ _GET []我有這個錯誤'解析錯誤:語法錯誤,意外的T_ENCAPSED_AND_WHITESPACE,期待T_STRING或T_VARIABLE或T_NUM_STRING',你是正確的準備...我會馬上插入它準備最好的問候 –

+0

@asterix_jv u se'$ _GET ['id_doctor']'不是$ _GET []' – Fabio

+0

是的我知道,我把所有的句子'$ _GET ['id_doctor']'給我那個錯誤 –