PDA

View Full Version : سوال: خواندن اطلاعات از جدول به تفکیک usename



htarahi
چهارشنبه 17 شهریور 1389, 13:09 عصر
با سلام و آرزوی قبولی طاعات و عبادات شما:چشمک:
دوستان من به یه مشکل سهل ممتنع برخورد کردم که راهنمایی شما رو طلب می کنه ...
یه فرم تماس با ما هست که پیام های کاربران رو با یه id صعودی ذخیره میکنه.به عبارتی در table مربوطه ما سه فیلد id و username و payam رو داریم.
حالا می خوایم پیام های هر username رو واسش نشون بدیم.البته با این توجه به این نکته که آخرین ارسال ها رو در ابتدا نشون بدیم.شما چه قطعه کدی پیشنهاد می کنید ؟؟؟

xoogle.ir
چهارشنبه 17 شهریور 1389, 13:28 عصر
یه کوئری ساده میزنید :


select * from table_name where username='$username' order by id desc

htarahi
چهارشنبه 17 شهریور 1389, 15:59 عصر
ببینید من این تابع رو نوشتم :

function getIdInfo($table, $username){
$q = "SELECT * FROM ".$table." WHERE username = '$username' order by id desc";
$result = mysql_query($q, $this->connection);
/* Error occurred, return given name by default */
if(!$result || (mysql_numrows($result) < 1)){
return NULL;
}
/* Return result array */
$uarray = mysql_fetch_array($result);
return $uarray;
}
اما مشکل اصلیم توی چاپشه !:گیج:
حالا توی برنامه ی اصلی چطوری چاپ کنم که نتیجه ی نهایی مثلاً برای 2 ورودی اینجوری بشه :
پیام شماره2 :
--------- متن پیام ---------

پیام شماره1 :
--------- متن پیام ---------

binyaft
چهارشنبه 17 شهریور 1389, 16:47 عصر
کد زیر رو امتحان کنید


<?php
//mysql connect();
$i=0;
$q = "SELECT * FROM `tbl` WHERE username = 'username' order by id desc";
$query=mysql_query($q);
while($row=mysql_fetch_array($query)){
$i++;
echo "number : $i <br>";
echo "username : $row[username]";
}


//mysql close();

?>

sama01
چهارشنبه 17 شهریور 1389, 21:06 عصر
ببین دوست من؛
شما ظاهرا متوجه نوع کارکرد mysql_fetch_array نشدید. یه جستجوی ساده در اینترنت می‌تونست شما را در درک نحوه‌ی عملکرد این تابع کمک کنه.
ببین:
شما با دستور $result = mysql_query(...) می‌آیید و خروجی اجرای query را در result قرار می‌دی. هنوز اطلاعاتت خامه و نمی‌شه راحت ازش استفاده کرد.
بعد می‌آید با دستور mysql_fetch_array($result) یک ردیف یک ردیف اطلاعات result را خوانده و در یک آرایه قرار می‌دهی.
یعنی باید یک حلقه بذاری و تا زمانی که mysql_fetch_array($result) مقدار داره، ردیف‌ها را بخوانی و هر کاری که لازمه باهاش انجام بدی.

دانستن این مسائل، جزء حداقل‌های کار یک برنامه‌نویس php است. و آشنایی با آن‌ها، در دنیای اینترنت، بسیار آسان.

chimeh
پنج شنبه 18 شهریور 1389, 00:35 صبح
سلام. به نظر من هم بهترین کد همینه که horap30 بهتون پیشنهاد دادند.

select * from table_name where username='$username' order by id desc

htarahi
پنج شنبه 18 شهریور 1389, 01:33 صبح
از توجه و پاسخ دوستان گلم سپاسگزارم:قلب:
راستش من برنامه نویسیم هی ...بد نیست اما با php مدت زیادی نیست که آشنا شدم.هنوز با توابع اون زیاد آشنا نیستم . . .
یه چیز تو مایه های کد دوست خوبم binyaft رو می خواستم.با این تفاوت که چون تعداد رکورد ها زیاد میشه می خوام اونا رو دسته بندی کنم و هر گروه رو توی یه صفحه چاپ کنم .حالا می خوام بدونم چطور میشه مثلاً صفحه ی دوم رو چاپ کرد ؟یعنی اطلاعات رکورد های 6 تا 10 رو :متفکر:

binyaft
پنج شنبه 18 شهریور 1389, 11:54 صبح
به صورت زیر

$q = "SELECT * FROM `tbl` WHERE username = 'username' order by id desc LIMIT 0,10";
کد بالا از 0 تا 10 و میکشه بیرون

xoogle.ir
پنج شنبه 18 شهریور 1389, 12:24 عصر
بهتره توی گوگل دنبال php pagination بگردید و اسکریپت هاش رو نگاه کنید تا یاد بگیرید صفحه بندی مورد نیاز خودتون رو ایجاد کنید.

روش استاندارد و پایه این کار هم به این شکل هست که شما باید شماره صفحه رو از طریق متد get به فایلتون بفرستید و کوئریتون رو بر اساس این پارامتر مقداردهی کنید:



$page = $_GET['page'];
$count = 5;
$start = ($page-1)*$count;
$res = mysql_query("select * from table_name where username='$username' order by id desc limit $start, $count");

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

htarahi
پنج شنبه 18 شهریور 1389, 16:02 عصر
سپاس سپاس:قلب:
امیدوارم به برکت آخرین روز این شریف خدا مشکلاتتون رو از سر راهتون برداره.
جواب سؤالمو کامل گرفتم.بزرگترین اشکال کارم هم در این بود که select رو کلی می گرفتم و بعد می خواستم خروجی دلخواهم رو توی اون رکورد ها پیدا کنم.horap30 عزیز اون php pagination هم خیلی بدردم خورد:بوس: