0

好的,所以当谈到 PHP 和 MySQL 编程时,我是一个初学者,所以问题可能很简单,但无论如何,这就是我的情况。我有一个带有下拉菜单的内容页面,它应该给我一个 $_POST 值(选项取自数据库列):这是代码

    <link href="../css/pagestyle.css" rel="stylesheet" type="text/css" />
<?php
include("../panel/config.php");

    $db = mysqli_connect($server, $username, $password, $database);
    if(mysqli_connect_errno()) { //if connection database fails
     echo("Connection not established " .
     mysqli_connect_error($db) . "</p>");
       }  

    $query = "SELECT username FROM users WHERE email = '1' ORDER BY username ASC";

    $result = mysqli_query($db,$query);

    if (!$result) { 
     echo("Error, the query could not be executed: " .
     mysqli_error($db) . "</p>");
     mysqli_close($db);
     }

    echo "
  <form action='myscript' method='post'>
   <select name='test'>
        <option value = 'none' selected = 'selected' >
          `Select a DJ:` </option>";

    while ($row = mysqli_fetch_assoc($result)){
     echo '<option value="' . $row['username'] . '">' . $row['username']. '</option>';
       }
     echo"     
     <input type='submit' value='submit' name='submit'>
     </select>
    </form> ";
    ?>  

我知道这样一个小功能的代码相当多。无论如何,下拉菜单从数据库列中获取其选项并且工作正常,现在当我按下提交按钮时,它会运行另一个编码如下的 php 页面:

<link href="../css/pagestyle.css" rel="stylesheet" type="text/css" /><html>
<?php 
include("../panel/config.php");

$con = mysqli_connect($server, $username, $password, $database);
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$id = $_POST['test'];

$order = "UPDATE  `habboxli_system`.`users` SET  `points` = points+1 WHERE  `users`.`username` ='$id'";
mysql_query($order);

echo "name is $id";

mysqli_close($con);
echo "Vote posted!";
?> 

此代码应采用在下拉菜单中选择的值并使用它来更新数据库中的特定单元格,我将其签名到一个名为 $id 的变量只是为了测试目的,但该值似乎是空白的,所以从那我认为下拉菜单从原始页面 (www.mywebsite.com/#/option.php) 导航到 myscript.php 页面 (www.mywebsite.com/#/myscript.php) 时没有返回值。 php)。任何有关如何使其工作的帮助将不胜感激。

4

1 回答 1

0

正如评论中所说,您将 mysql_query 函数与 mysqli 函数混合使用。

我通过更改使代码为我工作

mysql_query($order);

至:

mysqli_query($con, $order);

您还可以通过简单地打印 $_POST 数组来调试传递给脚本的内容:

print_r($_POST);
于 2013-06-12T02:49:57.927 回答