سلام و عرض خسته نباشید
من برای عمل گزارش گیری همانطور که استاد از حلقه while استفاده کردن در کد خودم از حلقه while استفاده کردم و از متد fetch_assoc برای گرفتن مقادیر استفاده کردم اما در خروجی فقط اطلاعات ردیف هایی که id فرد دارند نمایش داده می شوند !
کد زیر مربوط به صفحه ایجاد ارتباط با پایگاه داده ای به نام world۳ هست
<?php
$world3 = new mysqli("localhost","root","","world3");
// world3 connection check
$connectLog = ($world3 -> connect_errno)
? $world3 -> error.PHP_EOL
:"world3 is connected".PHP_EOL;
// echo $connectLog;
//
// set utf_8 chars for world3
$world3->set_charset("utf8");
//
و این هم صفحه ای که کد های مربوط به کوئری select را در آن نوشتم
<?php
include "connect.php";
$sqlQuery = "
select * from people;
";
$select = $world3 ->query($sqlQuery);
echo '<pre>';
while($select -> fetch_assoc() ){
print_r($select -> fetch_assoc());
}
echo '</pre>';
تو فایل های ضمیمه هم خروجی کد ها و نمایی از جدول people که کوئری select را بر روی آن اجرا کردم قرار دادم
نکته جالبش این بود که یک بار به جای حلقه while از do while استفاده کردم و این بار فقط ردیف هایی که id زوج داشتند
برایم نشان داده شد :)
<?php
include "connect.php";
$sqlQuery = "
select * from people;
";
$select = $world3 ->query($sqlQuery);
echo '<pre>';
do {
print_r($select -> fetch_assoc());
} while ($select -> fetch_assoc());
echo '</pre>';
اگه امکانش هست لطفا ایرادی که وجود داره رو بهم بگین ممنون !!
سلام و احترام
هم درون شرط حلقه و هم داخل statement حلقتون شما fetch_assoc رو صدا میزنید، ینی دوبار صدا میزنید، یک بار داخل خود شرط حلقه باید باشه:
while ($row = $result->fetch_assoc())
{
echo $row['id'];
}