View Full Version : مبتدی: دستور while فقط یکبار اجرا بشه
chaown
شنبه 16 اردیبهشت 1391, 15:46 عصر
سلام
یه حلقه while دارم که 4 بار اجرا داره ولی نتیجه ای که من می خوام فقط در حلقه چهارم درسته پس سه حلقه اول رو نمی خوام
این چه جوریاست ؟
البته این چهاری که می گم ، متغیره ممکنه کمتر یا بیشتر باشه.
ممنون.
djsaeedkhan
شنبه 16 اردیبهشت 1391, 15:48 عصر
سلام
کارش یه If هست با continue
شما تعداد بگیر که کلا چند تا هست
بعد یکی ازش کم کنی میشه دفعه آخر
و تمام
MMSHFE
شنبه 16 اردیبهشت 1391, 15:51 عصر
البته درستش حلقه while هست ولی خوب چه کاریه؟ وقتی میدونید کدوم یکی درسته، خوب یک if بگذارین و تمام. دیگه چرا n بار تکرار کنید و فقط یکبار انجام بشه؟ هدف فقط اتلاف زمان هست؟
chaown
شنبه 16 اردیبهشت 1391, 16:24 عصر
این کار اشتباست و جواب درست نمی گیرم.
من یه سایت دارم که کارش ارسال پست برای دوستانه ( کسایی که تو جدول friends ) با کاربر جاری دوستن
من اول باید دوستان رو پیدا کنم بعد پست های اونا رو تو صفحه قرار بدم . که پست های هر شخص رو دوستان آن شخص ببینن ، مثل شبکه های اجتماعی
کاری که من کردم اینه :
اول با یه دستور دوستان کاربر جاری رو پیدا کردم :
$findFriend=mysql_query("select friend_Uname from friends where user='".$_SESSION["userName"]."' or friend_Uname='".$_SESSION["userName"]."'")or die(mysql_error());
بعد با یه حلقه while پست های ای دوستان رو پیدا کردم و چاپ کردم :
while($findFriendASSOC=mysql_fetch_assoc($findFrie nd))
{
$selectFriendsPost=mysql_query("select * from posts where postUser='".$findFriendASSOC['friend_Uname']."' or postUser='".$_SESSION['userName']."' ORDER BY date DESC LIMIT 10")or die(mysql_error());
چاپ مقادیر
while($selectFriendsPostASSOC=mysql_fetch_array($s electFriendsPost,MYSQL_ASSOC))
{
که این کار اشتباه است چون هر بار پست های یک دوست رو چاپ می کنه و توش پست ها تکراری هم هست.
چکارش کنم درست شه؟
MMSHFE
شنبه 16 اردیبهشت 1391, 18:01 عصر
$query = <<<EOT
SELECT DISTINCT *
FROM `posts`
WHERE (`postUser` IN
(SELECT DISTINCT `friend_name`
FROM `friends`
WHERE (`user`='{$_SESSION['userName']}')
) OR `postUser`='{$_SESSION['userName']}')
EOT;
$posts = mysql_query($query);
if($posts && mysql_num_rows($posts) > 0) {
while($post = mysql_fetch_assoc($posts)) {
echo '<pre>'.PHP_EOL;
print_r($post);
echo '</pre>'.PHP_EOL;
}
}
موفق باشید.
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.