无法回显数据库(数组),PHP中的数据

时间:2014-01-15 15:28:25

标签: php mysql arrays mysqli

我的代码的目的是获取数据库中的所有用户名,并按升序回显它们,并在每个用户名之间中断。除了一行之外,它似乎工作正常。

当我运行此代码时,我收到错误

  

致命错误:第23行的C:\ wamp \ www \ Site files \ users.php中不支持的操作数类型

我在代码中突出显示了这一行,其中包含**。我已经尝试了很多方法来完成这项工作,但我不是特别称职,我似乎无法找到解决方案。

<?php
$host="localhost"; // Host name 
$username="root"; // Mysql username 
$password=""; // Mysql password 
$db_name="comproject"; // Database name 
$tbl_name="members"; // Table name 

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

$query = mysql_query("SELECT username FROM members ORDER BY username ASC") or die(mysql_error());
$count = mysql_num_rows($query);
$array = array();
while ($row = mysql_fetch_array($query, MYSQL_NUM)) {
$array[] = $row; }

for ($i=0; $count>$i; $i++) {
    **echo $array[$i] + "<br/>";**
}
?>

另外我正在尝试将我的代码移到mysqli中,所以如果你对此有任何建议,也非常感谢:)我理解它几乎一样

4 个答案:

答案 0 :(得分:5)

在PHP中,字符串使用.而不是+进行连接。尝试:

echo $array[$i] . "<br/>";

答案 1 :(得分:1)

更改为:

for ($i=0; $count>$i; $i++) {
  echo $array[$i][0] . "<br/>";
}

问题是:

  1. 您将字符串与.以及
  2. 连接起来
  3. $array[$i]是一个数字索引数组,第一个元素是用户名:
  4. $array是:

      Array
      (
          [0] => Array
              (
                  [0] => UsernameOne
              )
    
          [1] => Array
              (
                  [0] => UsernameTwo
              )
    
      )
    

答案 2 :(得分:0)

使用.而非+连接字符串:

echo $array[$i]."<br/>";

答案 3 :(得分:0)

尝试使用mysqli(注释中描述的代码):

    $host="localhost"; // Host name 
    $username="root"; // Mysql username 
    $password=""; // Mysql password 
    $db_name="comproject"; // Database name 
    $tbl_name="members"; // Table name 

    // Connect to server and select databse.
    $mysqli = new mysqli("$host", "$username", "$password");
   //check connect error
    if (mysqli_connect_errno()) {
        printf("Connection failed: %s", mysqli_connect_error());
        exit();
    }


   // run query 
    $result = $mysqli->query("SELECT username FROM members ORDER BY username ASC");
//fetch data
    while($row = $result->fetch_array())
    {
       echo $row['username']."<br />";
    }


    /* free result set */
    $result->close();

    /* close connection */
    $mysqli->close();