【发布时间】:2017-10-19 14:01:28
【问题描述】:
Wanted resultResult - error- trying to use two statements
我已经尝试了几天来成功建立一个表单,该表单可以给我两个下拉框,我可以在其中从同一数据库中的不同表中选择记录。我的目标是能够将酒店房间从一个参与者转移到另一个参与者。为此,我需要能够先选择房间捐赠者,然后再选择接受者。我是在 cms 中执行此操作的,因此我必须能够从同一个 PHP 脚本中进行此选择。
一旦我包含第二个选项,我就会遇到问题。我不明白如何在同一个表单上实现两个选择选项。有人对我有解决方案吗?这是我的代码:
if (!isset($_POST['selected']))
{
$DonorSelect = "Select * from rog_jomres_guests where property_uid in ($RallyHotels) order by surname";
$DonorResult = mysql_query($DonorSelect) or die("Donor lookup Query failed" . mysql_error());
$numrecords=mysql_num_rows($DonorResult); $rows = 0;
?>
<html>
<body>
<form method="post" action="<?php echo $PHP_SELF;?>">
<select name="donor">
<?php
while ($JosRow = mysql_fetch_array($DonorResult))
{
$Name = $JosRow['guests_uid'] . " " . $JosRow['surname'] . "," . $JosRow['firstname'];
$id = $JosRow['mos_userid'];
$gid=$JosRow['guests_uid'];
$IDName = $Name;
$AttendSelect = "select * from rog_sembookings where userid = $id AND semid = $ThisRally";
$AttendResult = mysql_query($AttendSelect) or die("$ThisRally query failed" . mysql_error());
$AttendRow = mysql_fetch_array($AttendResult);
if ($Name == "Administrator"){ }
elseif (!$AttendRow) { }
else
{
?>
<option value="<?php echo $gid; ?>"><?php echo $IDName;?></option>
<?php
}
}
?>
</select>
<?php /**
<select name="transferto">
<?php
$RecipientSelect = "Select * from rog_users order by name";
$RecipientResult = mysql_query($RecipientSelect) or die("Recipient lookup Query failed" . mysql_error());
$Recipientrecords=mysql_num_rows($RecipientResult);
while ($RecipientRow = mysql_fetch_array($RecipientResult))
{
$RecipientName = $RecipientRow['name'];
$Recipientid = $RecipientRow['id'];
$RIDName = $RecipientName;
$PartSelect = "select * from rog_users where userid = $Recipientid";
$PartResult = mysql_query($PartSelect) or die("$ThisRally PartSelect query failed" . mysql_error());
$PartRow = mysql_fetch_array($PartResult);
if ($RecipientName == "Administrator"){ }
elseif (!$PartRow) { }
else
{
?>
<option value="<?php echo $Recipientid; ?>"><?php echo $RIDName;?></option>
<?php
}
}
?>
</select>
<?php **/ ?>
<input type="submit" value="<?php echo $Valg; ?>" name="selected">
</input>
</form>
</body>
</html>
<?php
} // end of clause if not set $_POST['selected']
else
{ // beginning clause if set $_POST['selected'] let's do this thing......
if ($AdminUser==1)
{ $CurrGuest = $_POST["donor"];}
非常感谢任何帮助!谢谢
【问题讨论】:
-
您的代码应该失败,因为 AFAIK 没有 mysql_numrows 函数。您也不应该使用 mysql_ 函数,而应该只使用准备好的语句,因为我假设您的查询包括用户输入。此外,如果您在此站点上需要帮助,则需要包含有关您的“问题”的更多信息,例如错误消息。
-
虽然函数 mysql_numrows 不是该脚本的重要组成部分,但该函数存在并且帮助我解决了脚本和数据库查询问题。我从 php v5.4 开始使用该功能。我看到它现在被命名为 mysql_num_rows。但是,这是一个支线,我应该在此处输入代码之前将其删除。我将使用运行脚本产生的屏幕转储更新文章。我没有收到错误消息。谢谢
-
自从 PHP7 以来 mysql_ 函数不再是 PHP 的一部分,我建议您使用 PDO 或 MYSQLI 和准备好的语句重写代码,您可以通过这样做来解决您的错误。提示:不要在线遵循 PHP 教程,除非它们来自有信誉的来源。大约 8 年前就没有人推荐 mysql_ 函数了。
-
谢谢德文 - 我明白你的意思。任何人都可以提出任何线索?