【发布时间】:2013-04-01 20:38:32
【问题描述】:
我正在开发一个预订系统。我的网站目前的工作方式是用户登录并选择约会。我需要帮助来显示他们在下一页上预订的约会。此外,当他们预约时,其他用户应该不再可以使用它。
<?php
{
mysql_connect("localhost" , "" , "") or die (mysql_error());
mysql_select_db("") or die(mysql_error());
$pid=intval($_SESSION["Patient_id"]); $query = "SELECT t1.*, t2.Doctor_name, t2.Doctor_room FROM Appointment AS t1 INNER JOIN Doctor AS t2 ON t1.Doctor_id=t2.Doctor_id";
//executes query on the database
$result = mysql_query ($query) or die ("didn't query");
//this selects the results as rows
$num = mysql_num_rows ($result);
while($row=mysql_fetch_assoc($result))
{
$_SESSION['Appointment_date'] = $row['Appointment_date'];
$_SESSION['Appointment_time'] = $row['Appointment_time'];
$_SESSION['Doctor_name'] = $row['Doctor_name'];
$_SESSION['Doctor_room'] = $row['Doctor_room'];
}
}
?>
<strong>Dates available</strong>
<select id="Availability" name="Availability">
<option value="0">--Select date--</option>
<option value="3"><?php echo $_SESSION['Appointment_date'];?></option>
</select>
<br />
<br />
<strong>Times available</strong>
<select id="Availability" name="Availability">
<option value="0">--Select time--</option>
<option value="3"><?php echo $_SESSION['Appointment_time'];?></option>>
</select>
<br />
<br />
<strong>Doctor Name</strong>
<select id="Availability" name="Availability">
<option value="0">--Name--</option>
<option value="2"><?php echo $_SESSION['Doctor_name'];?></option>>
</select>
<br />
<br />
<strong>Doctor Room</strong>
<select id="Availability" name="Availability">
<option value="0">--Room--</option>
<option value="2"><?php echo $_SESSION['Doctor_room'];?></option>>
</select>
上面的代码允许用户根据可用的信息进行预约。此表称为约会表。当用户单击下一步时,我需要将此信息显示给用户,以便显示他们的约会,并且约会不应再对其他用户可用
谢谢!
【问题讨论】:
-
Please, don't use
mysql_*functions in new code。它们不再维护and are officially deprecated。看到red box?改为了解 prepared statements,并使用 PDO 或 MySQLi - this article 将帮助您决定哪个。 -
date和time分开的原因是什么? -
@FreshPrinceOfSO,没有理由。这正是我设置它的方式。
-
只是一点点增强。我注意到您获得了查询返回但从未使用过的行数。出于效率目的,您应该将您的 while 循环包装在一个 if 中,如下面的
if(mysql_fetch_rows($result))。如果没有返回行,这可以防止运行否则不需要的代码。只是轻微的增强。此外,出于安全原因,您可能需要注意@FreshPrinceOfSO 关于已弃用功能的建议。这些会给您的服务器和用户带来安全风险。 -
@War10ck,谢谢。对所提出的问题有任何想法吗?