Php 获取数据获取时出错
我获取了数据,并在表中为每个循环填充值,如下所示:Php 获取数据获取时出错,php,codeigniter,Php,Codeigniter,我获取了数据,并在表中为每个循环填充值,如下所示: <?php foreach ($data['rows'] as $value) { ?> <tr> <td> <?php echo $value->rsdntname; ?> </td> <td> <?php echo $value->rsdntemail;?></td> <td> <?php echo $value-&
<?php
foreach ($data['rows'] as $value) {
?>
<tr>
<td> <?php echo $value->rsdntname; ?> </td>
<td> <?php echo $value->rsdntemail;?></td>
<td> <?php echo $value->rsdntphone; ?> </td>
</tr>
<?php } ?>
为什么我会犯这个错误。。提供我无法理解的解决方案。并提供我无法理解的解决方案。它表示尝试访问非对象y此错误返回。我做错了什么
使用同一个页面访问另一个级别的数据时使用循环它在循环外部工作它不工作您调用$value时就好像它是一个对象一样,但您的$value很可能实际上是一个嵌套数组。假设$data['rows']中的数据是数组,则不应使用$value->rsdntname,而应将其称为$value['rsdntname']。。。依此类推。您正在尝试从对象读取属性:
$data['rows']->aptcore;
但是错误告诉你它不是一个物体。那是什么呢?前一行代码对我来说意味着它可能是一个数组:
foreach ($data['rows'] as $value) {
因为您在数组上循环并读取其中每个对象的属性
在本页其他地方的注释中,您可以指定一些调试输出print\r$data;:
格式化地雷
如果我理解正确,$data是一个关联数组,包含两个命名元素res和rows。行本身也是一个包含一个对象的数组。或者它包含了更多你没有展示给我们的东西?一个对象的数组仍然是数组,而不是对象。一个装有一个苹果的篮子仍然是一个篮子,而不是一个苹果
您可以尝试索引数组以访问其中的第一个元素:
$data['rows'][0]->aptcore
或者,如果有更多的元素,并且您需要所有元素,则可以完全像您已经做的那样在阵列上循环:
这听起来很奇怪,请提供var_dump$data['rows']的输出。foreach向我暗示$data['rows']是某种数组或集合。我不希望它有一个叫做aptcore的属性。这些变量究竟是什么?@JonStirling fair point,我认为数组$data['rows']也将是arrays.echo,这是正常的惯例;打印r$数据;出口数组[res]=>1[rows]=>Array[0]=>stdClass对象[buldname]=>BT塔[aptno]=>901[aptcore]=>2[aptfloor]=>2[rsdntname]=>Gaurav[rsdntemail] => Gaurav@gmail.com[rsdntphone]=>9891110987@Arushi试图用$value['rsdntname']替换$value->rsdntname,但我认为这不起作用?@Arushi:那么$data['rows']是一个数组?当您执行$data['rows']->aptcore时,系统无法知道您想要查看哪个aptcore值。您正在访问一个对象列表,每个对象都具有该值。看看你的foreach循环,它在数组上循环并输出每个数组的值。@Arushi你能给我们展示一下你用来获取$data信息的代码吗?编辑按钮应该位于问题的左下角。
foreach ($data['rows'] as $value) {
Array (
[res] => 1
[rows] => Array (
[0] => stdClass Object (
[buldname] => BT Tower
[aptno] => 901
[aptcore] => 2
[aptfloor] => 2
[rsdntname] => Gaurav
[rsdntemail] => Gaurav@gmail.com
[rsdntphone] => 9891110987 )
$data['rows'][0]->aptcore
foreach ($data['rows'] as $value) {
echo $value->aptcore;
}