我不能从 mysql 数据库中获取多行到数组中?
Posted
技术标签:
【中文标题】我不能从 mysql 数据库中获取多行到数组中?【英文标题】:i can't get multiple rows into array from mysql database? 【发布时间】:2013-03-06 14:43:32 【问题描述】:我无法从 mysql 数据库中获取多行到数组中?我有代码,但是当我回显到文本框时它不工作或不显示所有行?
<?php
if(is_array($_SESSION['pid']))
$pid = join(',',$_SESSION['pid']);
$result=mysql_query("SELECT id AS wid FROM mywishlist where pid='$pid'")
or die("Id Problem"."<br/><br/>".mysql_error());
$results= array();
$i=0; // add the new line
while($row=mysql_fetch_array($result))
$results[$i] = $row['wid'];
$i++;
$results;
$max=count($results);
for($j=0; $j<$max; $j++)
?>
<input type="text" name="wid[]" value="<?php echo $results[$j]; ?>" />
<?php ?>
【问题讨论】:
Please, don't usemysql_*
functions in new code。它们不再维护and are officially deprecated。看到red box?改为了解prepared statements,并使用PDO 或MySQLi - this article 将帮助您决定哪个。如果你选择 PDO,here is a good tutorial.
sql注入的好洞祝你好运
为什么$results;
在while lop之后
@NullPointer 感谢您的支持,但我还有另一个问题,您能解决吗?
@FarhanDharsi 我怀疑你的意思是pid IN ($pid)
,但是是的,这里的注入是个问题。
【参考方案1】:
join(',',$_SESSION['pid'])
行让我觉得您想通过pid
选择多行。尝试使用IN
操作符:
SELECT id AS wid FROM mywishlist
WHERE pid IN ($pid)
【讨论】:
【参考方案2】:您的查询错误,请使用此查询
$result=mysql_query("SELECT id AS wid FROM mywishlist where pid IN($pid) ")
【讨论】:
以上答案和你的有什么区别? yogesh 我使用了这个查询,但结果仍然相同,只取一行? @FarhanDharsi 在phpmyadmin
中运行此查询并检查它返回的行数。并在while循环后删除此行$results;
。
是的,我尝试了该查询并从此查询中获取所有行...在 phpmyadmin 中
@FarhanDharsi 在 while 循环后使用 print_r($results);
并查看它包含的内容。【参考方案3】:
试试
$results= array();
while($row=mysql_fetch_array($result))
$results[] = $row['wid'];
和 For 循环一样。
$max = count($results);
for($j=0; $j<$max; $j++)
?>
<input type="text" name="wid[]" value="<?php echo $results[$j]; ?>" />
<?php
?>
【讨论】:
以上是关于我不能从 mysql 数据库中获取多行到数组中?的主要内容,如果未能解决你的问题,请参考以下文章
百度Echarts地图上呈现的数据如何直接从Mysql数据库获取,且显示多行数据,而不用手动在html文件中输入?