انجمن‌های فارس وب

نسخه کامل: نحوه چیدمان اطلاعات در صفحه اصلی
شما در حال بازدید از بایگانی ارسال های انجمن هستید این نسخه کامل نیست : برای مشاهده نسخه کامل اینجا کلیک کنید
سلام دوستان .
همتون نحوه چیدمان فروشگاهای اینترنتی رو دیدید که چگونه محصولات بر روی صفحه نمایش داده میشن .
خوب اگر کسی تو این زمینه کاری انجام داده ممنون میشم راهنمایی کنه . ( PHP/MySQL & HTML )

ما یک دیتابیس داریم به نام Farsweb بعد یک جدول به نام SHOP در این دیتابیس ایجاد میکنیم و فیلدهای زیر را داخل این جدول میسازیم :

CREATE TABLE `shop` (
  `id` int(11) NOT NULL auto_increment,
  `image` varchar(300) character set latin1 NOT NULL,
  `title` varchar(250) character set latin1 NOT NULL,
  `content` text character set latin1 NOT NULL,
  `price` varchar(20) character set latin1 NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=4 ;


خوب حالا ما فرض میکنیم داخل این جدول اطلاعاتی وجود داره و ما میخوایم اینا رو تو صفحه نمایش بدیم .

خوب این کدی هست که من برای نمایش نوشتم :

<?php
include 'include/config.php';
echo 
'<div align="right">
<table cellpadding="0" cellspacing="0" width="215" 
border=0 height="250" dir=ltr >'
;
$show mysql_query("SELECT * FROM shop");
$i ;
while(
$row mysql_fetch_array($show) )
{
echo 
'<tr dir=rtl style="border:dotted 1px #666666">
<td valign="top" height="120" 
width="149" align=right style="border:dotted 1px #666666">
<p dir="rtl">
<img src=Leran/Project2/Shop/'
.$row['image'].' width=150 height=150></img>
</td></tr>
<tr>
<td valign="top" colspan="2" height="21" style="border:dotted 1px #666666">
<p dir="rtl"><font face=tahoma size=1><b> Title : </b></font>'
.$row['title'].'</td>
</tr>
<tr>
<td valign="top" colspan="2" height="65" style="border:dotted 1px #666666">
<p dir="rtl"><font face=tahoma size=1><b> Content : </b></font>'
.nl2br($row['content']).'</p>
<p dir="rtl">&nbsp;</p>
<p>&nbsp;</td>
</tr>
<tr>
<td valign="top" colspan="2" height="22" style="border:dotted 1px #666666">
<p dir="rtl"><font face=tahoma size=1><b> Price : </b></font>'
.$row['price'].' ?????</td>
</tr>
<tr>
<td valign="top" colspan="2" height="22" style="border:dotted 1px #666666">
Add To Cart &amp; View</td>
'

}
?>
</tr></table></div> 


خوب این کد اطلاعات جدول ما رو زیر هم نمایش میده .

حالا میخوایم جداول رو به این صورت نمایش بدیم :


خوب یعنی فرض کنید 4 رکورد داخل این جدول داریم و میخوایم اونا رو به این صورت نشون دهیم که هر رکورد داخل یک <TABLE> جداگانه قرار بگیره و در هر ردیف فقط 2 رکورد نمایش داده یشه و دو رکورد بعدی زیر این رکورد ها نمایش داده بشه و الی آخر به همین صورت .

ممنون میشم دوستان راهنمایی کنن و اگکر روش دیگه ای هم دارن راهنمایی کنن

سلام
اول فکر کردم شما آموزش نوشتی.
شما می تونی یه متغیر اضافه کنی با مقدار اولیه 0.بعد در هر بار اجرای حلقه مقدارش رو 1++ کنید.بعد با یک شرط چک کنید اگر مقدارش 2 بود یک </ br> بنویسه بعد مقدارش رو دوباره صفر کنید.
در ضمن با استفاده از CSS باید خاصیت float جدول ها رو right کنید(اگر زبان انگلیسی بود left)
موفق باشید
سلام ، اگه نمونه بزاری خیلی بهتره

ممنون
سلام

$ii=0;
for (
$i=0;$i<mysql_num_rows($show);$i++)
{
  
$row=mysql_fetch_row($show)
  
$products.= $ii==2?'<br />'.$row[$i]:$row[$i];
  
$i++;
}
echo 
$products


این یک نمونه هست که فکر کنم کار شما رو حل کنه.(تستش با شما)
البته می توانید این کار رو بدون برنامه نویسی و فقط با CSS انجام بدید.چون همونطور که می دانید با استفاده از خاصیت float در css شی در صفحه شناور می شود و در کنار شی بالایی قرار می گیرد و اگر شما طول جدول ها رو طوری تعیین کنید که فقط برای قرارگرفتن دو جدول کنار هم در یک سطر جا باشه(نه بیشتر) خود به خود جداول دو به دو زیر هم قرار می گیرند.

موفقیت

با سلام ، ممنون از لطفت اما خوب این مثالی که شما نویشتی خیلی کلی بود و اصلاً منظور من این نبود و کار با جداول بود که من همون مثال بالایی که زدم با حلقه های تو در تو به همون شکل در آوردم ، من میخواستم هر کسی یه نمونه ای بزاره تا بهترین روش و مورد تائید قرار بگیره خوب من اول یم مثال ساده تر با همین جداول میزنم .

<table border="1" align="center">
<
tr>
<?
php
$query 
mysql_query("select * from list;");
$i ;
while(
$row mysql_fetch_array($query) )
{
echo 
'<td><img src="'$row['pic']. '" width=120 height=120 /><br>';
echo 
'<a href='.$row['link'].'>Link </a></td>';
$i += ;
if(
$i%== 0): echo '</tr><tr>';
endif;
};
?>

</tr>
</table> 

Winter نوشته است:
سلام

$ii=0;
for (
$i=0;$i<mysql_num_rows($show);$i++)
{
  
$row=mysql_fetch_row($show)
  
$products.= $ii==2?'<br />'.$row[$i]:$row[$i];
  
$i++;
}
echo 
$products


این یک نمونه هست که فکر کنم کار شما رو حل کنه.(تستش با شما)
البته می توانید این کار رو بدون برنامه نویسی و فقط با CSS انجام بدید.چون همونطور که می دانید با استفاده از خاصیت float در css شی در صفحه شناور می شود و در کنار شی بالایی قرار می گیرد و اگر شما طول جدول ها رو طوری تعیین کنید که فقط برای قرارگرفتن دو جدول کنار هم در یک سطر جا باشه(نه بیشتر) خود به خود جداول دو به دو زیر هم قرار می گیرند.

موفقیت


خوب دوست عزیز ممنون میشم با استفاده از CSS یک همچین نمونه ای اینجا بزاری

ممنون

سلام
باید به هر جدول کد css زیر رو اضافه کنید:

style="float:right" 

و همونطور که عرض کردم خدمتتون طول جدول ها رو باید طوری تعیین کنید که فقط دو جدول بتونند کنار هم قرار بگیرند و بقیه هم همینطور 2 به 2 کنار هم باشند که این رو باید شما با توجه به عرض عنصر <div align="right"> تعیین کنید.با کم و زیاد کردن عرض می تونید مقدار مناسب رو پیدا کنید.یه نکته ی دیگر اینکه باید تگ table داخل حلقه باشد تا برای هر محصول یک جدول جدا ایجاد شود.

موفقیت

مرجع آدرس ها