Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysql结果为数组_Php_Mysql_Arrays - Fatal编程技术网

Php mysql结果为数组

Php mysql结果为数组,php,mysql,arrays,Php,Mysql,Arrays,我有一张这样的桌子: 表:类别 id|名称 1|Foo 2 |巴 PHP 在php中,我想打印出$category[1](choosen id的名称) 所以如果我写: echo$category[1] 结果将是“Foo” 可悲的是我只走了这么远 $result=mysql\u查询(“从类别中选择*); 而($row=mysql\u fetch\u array($result))您可以像这样做: <?php $result = mysql_query("SELECT * FROM categ

我有一张这样的桌子:

表:类别

id|名称

1|Foo

2 |巴

PHP

在php中,我想打印出$category[1](choosen id的名称)

所以如果我写:

echo$category[1]

结果将是“Foo”

可悲的是我只走了这么远

$result=mysql\u查询(“从类别中选择*);
而($row=mysql\u fetch\u array($result))

您可以像这样做:

<?php
$result = mysql_query("SELECT * FROM categories");
?>
<table>
    <tr>
    <th>Id</th>
    <th>Name</th>
    </tr>

    <?php
    while($row = mysql_fetch_assoc($result)) {
    ?>
    <tr>
    <td><?php echo $row['id'];?></td>
    <td><?php echo $row['name'];?></td>
    <?php
    }
    ?>
    </tr>
</table>

身份证件
名称

注意:
mysql.*
已弃用。使用mysqli

这实际上解决了它


$result=mysql_查询(“从类别中选择*);
$data=array();
$x=1;
while($row=mysql\u fetch\u数组($result)){
$data[$x]=$row['nam'];
$x++;
}

echo$数据[2]

使用旧式mysql,它没有用于结果集的迭代器,您可以轻松创建自己的结果集,例如在PHP 5.5中使用生成器:

$rows = function($result)  {
    while ($row = mysql_fetch_array($result))
        yield $row;
};
然后可以将迭代器转换为数组(如果迭代器本身还不够):


如果您低于PHP5.5,您可以使用类似的方法。

是的,另外,请记住mysql_*已被弃用,因此请使用mysqli_*或PDO以避免mysql注入!听说过吗?您在
$row
中获得了行数据,
循环遍历所有行时,问题出在哪里?只要将
$row
中的数据存储到某个数组中就行了。恐怕这样不行。
$row
的索引
[1]
将引用每行的列值(取决于SELECT中传递的列顺序),而不是实际值本身。感谢mysqli的提示!我不知道!
<?php
$result = mysql_query("SELECT * FROM categories");
?>
<table>
    <tr>
    <th>Id</th>
    <th>Name</th>
    </tr>

    <?php
    while($row = mysql_fetch_assoc($result)) {
    ?>
    <tr>
    <td><?php echo $row['id'];?></td>
    <td><?php echo $row['name'];?></td>
    <?php
    }
    ?>
    </tr>
</table>
$rows = function($result)  {
    while ($row = mysql_fetch_array($result))
        yield $row;
};
$array = iterator_to_array($rows($result));