0

各医師の日付を表示するには、日付(curdate)と医師のIDをフィルタリングする必要があります(すべての医師は、毎日の日付のみを表示するだけで済みます..

,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>

テーブル CITAS にこの FK (id_paciente および id_doctor) がありますが、"x" id_doctor がシステムにログインするときに、彼/彼女は彼/彼女の日付しか見ることができません...

これで私を助けてもらえますか?

よろしくお願いします!

4

1 に答える 1

1

これは、想定されているためであり、そうでは$_GET[]ないGET[]ためです

GET['id_doctor'] 

する必要があります

$_GET['id_doctor']

また、where句を次のように関連付ける必要があります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

また、コードは mysql インジェクションに対して脆弱であることをお勧めします。これを読む必要があります: PHP で SQL インジェクションを防ぐにはどうすればよいですか?

リスクを回避するために、準備されたステートメントを使用する必要があります。詳細については、こちらをご覧ください

これは、stackoverflow のトークンの良い例です。

$id  = 1;
$stm = $pdo->prepare("SELECT name FROM table WHERE id=?");
$stm->execute(array($id));
$name = $stm->fetchColumn();
于 2013-06-04T15:26:11.783 に答える