【问题标题】:PHP Mysql table fetch only gives first rowPHP Mysql table fetch 只给出第一行
【发布时间】:2017-04-02 00:42:07
【问题描述】:
$query = "SELECT * FROM pass";
$result = mysql_query($query,$conn);
echo mysql_num_rows($result);

while($row = mysql_fetch_array($result))
{
    $username = $row['user'];
    $password = $row['pass'];   
}

Num rows = 12 但如果我在 while $row = mysql_fetch_array(mysql_query("SELECT * FROM pass",$conn)) 中使用,while 只会循环第一个

如果我使用第一个代码,它会在第一行之后给出错误, 警告:mysql_fetch_array() 期望参数 1 是资源,字符串中给出

【问题讨论】:

标签: php mysql


【解决方案1】:

如果你不给它一个数字,你定义的变量是错误的,它总是只有 1 个结果,并且做一些关于连接到 mysql 数据库的新方法的阅读

$i = 0;
while($row = mysql_fetch_assoc($result))
{
    $username[$i] = $row['user'];
    $password[$i] = $row['pass'];   
    $i++;
}

//you can test like this
$r = 0;
while($r < $i)
{
    echo $username[$r];
    echo $password[$r];
    $r++;
}

【讨论】:

  • @katates 看到我的编辑我错过了一些改变 fetch 数组到 mysql_fetch_assoc
  • 这很奇怪,现在它只得到第一个字符,编辑:解决了!
  • 可能是因为您的表名与您的列名相同,在您连接到数据库之后但在查询之前您是否有 mysql_select_db("your database name") 行?我认为这一行应该是 $result = mysql_query($query);
猜你喜欢
  • 2017-03-09
  • 1970-01-01
  • 1970-01-01
  • 2021-12-24
  • 1970-01-01
  • 2019-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多