PDA

View Full Version : مشکل با تکرار حلقه



artablog
سه شنبه 19 شهریور 1392, 18:56 عصر
سلام
این کد رو ببینید اینو نوشتم یه کارایی میکنه یعنی مقدار nums را با متغیر $laugh چاپ میکنه

<?php
$nums=$_GET['nums'];
$num=$_GET['num'];
$laugh = "<a href='' title=''></a>";
$rlaugh = str_repeat($laugh, $nums);
echo $rlaugh;
?>
میخوام وقتی تو ادرس بار مثلا این اومد
http://127.0.0.1/?mums=2&num1=http:///site.com&num2==http://site2.com
lمقدار $laugh هر چند بار هست چاپ بشه و تو قسمت href="" مقدار num چاپ بشه

shahriyar3
سه شنبه 19 شهریور 1392, 19:32 عصر
حرکت انتحاری زدی با این الگوریتمت و برنامه ای که نوشتی :لبخندساده:
یک حلقه for بزار بالای GET از یک شروع کن چک کن ببین اگر isset مساوی true بود ادامش ....

artablog
سه شنبه 19 شهریور 1392, 20:00 عصر
دوست عزیز نصف دستور با این کد درست کار میکنه

<?php
$nums=$_GET['nums'];
$num=$_GET['num'];

//حلقه for
for ($users=2; $users <= $nums; $users++){
echo "کاربر شماره $users <br />";
}
?>
حالا میخوام وقتی در ادرس بار این اومد
http://127.0.0.1/nums=3&num1=a&num2=b&num3=c
بجای شماره کاربر مقدار num ها چاپ بشه

shahriyar3
سه شنبه 19 شهریور 1392, 20:17 عصر
گفتم بالای get ها بزار . اونجوری درست میشه. یعنی $_GET داخل حلقه اول چک کن که وجود داره یا نه بعد اگر وجود داشت میشه همون num که شما میخوای

artablog
سه شنبه 19 شهریور 1392, 20:24 عصر
شرمنده دوست عزیز مبتدی هستم همش 10 روزه دارم با php ور میرم میشه لطف کنی شما برا دستور زیر کد بنویسی؟
ببینید میخوام وقتی این ادرس درخواست میشه
http://127.0.0.1/nums=3&num1=a&num2=b&num3=c
خروجی این رو چاپ کنه
کاربر a
کاربر b
کاربر c

shahriyar3
سه شنبه 19 شهریور 1392, 20:56 عصر
عیب نداره خوب الان که تازه کاری باید بیشتر تلاش کنی
همون که نوشته بودی درست بود فقط یکم تغییر میخواست


<?php
$nums=$_GET['nums'];


//حلقه for
for ($users=1; $users <= $nums; $users++){
if(isset($_GET['num'.$users]))
echo "کاربر شماره $users ";
}
?>

artablog
سه شنبه 19 شهریور 1392, 21:07 عصر
الان وقتی ادرس زیر را بالا میارم
http://127.0.0.1/1.php?nums=3&num1=a&num2=b&num3=c
این چاپ میشه
کاربر شماره 1 کاربر شماره 2 کاربر شماره 3
من میخوام اینطوری چاپ بشه
کاربر a کاربر b کاربر c
یعنی مقدار جلوی num بجای شمارشون چاپ بشه

shahriyar3
سه شنبه 19 شهریور 1392, 21:51 عصر
<?php
$nums=$_GET['nums'];


//حلقه for
for ($users=2; $users <= $nums; $users++){
if(isset($_GET['num'.$users])){
$num = $_GET['num'.$users];
echo "کاربر شماره $num ";
}

}
?>

artablog
چهارشنبه 20 شهریور 1392, 13:38 عصر
واقعا ممنون حالا یه سوال اگه بخوام کل این کد را تو یه متغییر چاپ کنم باید چی کار کنم؟
echo را متغییر کردم تو یه جا دیگه چاپ کردم چون از حلقه خارج شدم یکبار چاپ میشه

shahriyar3
چهارشنبه 20 شهریور 1392, 13:54 عصر
باید از آرایه استفاده کنی
خارج از حلقه یه آرایه تعریف کن


$arr = array();

بعد آرایه رو پر کن


$arr[] = $_GET['num'.$users];

بیرون از حلقه میتونی هم با foreach دونه دونه چاپشون کنی هم میتونی print_r یا var_dump یکجا چاپشون کنی


var_dump($arr);

artablog
چهارشنبه 20 شهریور 1392, 14:46 عصر
به جون خودم اولین باره با آرایه کار میکنم:لبخندساده:
اینطوری نوشتم کاری را که میخوام میکنه ولی یه چیزایی از خودش چاپ میکنه

<?php
$nums=$_GET['nums'];
for ($users=2; $users <= $nums; $users++){
if(isset($_GET['num'.$users])){
$num = $_GET['num'.$users];
$title = $_GET['title'.$users];
$arr[] = "<a rel='slider-lightbox[]' href='$num' title='$title'></a> ";
}
}

print_r($arr);
?>
خروجی :

Array
(
[0] => <a rel='slider-lightbox[]' href='http://127.0.0.1/abzar/tools/gallery/test3.jpg' title='test'></a>
[1] => <a rel='slider-lightbox[]' href='http://127.0.0.1/abzar/tools/gallery/test1.jpg' title='hi'></a>
)

shahriyar3
چهارشنبه 20 شهریور 1392, 15:11 عصر
گفتم که از foreach استفاده کن.

artablog
چهارشنبه 20 شهریور 1392, 15:14 عصر
آخه میخوام یکجا چاپش کنم

shahriyar3
چهارشنبه 20 شهریور 1392, 15:25 عصر
یکجا چاپ میشه دیگه


foreach($arr as $value){
echo $value.'<br />';
}

artablog
چهارشنبه 20 شهریور 1392, 15:27 عصر
بابا تو دیگه کی هستی خیلی ممنون دارم یه ابزار گالری عکس درست میکنم تموم شدم ادرس میدم نگاه کن