如何从php中的mysql列有用地检索值?

时间:2013-11-17 03:19:50

标签: php mysql

我是编程并尝试制作我的第一个网络应用程序的新手。我正在建立一个用户可以登录的网站,查看链接列表,并将此列表中的链接保存/添加到他们的帐户。最后,我还希望能够添加用户可以创建自己链接的功能。

到目前为止,我打算将信息存储在3个表格中:

用户表 user_id |用户名|密码

链接表 link_id | link_name | LINK_URL

书签表 bookmark_id | user_id | link_id

我想我会运行一个查询来获取书签表中属于某个user_id的所有link_id的列表,如下所示:

$connection = mysql_connect('localhost', 'root', 'password') or die(mysql_error());
mysql_select_db("array-test",$connection) or die(mysql_error());

$query_link_id = "
SELECT link_id FROM bookmarks WHERE user_id =2
";
$query_result = mysql_query($query_link_id,$connection);

$link_id_array = mysql_fetch_array($query_result, MYSQL_BOTH);

如果我回显数组,它只有1个值,即列的第一行。如果我直接在phpadmin中运行相同的查询,我会看到具有多个值的列。我不确定我在这里做错了什么。

以正确的方式将值存储在数组中吗?我必须以某种方式将link_ids转换为数组,将它们转换为变量,然后运行另一个查询以获取其余的链接信息 - 我真的不知道该怎么做。我感觉很困惑,我一直在寻找解决方案几天。我感谢任何帮助和见解。谢谢!

1 个答案:

答案 0 :(得分:1)

mysql_fetch_array() - Returns an array that corresponds to the fetched row and moves the internal data pointer ahead - http://php.net/manual/en/function.mysql-fetch-array.php

你需要循环遍历数组。

while($link_id_array = mysql_fetch_array($query_result, MYSQL_BOTH)){
  $new_array[] = $link_id_array;
}

注意,来自文档
自PHP 5.5.0起,此扩展已弃用,将来将被删除。相反,应该使用MySQLi或PDO_MySQL扩展。有关详细信息,另请参阅MySQL: choosing an API指南和related FAQ