PDA

View Full Version : سوال: این ارور برای چی هست؟



ABZiko
شنبه 25 بهمن 1393, 22:46 عصر
سلام، بنده کد زیر رو نوشتم :


<?php
require_once('User.php');
$userID=$thing['userID'];
$postsObj=new User();
$post=$postsObj->getPostsByAuthor($userID);
foreach($post as $posts){
?>

<div><?php echo $posts['file']; ?></div>

<?php
}
?>

حالا می آد ارور زیر رو می ده



( ! ) Warning: Invalid argument supplied for foreach() in D:\Wamp\www\PDO\Explain.php on line 170


Call Stack



#
Time
Memory
Function
Location


1
0.0012
270032
{main}( )
..\Explain.php:0



مشکل از چیه؟
ممنون

peymang
شنبه 25 بهمن 1393, 23:22 عصر
posts رو با post جابه جا کن ببین درست می شه

ABZiko
یک شنبه 26 بهمن 1393, 14:53 عصر
نه آقای پیمان، گفتش همچین متغیری وجود نداره.

***BiDaK***
یک شنبه 26 بهمن 1393, 15:16 عصر
این کدو خودت میتونی بخونی؟:لبخند: حداقل توو یه تگ مناسبتر یا بدون استایل بذار.
مشکل از متغیر post هست.قبل از foreach یبار print_r بگیر ببین با چی مقدار دهی شده.

ABZiko
یک شنبه 26 بهمن 1393, 15:40 عصر
نه مشکلم رو پیدا کردم، مشکل از لایه دوم PDO بود که اصلا کوئری رو اجرا نکرده بودم. بازم ممنون:بوس:

***BiDaK***
یک شنبه 26 بهمن 1393, 15:54 عصر
نه مشکلم رو پیدا کردم، مشکل از لایه دوم PDO بود که اصلا کوئری رو اجرا نکرده بودم. بازم ممنون:بوس:
نه چیه؟:لبخند:
بازم مشکل از همون متغیر post هس دیگه.چون نتیجه ی متد getPostsByAuthor رو ریختی داخل متغیر post و چون نتیجه ای داخل متغیر post ریخته نشده پس آرایه ای وجود نداره که foreach بخواد پیمایشش کنه. بخاطر همین foreach خطا میده در نتیجه باید عیب رو در کوئری و متدهات میگشتی:لبخند: