【问题标题】:obtaining database data for an array of variables获取变量数组的数据库数据
【发布时间】:2013-02-21 05:59:48
【问题描述】:

您好,我创建了一个函数,将使用前一页上的复选框选择的预约时段添加到我的数据库中,同时存储时段 存储起来,以便它们可以在我的邮件功能页面的下方进一步使用。

$savedData = array();
foreach ($_POST as $key=>$value)
{       $key = mysql_real_escape_string($key);
        echo($key. "<br>"); // show times selected on previous page
        mysql_query("INSERT INTO appointment(Patient_ID, Appointment_Date, Appointment_Time
            , Practice_ID, Appointment_ID)
            VALUES('$patid','$insertdate','$key','$pracid','$apptype')");   
        //To save the variables for later:
        $savedData[] = $key;
}

我现在需要使用用户选择的时间段来识别插入我的数据库时自动生成的约会号码,我尝试使用的代码如下:

        $insertedapps = mysql_query("SELECT * FROM appointment 
        WHERE Appointment_Date='".$insertdate."' 
        AND Appointment_Time='".$key."'");
        while($row3 = mysql_fetch_array($insertedapps))
    {   $appno = $row3['Appointment_No.'];
    }

邮件功能:

$to = "$pemail";
       $subject = "Booking Confirmation";
       $message = "Hello $pfname 
       This e-mail is to confirm your $appname appointment has been booked for the below times for $insertdate at the the following time(s) below:
       Appointment No:      Appointment Time:
       $appno[0]            $savedData[0]
       $appno[1]            $savedData[1]
       $appno[2]            $savedData[2]
       $appno[3]            $savedData[3]
       The above appointment(s) are booked at the $pracname practice
       Should you wish to alter this appointment please login via our customer login page or contact us on $pracphone";
       $from = "xxxxx@xxxx.xxxx";
       $headers = "From:" . $from;
       mail($to,$subject,$message,$headers);
       echo "Mail Sent.";

约会时间打印得很好,但我没有得到约会号码的结果...有人能指出我哪里出错了吗?

【问题讨论】:

  • 不确定这是否是您的问题的原因(认为我需要更多详细信息),但您似乎从约会表中获取了一行,然后遍历该行。所以 $appno[3] 可能是练习 id 而不是第三次约会
  • +1 表示最后的点和 []。我认为 PHP 必须为这两个抛出错误?
  • key 结尾的句号有效,还是字符串!在这里试试:codepad.org/Z9sLVBBw 但是对于 mysql 列,这是真的。
  • 是的,对不起,你们是对的,该字段不是 Appointment_No。是 Appointment_No 我现在已经更改了这个,我得到了一些回报: Appointment No: Appointment Time: 3 14:00:00 8 14:15:00 3 14:30:00 14:45:00 约会号码不正确对于显示的时间,但 383 是实际的预约号。最后插入的约会@ 14:45:00

标签: php html mysql arrays foreach


【解决方案1】:

我看到您使用双引号 (") 和不喜欢数组 =D。将您的数组变量放在大括号内,如下所示:

{$appno[0]}

必须工作=)

【讨论】:

  • 这不是真的。如果下标不是文字,则只需要大括号。
  • 真的很抱歉。应该先测试一下!
【解决方案2】:

使用 $appno[] 代替 $appno

【讨论】:

    【解决方案3】:

    $appno = $row3['Appointment_No.'];

    每次都会重新初始化 $appno 变量。所以它永远不会包含 4 个值,为此使用 $appno[]

    另外,$row3['Appointment_No.'] 是什么?我认为这是一个 auto_increment 字段,但正如 cmets 中指出的那样,那个时期 . 不能在那里。也许是错字?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-28
      • 1970-01-01
      • 2015-03-04
      • 1970-01-01
      相关资源
      最近更新 更多