سلام و وقت بخیر استاد یه سوال برام پیش اومد مگه زمانیکه از foreach استفاده میشه میتونیم از fetch , fetchAll استفاده کنیم ؟؟
در این جلسه به توضیح بخش Model در پروژه فریمورک MVC با PHP می پردازیم.
برای ارسال نظر ابتدا باید وارد سایت شوید
سلام و وقت بخیر استاد یه سوال برام پیش اومد مگه زمانیکه از foreach استفاده میشه میتونیم از fetch , fetchAll استفاده کنیم ؟؟
سلام وقت بخیر.
زمانیکه از fetchAll استفاده میشه مقدار برگشتی را میتوان توی foreach و یا for استفاده کرد. توی دوره رایگان php که پیش نیاز این دوره هست هم اشاره شده
اخه چون توی دوره php نمیشد زمانیک از foreach استفاده میشه دیگه نمیشد از fetch یا fetchAll استفاده کنیم
بصورت کلی بعد از درخواست به دیتابیس و زدن متد fetchAll دیتای بازگشتی همانند آرایه هست و حالا توی foreach و یا for قابل استفاده هست از طرفی داخل خوده حلقه هم میتونید درخواست به دیتابیس بزنید اطلاعات دریافت کنید و توی یک حلقه دیگه استفاده کنید
سلام ؛به نظرتون چرا این ایرور رو میگیرم؟
'''
Fatal error: Uncaught Error: Call to a member function prepare() on null in C:\xampp\htdocs\mvc\app\libraries\Database.php:37 Stack trace: #0 C:\xampp\htdocs\mvc\app\models\Article.php(12): Database->query('SELECT * FROM a...') #1 C:\xampp\htdocs\mvc\app\controllers\Pages.php(10): Article->getArticle() #2 C:\xampp\htdocs\mvc\app\libraries\Core.php(31): Pages->index() #3 C:\xampp\htdocs\mvc\public\index.php(4): Core->__construct() #4 {main} thrown in C:\xampp\htdocs\mvc\app\libraries\Database.php on line 37
'''
سلام وقت بخیر.
متن ارور نوشته که شما تابع prepare را روی null دارید صدا میزنید پس باید یکی یکی متغیرها را لاگ بگیرید ببینید مقادیر به چه شکل هستند.
باسلام دوستان
اگر با ارور زیر مواجه شدید :
Deprecated: Creation of dynamic property Pages::$articleModel is deprecated in /opt/lampp/htdocs/PHP-OOP-MVC/app/controllers/Pages.php on line 9
استاد زمانی که از قابلیت dynamic property استفاده کردن یعنی بدون ایجاد property به نام private $articleModel; مستقیما کد زیر رو در construct اجرا کردن :
$this->articleModel = $this->model('Article');
private $articleModel;
سلام وقت بخیر.
ممنون از ارسال پیشنهاد و نظرتون
mahdi tavakol
سلام و وقت بخیر من داخل دیتابیس یک رکورد فقط تعریف کردم و از متد fetch استفاده کردم چون فقط یک رکورد داشتم ولی با این حال بهم ارور
داد ولی وقتی fetchAll زدم درست شد حالا چرا با fetch ارور میداد؟؟علی شیخ
5 ماه پیش
سلام وقت بخیر.
ببینید توی دستور sql باید شرط به شکلی باشه که یک رکورد قرار برگرده مثلا فلان id یا فلان فیلد یونیک مقدارش برابر بود با فلان را پیدا کن که خروجی حالا هر تعداد رکورد هم داخل دیتابیس باشه فقط یکی را برمیگردونه و دیگه در قالب یک آرایه برگشته داده نمیشه اطلاعات چون توی شرط فقط یک رکورد باید برگشت داده بشه