我不确定这是否可能在试图弄清楚数小时之后,但是这里...... [/ p>
我有一个类UserPicture,它具有filename,filetype,created等属性(即它不会将实际图片存储为blob,而是使用$ filename。$ filetype引用它。)
我希望能够有一个显示所有用户图片的页面,因此我需要从与该用户相关的数据库中检索所有行。我成功地从DB中获取了关联数组,并使用以下代码创建了对象,这是因为我通过回显测试了它的输出......
$result=query("SELECT * FROM pictures WHERE user_id=$user_id");
// Returns associative array with numerous succesfully.
$pictures = array();
foreach($result as $row) {
$pictures = new UserPicture($row);
}
这种方法有效,但我只将最后一行作为数组中的对象。所以我尝试过array_push ......
foreach($result as $row) {
array_push($pictures, new UserPicture($row));
}
...我尝试使用$ pictures [] =新的UserPicture($ row),但两者都只是给我以下错误...
捕获致命错误:第72行的user_picture_manage.php中无法将类UserPicture的对象转换为字符串
如果有人能够解释我做错了什么会非常有用!
非常感谢, 史蒂夫
答案 0 :(得分:4)
您正在覆盖上述代码中的$pictures
变量。您需要为每一行添加一个新密钥。以下应该可以解决问题:
$result=query("SELECT * FROM pictures WHERE user_id=$user_id");
// Returns associative array with numerous succesfully.
$pictures = array();
foreach($result as $row) {
$pictures[] = new UserPicture($row);
}
注意我添加了方括号([]
)。对于foreach
循环中的每次迭代,新密钥将添加到包含新$pictures
类的UserPicture
数组中作为值。
然后,您应该能够按如下方式迭代新的$pictures
数组:
foreach ($pictures as $picture) {
$src = $picture->filename . "." . $picture->filetype;
echo '<img src="<?php echo $src; ?>" alt="" />';
}