PDA

View Full Version : نمایش تعداد سطرهای یک جدول



Iman7228
سه شنبه 14 دی 1389, 15:09 عصر
سلام دوستان...
راستش یه کتاب SQL دارم و میخوام که یاد بگیرم. یه جایی از این کتاب نوشته که با استفاده از دستور Count میشه تعداد سطرها رو شمرد. اینو نوشته بود : SELECT Count FieldName FROM TableName
حالا مشکل :
من یه جدول تو دیتابیسم دارم و میخوام تعداد سطرهاشو بشمارم و در خروجی نمایش بدم...
اینم کدشه :



<?php
$counter=mysql_query("SELECT count name FROM MyTbl");
echo $counter;
?>


به دیتابیس وصل میشم و اطلاعات دیگه رو میتونم از توش دربیارم. مثله اسم و ایمیل و ....
ولی نمی دونم چرا تعداد سطرهاشو برام نمایش نمیده...:ناراحت:

m_karimi
سه شنبه 14 دی 1389, 15:18 عصر
کد را اصلاح کردم.



$counter=mysql_query("select count(name) from MyTbl");
$f=mysql_fetch_row($counter);
echo $f[0];

mohsen24000
سه شنبه 14 دی 1389, 16:00 عصر
متغییری که به mysql_query نسبت دادی آرایه ای است از تمامی رکوردهای بدست آمده از آن کوئری.
بنابراین مثل کد بالا بایستی اولین عضو آرایه که همون فیلد شمارنده هست رو نمایش بدی:لبخندساده:

Iman7228
سه شنبه 14 دی 1389, 16:29 عصر
متشکرم... کارم راه افتاد....:بوس:

$f=mysql_fetch_row($counter);

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

parsidev
سه شنبه 14 دی 1389, 17:40 عصر
سلام
درسته عاقبت جستجو پیدا کردنه!
اما دو پیشنهاد دیگه وجود داره یکی:


<?php
$query = mysql_query('select count(*) as total from tablename');
$temp = mysql_fetch_assoc($query);
echo $temp['total'];
?>


شیوه بالا رو می تونی به این صورت هم خلاصه بنویسی که لازم نباشه بعدا نتیجه کوئری رو آزاد کنی:


$temp = mylsq_fetch_assoc(mysql_query('select count(*) as total from tablename'));
echo $temp['total'];


و اما شیوه دوم:



<?php
$query = mysql_query('select * from tablename');
$count = @mysql_num_rows($query);
echo $count;
?>


موفق باشی

Iman7228
سه شنبه 14 دی 1389, 19:19 عصر
parsidev عزیز ممنونم بابت راهنمایی بیشتر... :بوس:

یه سوال دیگه :
اگه بخوام یکی از سطرها رو حذف کنم باید چیکار کنم ؟
مثه عکس زیر :
64554

از دستور delete name from TBLName تو کد استفاده کردم... از کدهای قبلی هم الگو گرفتم ولی نشد :افسرده:

mohsen6500
سه شنبه 14 دی 1389, 19:33 عصر
سلام دوست عزیز
این یه نمونه


$cname = 'تام فایلت';
$query = "delete from post where catname = '$cname'; ";
$result = mysql_query($query,$dblink);
if($result)
{

echo'فایل مورد نظر شما با موفقیت حذف شد';
}


catname = فیلد مورد نظر که من این اسم رو داشتم
post = نام جدول که نام جدول من این بود
$cname = هم که نام رکورد توی جدولته

Iman7228
سه شنبه 14 دی 1389, 19:43 عصر
با این کد میشه فیلدی که ID بخصوصی داره رو حذف کرد؟
بزارید این طوری بگم:
عکس بالا رو که می بینید یه سیستم ارسال نظر هست.
من می خوام وقتی کسی نظری ارسال کرد، مدیر بتونه نظرات رو پاک یا ویرایش کنه.
صفحه لوگین و ... رو درست کردم.. فقط رو مدیریتش گیر کردم.
فک نکنم با کد بالا بشه اینکارو کرد..
من میخوام، وقتی رو لینک "حذف" کلیک کردم، فقط همون "کامنت" مورد نظر که لینک "حذف" توش قرار داره، حذف شه.
این کتاب هم که چیز زیادی توضیح نمیده...

mohsen6500
سه شنبه 14 دی 1389, 19:52 عصر
بله دوست عزیز
شما برای این کار میتونی از طریق فرم آی دی نظرتون رو به مای اسکول ارسال کنید
ودر آنجا طبق آی دی همون نظر رو پاک میکنه
مثلا این کد رو خودم نوشتم برای یه سایت واسه حذف نظر :


