1 ضمیمه
نمایش اطلاعات دو جدول جوین شده با یک روش خاص
سلام خدمت دوستان
ببینید من دو تا جدول دارم یکی برند و یکی موبایل فیلد مشترک این دو تا brand_id هست حالا من یک جوین گرفتم :
$allmobile = $this->Mobile->query(
"SELECT * FROM mobile JOIN brands ON mobile.brand_id = brands.brand_id ORDER BY mobile.brand_id" );
اگر من تو جدول برند دو تا برند داشته باشم : ال جی -> 1 و سامسونگ -> 2
و مثلا از آی دی 1 (ال جی) تو جدول موبایل 3 مدل گوشی ثبت کرده باشم و از آی دی 2 10 مدل می خوام موقع چاپ مدل های گوشی اول شروع برند با آی دی 1 کلمه ال جی رو چاپ کند و بعد از اینکه 3 مدل ال جی تموم شد کلمه سامسونگ رو چاپ کنه و در ادامه مدل هاس سامسونگ
حالا تو foreach من چجوری این کار رو انجام بدم ؟
شبیه همین تصویر پیوست شده می خوام بشه
ضمیمه 127458
نقل قول: نمایش اطلاعات دو جدول جوین شده با یک روش خاص
$products = mysql_query('
SELECT * FROM `products` `p`
LEFT OUTER JOIN `brands` `b` ON `p`.`brand_id`=`b`.`id`
ORDER BY `brand_id`,`p`.`id`;
');
while($product = mysql_fetch_assoc($products)) {
// echo '<p>' . print_r($product, true) . '</p>' . PHP_EOL;
}
نقل قول: نمایش اطلاعات دو جدول جوین شده با یک روش خاص
نقل قول:
نوشته شده توسط
MMSHFE
$products = mysql_query('
SELECT * FROM `products` `p`
LEFT OUTER JOIN `brands` `b` ON `p`.`brand_id`=`b`.`id`
ORDER BY `brand_id`,`p`.`id`;
');
while($product = mysql_fetch_assoc($products)) {
// echo '<p>' . print_r($product, true) . '</p>' . PHP_EOL;
}
ممنون بابت پاسختون ولی فکر کنم خود جوین درسته مسئله اینه که من توحلقه می خوام تو هر چند سطر یک سطر نام برند چاپ بشه البته زمانی که اطلاعات برند قبلی تموم شده باشه
نقل قول: نمایش اطلاعات دو جدول جوین شده با یک روش خاص
ببینید من ایده کلی کوئری رو گفتم. حالا بستگی به خودتون داره که چطور کار کنید. برای مثال این یک راهه:
$prevBrand = '';
while($product = mysql_fetch_assoc($products)) {
if($prevBrand != $product['brand']) {
echo $product['brand'];
$prevBrand = $product['brand'];
}
...
}
اینطوری به محض اینکه brand عوض بشه، brand جدید چاپ میشه و مقدارش توی prevBrand ذخیره میشه و تا وقتی عوض نشده، دیگه چاپ نمیشه.
نقل قول: نمایش اطلاعات دو جدول جوین شده با یک روش خاص
یک راه دیگه هم کوئری زدنهای جداگانه است. یعنی یک کوئری بزنید brandها رو استخراج کنید و باهاش حلقه بسازین و داخل هر brand دوباره کوئری بزنین محصولاتش رو استخراج کنید و یک حلقه داخلی برای نمایششون بسازین.