MySQL数组不起作用 [英] Mysql Array Not Working

查看:105
本文介绍了MySQL数组不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图以一种选择的方式回显数据库中所有用户行.

它仅显示空白.没什么.

这是我的代码.

<?php
session_start();
require('../../config.php');
$user = $_SESSION['user'];
$qry=("SELECT `rank`,  `uname` FROM users WHERE `uname` = '$user'");
$result=mysql_query($qry);
$row = mysql_fetch_assoc($result);
$rank = $row['rank'];
$logged = $_SESSION['loggedin'];
  if ($logged == true) {
   if ($rank >= 3) {
    echo "Succesful, $user.<br />
      <form method='POST' action='delete.php'>
      <select><option>Please select</option>";
      while ($row = mysql_fetch_assoc($result)) {
            $users = $row['uname'];
            $lol = ucwords($users);
           }
       echo "<option>$lol</option>";
       echo "</select>
    </form>";
   } else {
  echo "Your not an admin. $user";
  }
 } else {
echo "Please login.";
}

?>

解决方案

首先,请停止使用mysql_函数,因为它们正在

您将需要重新提交查询(如下所示)并分别调用该结果以填充下拉列表,或将结果存储在数组中.

$qry=("SELECT `uname` FROM users");
$result=mysql_query($qry);
while ($row = mysql_fetch_assoc($result)) {
      echo '<option>' . ucwords($row['uname']) . '</option>';
     }

I am trying to echo out all of the user rows in my database as a select in a form.

It is only showing a blank space. Nothing else.

Here is my code.

<?php
session_start();
require('../../config.php');
$user = $_SESSION['user'];
$qry=("SELECT `rank`,  `uname` FROM users WHERE `uname` = '$user'");
$result=mysql_query($qry);
$row = mysql_fetch_assoc($result);
$rank = $row['rank'];
$logged = $_SESSION['loggedin'];
  if ($logged == true) {
   if ($rank >= 3) {
    echo "Succesful, $user.<br />
      <form method='POST' action='delete.php'>
      <select><option>Please select</option>";
      while ($row = mysql_fetch_assoc($result)) {
            $users = $row['uname'];
            $lol = ucwords($users);
           }
       echo "<option>$lol</option>";
       echo "</select>
    </form>";
   } else {
  echo "Your not an admin. $user";
  }
 } else {
echo "Please login.";
}

?>

解决方案

First, please stop using mysql_ functions as they are being deprecated. Look into mysqli_ or PDO. Be aware that your script is vulnerable to SQL injection.

The reason your script is not working is because it appears you are calling mysql_fetch_assoc twice. When calling it the second time, there won't be any output if your query only returns a single row.

$qry=("SELECT `rank`,  `uname` FROM users WHERE `uname` = '$user'");
$result=mysql_query($qry);
$row = mysql_fetch_assoc($result);
$rank = $row['rank'];

You will need to resubmit a query (something like below) and call that result separately to populate the drop down, or store the result in an array.

$qry=("SELECT `uname` FROM users");
$result=mysql_query($qry);
while ($row = mysql_fetch_assoc($result)) {
      echo '<option>' . ucwords($row['uname']) . '</option>';
     }

这篇关于MySQL数组不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