<?php
if(isset($_GET['cid']))
{
require_once 'inc/info.php';
$cid = $_GET['cid'];
$query = "delete from comment where cid = '$cid'; ";
$result = mysql_query($query,$dblink);
if($result)
{

echo'
<div class="div_sub_ce" align="center"><br />
پیام تبریک&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</div>
<div class="div_txt_ce" align="center">نظر درخواستی شما
با موفقیت حذف شد
<p></p><p>&nbsp;</p></div>';
return true;
}
else
{
echo'
<div class="div_sub_ce" align="center"><br />
پیام اخطار&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</div>
<div class="div_txt_ce" align="center">
متاسفانه مشکلی پیش آمده است<br />
پس از چند دقیقه مجددا امتحان نمایید
<p></p><p>&nbsp;</p></div>';
return false;
}

}
?>

parsidev
سه شنبه 14 دی 1389, 20:03 عصر
سلام
دوست عزیز جناب محسن خان به خوبی توضیح دادن و دیگه فکر کنم احتیاجی به توضیح نیست
با احترام

Iman7228
سه شنبه 14 دی 1389, 20:40 عصر
چون تازه کارم، سرتونو درد آوردم.
واس همین کل پروژمو اینجا میزارم.
تو فایل Show.php یه قسمت به نام "حذف نظر" و "ویرایش" هست. اگه میشه اینو برام درستش کنید.
من نمیدونم برای این گزینه ها ، از چه لینک یا کدی استفاده کنم.:افسرده:

parsidev
سه شنبه 14 دی 1389, 20:54 عصر
سلام دوباره
فقط فایل show.php رو ویرایش کردم
ضمنا کدینگ صفحاتت یونیکد نیست و نمایش کاراکتر های فارسی با مشکل مواجه خواهد شد.
حتما فایلا رو با کدینگ utf-8 ذخیره کن
با احترام

parsidev
سه شنبه 14 دی 1389, 20:55 عصر
راستی اینو بگم که در فایل من با این لحاظ ویرایش کردم که فیلدی به نام id داری و این یه فیلد انحصاری و یکتا است

Iman7228
سه شنبه 14 دی 1389, 21:08 عصر
فیلد آی دی هم موجوده...

این پیغام خطا رو میده ::گریه:

error in deleteing...
Error: Table 'Iman.comments' doesn't exist

من جدولو ایجاد کرده بودم... اما اسمش Comment بود.. چرا اینجا یه S به آخرش اضافه کرده :متعجب:

parsidev
سه شنبه 14 دی 1389, 21:23 عصر
سلام
خیلی سادس
من تو خط سوم به جای comment نوشتم comments
کافیه اونو تصحیح کنی!
یه نیگا هم به سورس بنداز تا بفهمی چیکار کردم
سعی کردم خیلی ساده این کارو بکنم
با احترام

Iman7228
سه شنبه 14 دی 1389, 21:31 عصر
:خجالت:
سلام:لبخندساده: . به خدا سی بار به کد نگاه کردم... ولی اصلا به چشمم نیومد...
آخه یه سره دارم رو این برنامه "ارسال نظر" کار میکنم... چشام داره از کاسه در میاد...:لبخند:

به عنوان سوال آخرم :
چطوری میشه نظر رو ویرایش کرد؟
یعنی مثه حذف کردن، یه قسمت براش بزاریم تا بشه اون نظر رو ویرایش کرد.
فک کنم با چیزایی که من از تو کتاب خوندم ، باید از دستور آپدیت استفاده کرد.
البته می دونم که باید یه Textarea برای ویرایش کامنت در نظر گرفت.
میشه زحمت اینو هم برام بکشید.

parsidev
سه شنبه 14 دی 1389, 21:56 عصر
همون صفحه قبلی رو ویرایش کردم
کد رو نیگا کن و تغییراتی که می خوای رو بده من رو ظاهرش کار نکردم ولی فقط برای اینکه یه نمونه داشته باشی خوبه اگه جایی رو نفهمیدی بگو توضیح بدم

Iman7228
سه شنبه 14 دی 1389, 23:40 عصر
دستت درد نکنه داش گلم...:تشویق:

فقط یه جای کار می لنگید که اونم ، زمانی بود که اسم input (مخصوص فیلد نام)، رو Fullname گذاشته بودی که با فیلد جدول دیتابیس همخونی نداشت و زمانی که فیلدا رو ویرایش می کردم، رو فیلد نام تغییری اعمال نمی شد و با تغییر از Fullnameبه Name مشکلم حل شد.
بی نهایت متشکرم...:قلب:
اگه دوباره به مشکل برخوردم حتماً خبرتون می کنم.:لبخندساده: