【问题标题】:how to pass a retried database data to another page?如何将重试的数据库数据传递到另一个页面?
【发布时间】:2016-07-14 03:41:01
【问题描述】:

我正在尝试制作一个简单的预订表格。 第一个在数据库页面中显示可用城市和套餐 当用户点击页面中的BOOK 按钮时,页面将重定向到操作页面,在该页面中,所选表单/包应自动添加到booking 表中并发送确认邮件。

以下代码从数据库中生成可用的包:

include 'inc/db_connect.php';

//与数据库的工作连接

$sql="SELECT pkg, fcity, dcity, price, details FROM tour_package WHERE fcity='".$fcity_search."'  ORDER BY fcity ASC"; 
$sqlresult=mysqli_query($con,$sql);
$afct=mysqli_affected_rows($con);
while($pkg=mysqli_fetch_array($sqlresult,MYSQLI_ASSOC)){ 
    $num[]=$pkg['pkg'];
    $fcity[]=$pkg['fcity'];
    $dcity[]=$pkg['dcity'];
    $price[]=$pkg['price'];
    $details[]=$pkg['details'];
    $num++;
}

$i=0;
$book_btn_id = 1;
while($i < $afct)
{
    echo '<form action="book_tour_action.php">';
            $num_var_to_db = $num[$i];
        echo '<span class="search-class-row"><div class="search-results-label">Package : </div>'.$num[$i].'<br/></span>';
        echo '<span class="search-class-row"><div class="search-results-label">From : </div>'. $fcity[$i].'<br/></span>';
        echo '<span class="search-class-row"><div class="search-results-label">Destination : </div>' . $dcity[$i].'<br/></span>';
        echo '<span class="search-class-row"><div class="search-results-label">Price : </div>' .$price[$i].'<br/></span>';
        echo '<span class="search-class-row"><div class="search-results-label">Details :</div>' . $details[$i].'<br/></span>';
        //echo '<a href="#" class="booking-btn" name="bb'.$book_btn_id++.'"> BOOK </a>';
        echo '<input type="submit" value="BOOK" class="booking-btn" name="bb'.$book_btn_id++.'">';
        echo '<br><br/><hr/>';                          
        $i++;
    echo '</form>';
}

我为BOOK 按钮设置了一个动态名称。

book_tour_action.php:

echo $num_var_to_db;
$sql = "INSERT INTO booking (num_var_to_db)
VALUES ('$num_var_to_db')";

但是当点击BOOK 按钮时,它会显示 UNDEFINED VARIABLE。

这意味着我猜数据没有传递给book_tour_action.php。 我怎样才能让它发挥作用?

【问题讨论】:

  • 使用 mysqli_num_rows() 检查行数返回您的 SELECT 查询而不是 mysqli_affected_rows() 并将您的查询结果而不是您的连接传递给它
  • 另外我无法理解你想用name="bb'.$book_btn_id++.'"&gt;';做什么
  • 您的代码中没有$BOOK,因此您会得到一个未定义的变量似乎很奇怪。这段代码还有更多内容吗?

标签: php mysql forms mysqli


【解决方案1】:

您需要将$num_var_to_db 值保留在表单的隐藏输入字段中以获取该值。尝试如下操作:

  echo '<form action="book_tour_action.php">';
  $num_var_to_db = $num[$i];
  echo '<input type="hidden" name="num_var_to_db" value="'.$num_var_to_db.'">'
       echo '<span class="search-class-row"><div class="search-results-label">Package : </div>'.$num[$i].'<br/></span>';
      echo '<span class="search-class-row"><div class="search-results-label">From : </div>'. $fcity[$i].'<br/></span>';
   echo '<span class="search-class-row"><div class="search-results-label">Destination : </div>' . $dcity[$i].'<br/></span>';
      echo '<span class="search-class-row"><div class="search-results-label">Price : </div>' .$price[$i].'<br/></span>';
      echo '<span class="search-class-row"><div class="search-results-label">Details :</div>' . $details[$i].'<br/></span>';
     //echo '<a href="#" class="booking-btn" name="bb'.$book_btn_id++.'"> BOOK </a>';
     echo '<input type="submit" value="BOOK" class="booking-btn" name="bb'.$book_btn_id++.'">';
      echo '<br><br/><hr/>';                          
       $i++;
 echo '</form>';

在 php 页面中,您可以执行以下操作来获取值:

$num_var_to_db = $_REQUEST['num_var_to_db'];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-20
    • 1970-01-01
    • 1970-01-01
    • 2017-01-25
    • 2021-01-25
    • 2017-01-20
    • 2022-11-29
    • 2020-10-19
    相关资源
    最近更新 更多