-
مشکل با حلقه for در php
من می خوام با استافاده از کد for یک کد پی اچ پی را که مربوط به گرفتن داده از دیتتابیس هست را 8 بار اجرا کنم ولی وقتی از for استفاده می کنم اصلا چیزی نشون نمی ده من از وایل هم استفاده کردم ولی کار نکرد
من از لوکال هاست استفاده می کنم در حال حاضر
[PHP]<?php
$db = mysql_connect('localhost','root','test');
if (!$db)
echo "your connecton have a problem";
mysql_select_db('webloger',$db);
$query = "select * form post";
$result = mysql_query($guery);
if(!$result)
echo "The database can't show posts";
$row = mysql_fetch_row($result);
for ($i = 0; $i == 8; $i ++)
{
echo "<table border="0" width="505">";
echo "<tr>"
echo "<td width="495" colspan="2"><b><font size="4"> </font>".$row[0]."</b></td>";
echo "</tr>";
echo "<tr>";
echo "<td width="495" colspan="2"> ".$row[1]."</td>";
echo "</tr>";
echo "<tr>";
echo "<td width="166"> ".$row[2]."</td>";
echo "<td width="329">Author:".$row[3]."</td>";
echo "</tr>";
echo "</table>";
echo "<p> </td>";
}
mysql_close();
?>[/PHP]
-
بسم الله الرحمن الرحیم
سلام
از کد زیر استفاده کنید:
کد:
<?php
$db = mysql_connect('localhost','root','test');
if (!$db)
echo "your connecton have a problem";
mysql_select_db('webloger',$db);
$query = "select * form post";
$result = mysql_query($guery);
if(!$result)
echo "The database can't show posts";
$row = mysql_fetch_row($result);
for ($i = 0; $i <= 8; $i ++)
{
echo "<table border=\"0\" width=\"505\">";
echo "<tr>";
echo "<td width=\"495\" colspan=\"2\"><b><font size=\"4\"> </font>" . $row[0] . "</b></td>";
echo "</tr>";
echo "<tr>";
echo '<td width="495" colspan="2"> '.$row[1].'</td>';
echo "</tr>";
echo "<tr>";
echo "<td width=\"166\"> ".$row[2].'</td>';
echo "<td width=\"329\">Author:".$row[3].'</td>';
echo "</tr>";
echo "</table>";
echo "<p> </td>";
}
mysql_close();
?>
البته فکر می کنم به جای
باید از
استفاده شود.
-
یعنی فقط با عوض کردن == به => مشکل من حل خواهد شد؟؟؟
ممنون
-
این کدی که نوشتید فقط یک سطر از جدول رو 8 بار چاپ میکنه!
اگر بخواید همه سطرهای جدول رو چاپ کنید باید اینجوری عمل کنید:
[php]
$n = mysql_num_rows($result);
for ($i = 0; $i < $n; $i ++)
{
$row = mysql_fetch_row($result);
echo "<table border=\"0\" width=\"505\">";
echo "<tr>";
echo "<td width=\"495\" colspan=\"2\"><b><font size=\"4\"> </font>" . $row[0] . "</b></td>";
echo "</tr>";
echo "<tr>";
echo '<td width="495" colspan="2"> '.$row[1].'</td>';
echo "</tr>";
echo "<tr>";
echo "<td width=\"166\"> ".$row[2].'</td>';
echo "<td width=\"329\">Author:".$row[3].'</td>';
echo "</tr>";
echo "</table>";
echo "<p> </td>";
}
[/php]
برای چاپ کردن 8 سطر هم میشه مقدار n رو برابر 8 قرار داد
-
ممنون ولي اين كدي كه شما نوشتيد تمامي داده ها را تو ديتابيس را مي نويسه و اون آرايه رو را بايد توي حلقه بنويسم
خيلي ممنون
-
باید اطلاعاتی رو که میخواید از دیتابیس بیرون بگشید با استفاده از یک کوئری مناسب بهینه کنید تا باعث اتلاف منابع سرور برای گرفتن اطلاعات بیش از حد نیاز و تجزیه و تحلیل این اطلاعات نشه
-
راستش من نفهميدم چي گفتين؟؟؟ اگه مي شه لطفا يه مثال بزنيد
ممنون
-
منظورم این بود که به جای اینکه همه اطلاعات موجود جدول رو استخراج کنیم بعد از توی اونا انتخاب کنیم که چه سطرهایی نمایش داده بشه از همون اول فقط سطرهایی رو که لازم داریم استخراج کنیم.
مثلاً با استفاده از این کوئری ها:
[php]
SELECT * FROM table_name WHERE id > 5
[/php]
یا
[php]
SELECT * FROM table_name LIMIT 8, 0;
[/php]
-
ممنون سعني مي كنم دفعه بدي تو كد بعدي اين كار را بكنم