1

我有一个清单,分为天数、舞台、时间秀和乐队名称。我正在使用此脚本显示数据库中的选项,并尝试在“流程”页面上向用户显示结果(并最终通过电子邮件发送)。如何将 $result_x 转移到下一页?这是星期六第 1 阶段的“块”之一的示例,选择的值是该行的“ID”。

更新-第一部分已解决。现在希望将结果发送到用户输入的电子邮件地址。

表单解决方案 - 'Selection.php'

        $sql_Sat1 = "SELECT * FROM bandSched WHERE day='saturday' AND stage='stage 1'"; 
    mysql_query($sql_Sat1); 
    $result_Sat1 = mysql_query($sql_Sat1);

            while($row = mysql_fetch_array($result_Sat1))
            {
                echo "<ul><li>";
    echo'<input type="checkbox" name="id[]" value="'.$row['id'].' " id="bandSched_' . $row['id'] . '" />';
    echo '<label for="bandSched_' . $row['id'] . '">' . $row['timeShow']." ".$row['bandName'] . '</label>'; 
    echo "</li></ul>";

            }

解决方案 - 'process.php'

        if ( ! empty($_POST['id']))
    { foreach($_POST['id'] as $key => $id) { $_POST['id'][$key] = mysql_real_escape_string($_POST['id'][$key]); } 
    $in = implode(', ', $_POST['id']); 
    $sql_Sat2 = "SELECT * FROM bandSched WHERE id IN ($in) ORDER BY FIELD(id, $in)"; 
    $result = mysql_query($sql_Sat2) or die('MySQL Error ' . mysql_errno() . ': ' . mysql_error()); 
    }
     if ( ! isset($result))
    {
    echo 'You did not select anything';
    }
    else
    {
    while ($row=mysql_fetch_assoc($result))
    {

    echo "<tr>";
    echo "<td>". $row['timeShow'] ."</td><td>" . $row['bandName'] . "</td>";
    echo "</tr>";
    }

    }
4

3 回答 3

1

除非您在 <input type="checkbox" /> 中有属性 checked="checked" ,否则该值不会与表单数据一起发送。

试试这个:

 echo '<input type="checkbox" value="' . $row['id'] .'"name="selected" checked="checked" />';

这能解决问题吗?

于 2012-05-20T00:41:26.430 回答
0

可以使用会话、Cookie 或发布包含数据的隐藏表单元素来完成从页面到页面的数据传输。

于 2012-05-19T22:53:43.220 回答
0

会话为您提供数据,但您仍需要进行有效查询。会话所做的唯一事情就是在服务器上存储数据。它们不保留任何程序执行、变量等。

您的错误消息告诉您 mysql_fetch_array 没有提供 MYSQL 结果资源(并且不是您提供了 id 值的整数)。该查询将不会在整个会话中被记住。

此外,不推荐使用 mysql_*,请使用 PDO 或 mysqli。

于 2012-05-20T03:28:00.003 回答