我现在已经有一段时间了。我试图找到它将搜索名称和日期的地方。然后显示结果。
我在编码的这一部分需要一些帮助。
$sql = mysql_query("SELECT * FROM info WHERE patient_name '".$search."' date_of_service between '".$from."' AND '".$to."'");
我收到此消息
警告:mysql_fetch_assoc()要求参数1为资源,布尔值在第40行的C:\ xampp \ htdocs \ xampp \ prive_tc \ testing2.php中给出
我的完整代码
<?php
mysql_connect('localhost', 'root', '');
mysql_select_db('prive_ts');
$search = $_GET['search_box'];
$from = $_GET['from']; // or $from = $_get['from'];
$to = $_GET['to']; // or $to = $_get['to'];
$sql = mysql_query("SELECT * FROM info WHERE patient_name '".$search."' date_of_service between '".$from."' AND '".$to."'");
?>
<!-- form -->
<form name="search_form" method="GET" action="#">
Search: <input type="text" name="search_box" value="" />
Dates From : <input type="text" name="from" value=""/>
To : <input type="text" name="to" value=""/>
<input type="submit" name="search" value="Look up Patient ...">
</form>
<!-- end -->
<table width="70%" cellpadding="5" cellspace="5">
<tr>
<td><strong>Care Provider</strong></td>
<td><strong>Patient Name</strong></td>
<td><strong>Date of Time</strong></td>
<td><strong>Time In</strong></td>
<td><strong>Time Out</strong></td>
<td><strong>Remarks</strong></td>
</tr>
<?php while ($row = mysql_fetch_assoc($sql)){ ?>
<tr>
<td><?php echo $row['care_provider']; ?></td>
<td><?php echo $row['patient_name']; ?></td>
<td><?php echo $row['date_of_service']; ?></td>
<td><?php echo $row['time_in']; ?></td>
<td><?php echo $row['time_out']; ?></td>
<td><?php echo $row['remarks']; ?></td>
</tr>
<?php } ?>
</table>
答案 0 :(得分:3)
您忘记了=
查询条款中的WHERE
等号:
$sql = mysql_query("SELECT * FROM info WHERE patient_name = '".$search."' AND (date_of_service BETWEEN '".$from."' AND '".$to."')");
^^ here ^^ here AND/OR
顺便说一下,你不应再使用mysql_
函数了。它们已被弃用,不再维护。您应切换到更好的扩展名mysqli或PDO并使用预准备语句。不要直接在语句上连接用户输入。
答案 1 :(得分:3)
此行缺少等号和OR
或AND
WHERE patient_name '".$search."' date_of_service between ...
^ = there ^ OR or AND
DO
WHERE patient_name = '".$search."' AND date_of_service between ...
或
WHERE patient_name = '".$search."' OR date_of_service between ...
取决于您要使用的内容AND
或OR
另外,使用mysqli
with prepared statements或PDO with prepared statements,他们更安全。
因为您的现有代码对SQL injection开放。