【问题标题】:Array from SQL and extract not working PHP来自 SQL 的数组并提取不起作用的 PHP
【发布时间】:2014-05-09 23:47:23
【问题描述】:

我是 PHP 新手,非常感谢您的帮助。

我正在尝试获取 SQL 表中某一行的内容并将其放入数组中,然后将每个值放入其自己的变量中。

出于页面上的几个不同原因,我在数组和变量中都需要它们。

该表有三列:student_id、first_name 和 last_name

我正在使用此代码:

    $result = mysql_query("SELECT * FROM `students` WHERE student_id = '$studentid'",$connection);
$array = array();
while ($row = mysql_fetch_array($result)) {
    $array[] = array($row['student_id'], $row['last_name'], $row['first_name']);
}
extract($array);

但是当我尝试在页面上回显 $last_name 时,我得到一个未定义的变量错误。我使用提取错误吗?

对于完成这个有什么建议吗?

我知道,我使用的是旧 SQL 而不是 mysqli,但由于某些原因我还不能更改它,所以感谢您帮助我处理旧代码。

您正在帮助我学习编码!:) 感谢您帮助我调试。

【问题讨论】:

  • 全新?并使用已弃用的 api?怎么会这样? !!

标签: php mysql sql arrays


【解决方案1】:

希望只有一个学生具有此 ID,所以这应该可以:

$result = mysql_query("SELECT * FROM `students` WHERE student_id = '$studentid'",$connection);
$row = mysql_fetch_array($result);
extract($row);

请注意,mysql 已弃用,您应该改用 mysqli

https://php.net/manual/en/book.mysqli.php

【讨论】:

  • 我为你感到高兴!现在,如果您喜欢我的回答,请验证(点击回答内容左侧的灰色“v”),因为它奖励了我的努力;)
  • @Loïc 我想你的意思是灰色的“^”,你的建议是反对票(“v”)哈哈
  • 是的,对不起!哈哈,我不得不等了十分钟,但后来忘记检查了。
【解决方案2】:

您正在遍历一个结果集,然后将结果从一个数组中取出,并将其放入另一个没有键的数组中。是的。这是不正确的。 :)

$row = mysql_fetch_array($result);
extract($row);

【讨论】:

    【解决方案3】:

    $array[] = array($row['student_id'], $row['last_name'], $row['first_name']);

    这意味着你将拥有一个多维数组

    array = array[0]=(1,lastname1,firstname1),array[1]

    尝试打印出来

    $array[0] 对于第一个学生,您会注意到该数组的键很时髦。现在从

    更改该行

    $array[] = array($row['student_id'], $row['last_name'], $row['first_name']);

    $array[] = array('id'=> $row['student_id'], 'last_name'=> $row['last_name'], 'first_name'=> $row['first_name']);
    

    那你就可以了 $array[0]['first_name'] 获取名字

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-23
      • 1970-01-01
      • 2010-12-09
      • 2016-05-06
      • 1970-01-01
      • 2012-12-08
      相关资源
      最近更新 更多