PDA

View Full Version : سوال: مشکل در نمایش چند رکورد از یک ID



mahdik
جمعه 30 مهر 1389, 18:20 عصر
سلام و تشکر از دوستان عزیز
شرمنده شاید یه نمه گیج کننده باشه

تو سیستمم دو تیبل دارم که قراره با آی دی به هم مرتبط بشند

مثلا کاربری به نام ali با کد کاربری 10 در تیبل user قرار داره و در تیبل دیگه به نام phone پنج شماره تلفن وجود داره که سه تای آن مربوط به علی هستند

روش تفکیک در تیبل phone اینجوریه که شماره ها با آی دی کاربر ها مشخص شدند
مثلا

ID , Phone
10 , 111111
5 , 222222
10 , 333333
10 , 444444

ولی هنگام نمایش فقط یکی از شماره های ali و یا هر کار بر دیگری رو نشون میده در صورتی که باید تمام شماره های ali رو نشون بده




$user = "uid";

$result = mysql_query("SELECT * FROM user order BY uid DESC");
while($r=mysql_fetch_array($result))
{
$uid=$r["uid"];
$name=$r["name"];

$result2 = mysql_query("SELECT * FROM phone WHERE $user LIKE '$uid'");
while($r2=mysql_fetch_array($result2))
{
$phone=$r2["phone"];
}

echo " User : $user Phone : $phone ";
}




شرمنده میشه یه نگاه به کد زیر بندازید و ببینید مورد از چیه ؟
ممنون از کمکتون

xoogle.ir
جمعه 30 مهر 1389, 18:44 عصر
مشکل از اینجاست :



while($r2=mysql_fetch_array($result2))
{
$phone=$r2["phone"];
}


شما دارید مقادیر تلفن ها رو میریزید روی مقدار قبلی خب معلومه که فقط یکیش چاپ میشه.
اگه میخواهید که همه تلفن ها رو توی یک آرایه داشته باشید این کار رو انجام بدین.



$phone[]=$r2["phone"];


اون وقت phone$ تبدیل به یک آرایه میشه که همه تلفن ها رو داره حالا شما میتونید با دستوراتی مثل foreach مقدار این آرایه رو چاپ کنید با به هم متصل کنید.

mahdik
جمعه 30 مهر 1389, 20:54 عصر
سلام و ممنون

بعد از اصلاح
$phone[]=$r2["phone"]; این کد رو در مسیر قرار دادم ولی درست در نیومد و همه شماره هارو نشون میده



foreach($phone as $val)
{
Print "$val<br>";
}

آیا foreach من درسته ؟

funpatogh
جمعه 30 مهر 1389, 23:28 عصر
مگه نمیخوای که شماره تلفن های ali که دارای id=10 هست رو از تیبل phone نمایش بدهی؟
خوب چرا اینجوری ننوشیتید؟


<?php
$result=mysql_query("select `phone` from `phone` where `id`='10' ")or die(mysql_error());
while($Row=mysql_fetch_assoc($result)){
echo (++$i)." ".$Row['phone']."<br>";
}
?>

xoogle.ir
شنبه 01 آبان 1389, 00:03 صبح
سلام و ممنون

بعد از اصلاح
$phone[]=$r2["phone"]; این کد رو در مسیر قرار دادم ولی درست در نیومد و همه شماره هارو نشون میده



foreach($phone as $val)
{
Print "$val<br>";
}

آیا foreach من درسته ؟

راستش من الان به کوئری ات نگاه کردم چرا این جوری نوشتی ؟؟؟ به جای like از = استفاده کن.
مشکل از کوئری ات هست وگرنه foreach ات درسته.