PDA

View Full Version : سوال: حذف همزمان چند رکورد با استفاده از chechbox



afshin_2009
دوشنبه 06 مهر 1388, 22:35 عصر
من می خوام چند رکورد انتخابی توسط checkbox از دیتا بیس بصورت همزمان حذف بشه ولی هر بار فقط اولین رکورد انتخابی سورت شده از بالا حذف میشه .
متشکر میشم این کد رو چه جوری تصحیح کنم:

print " <form action=' ' method='post' name='formdelete'> " ;
$query100="select * from news.allnews order by Date_News DESC" ;
$result100=mysql_query($query100,$link) or die(mysql_error()."<br>".$query100);


while($row=mysql_fetch_array($result100))
{


print " <input name='id[0]' type='checkbox' value='$row[0]' /> " ;
print "$row[3]"."<br/>"."<hr/>" ;

}
if($_POST[deleteone]){

$query101="select * from news.allnews order by Date_News DESC" ;
$result101=mysql_query($query101,$link) or die(mysql_error()."<br>".$query101);
while($row=mysql_fetch_array($result101))
{

if($id[0]=="$row[0]"){
$query102="delete from news.allnews where ID_News_Title='$row[0]' " ;
mysql_query($query102,$link) or die(mysql_error().$query102);
}


}

}

print " <br/>
<input name='deleteone' type='submit' value='حذف خبر' /> " ;
print "</form>" ;
print "</div> " ;

alihoseini
دوشنبه 06 مهر 1388, 23:28 عصر
اسم checkbox رو از id[0] به id[] تغيير بده
تو روشي كه شما استفاده كردي تمام مقادير به يك متغير ارسال ميشه و هميشه مقدار آخر اضافه شده ديده ميشه و بقيه انگار اصلاً وجود ندارند
ولي اگر به صورت id[] نام گذاري كني خودش خودكار هر كدوم رو تو يكي از خونه هاي آرايه اي با نام id ميريزه
مثلاً اگر 5 تا checkbox بشه در صورت انتخاب همه سمت سرور با نامهاي زير به اونا دسترسي داري

id[0]
id[1]
id[2]
id[3]
id[4]

ahmadbadpey
سه شنبه 07 مهر 1388, 08:29 صبح
ببينيد :
http://barnamenevis.org/forum/showthread.php?t=129706

payamsp
سه شنبه 07 مهر 1388, 10:41 صبح
شما اسم checkbox هاتون رو به صورت []id بزاريد و مقدار value اون checkbox رو هم برابر با مقدار متغير id بعد از اون طرف به صورت يك آرايه اين مقادير رو دريافت مي كنيد كه با دستوري شبيه به دستور زير مي تونيد ركوردهاي موردنظرتون رو پاك كنيد


$query='delete from table_name where id in('.implode(',',$_POST['id']).')';
mysql_query($query);

afshin_2009
سه شنبه 07 مهر 1388, 13:14 عصر
با تشکر فراوان از لطف وراهنمایی دوستان گرامی به خصوص payamsp (http://barnamenevis.org/forum/member.php?u=97886) , ahmadbadpey (http://barnamenevis.org/forum/member.php?u=76571) , alihoseini (http://barnamenevis.org/forum/member.php?u=36226)
من در ابتدا هم کد رو با [] id نوشته بودم ولی موقع تعریف با دستور if به مشکل برمی خوردم
یعنی
if(isset(id[])) اصولا کاری رو انجام نمیده یعنی حتی یک رکورد رو هم حذف نمی کنه.
و از کد
if(isset($id[])) هم error می گیره .
به هر حال با راهنمایی همه دوستان ومقالات معرفی شده کدم رو به صورت زیر تغییر دادم ولی متاسفانه این هیچ رکوردی رو حذف نی کنه خیلی ممنون میشم اگه دوستان واساتید بگن مشکل کد کجاست ؟

print " <form action=' ' method='post' name='formdelete'> " ;
$query100="select * from news.allnews order by Date_News DESC" ;
$result100=mysql_query($query100,$link) or die(mysql_error()."<br>".$query100);


while($row=mysql_fetch_array($result100))
{

print " <input name='checkbox1[]' type='checkbox' value='$a[id]'/>" ;
print "$row[3]"."<br/>"."<hr/>" ;
}
if($_POST[deleteone]){

$query101="select * from news.allnews order by Date_News DESC" ;
$result101=mysql_query($query101,$link) or die(mysql_error()."<br>".$query101);
while($row=mysql_fetch_array($result101))
{
$a=$_POST['checkbox1'];
if(isset($a)) {
for($i=0;$i<count($a);$i++)
if(is_numeric($a[$i]))
{
$query102="delete from news.allnews where ID_News_Title in ($ss)" ;
mysql_query($query102,$link) or die(mysql_error().$query102);
}

}

}

}

print " <br/>
<input name='deleteone' type='submit' value='حذف خبر' /> " ;
print "</form>" ;
print "</div> "

afshin_2009
سه شنبه 07 مهر 1388, 14:03 عصر
البته یک خط جا افتاده که کد اصلی اینه :

print " <form action=' ' method='post' name='formdelete'> " ;
$query100="select * from news.allnews order by Date_News DESC" ;
$result100=mysql_query($query100,$link) or die(mysql_error()."<br>".$query100);


while($row=mysql_fetch_array($result100))
{

print " <input name='checkbox1[]' type='checkbox' value='$a[id]'/>" ;
print "$row[3]"."<br/>"."<hr/>" ;
}
if($_POST[deleteone]){

$query101="select * from news.allnews order by Date_News DESC" ;
$result101=mysql_query($query101,$link) or die(mysql_error()."<br>".$query101);
while($row=mysql_fetch_array($result101))
{
$a=$_POST['checkbox1'];
if(isset($a)) {
for($i=0;$i<count($a);$i++)
if(is_numeric($a[$i]))
{
$ss=implode(',',$a);
$query102="delete from news.allnews where ID_News_Title in ($ss)" ;
mysql_query($query102,$link) or die(mysql_error().$query102);
}

}

}

}

print " <br/>
<input name='deleteone' type='submit' value='حذف خبر' /> " ;
print "</form>" ;

afshin_2009
سه شنبه 07 مهر 1388, 14:40 عصر
به این صورت هم تصحیح کردم نشد : لطفا کمک کنید

print " <form action=' ' method='post' name='formdelete'> " ;
$query100="select * from news.allnews order by Date_News DESC" ;
$result100=mysql_query($query100,$link) or die(mysql_error()."<br>".$query100);


while($row=mysql_fetch_array($result100))
{

print " <input name='checkbox1[]' type='checkbox' value='$row[0]' />" ;
print "$row[3]"."<br/>"."<hr/>" ;
}
if($_POST[deleteone]){

$query101="select * from news.allnews order by Date_News DESC" ;
$result101=mysql_query($query101,$link) or die(mysql_error()."<br>".$query101);
while($row=mysql_fetch_array($result101))
{
$a=$_POST['checkbox1[]'];
if(isset($a)) {
for($i=0;$i<count($a);$i++)
if(is_numeric($a[$i]))
{
# $ss=implode(',',$a);
$ss=implode(',',$_POST['checkbox1']) ;
$query102="delete from news.allnews where ID_News_Title in ($ss) " ;
mysql_query($query102,$link) or die(mysql_error().$query102);
}

}

}

}

print " <br/>
<input name='deleteone' type='submit' value='حذف خبر' /> " ;
print "</form>" ;

afshin_2009
سه شنبه 07 مهر 1388, 14:50 عصر
اینم کار نمی کنه .چیکار کنم من ؟؟؟


print " <form action=' ' method='post' name='formdelete'> " ;
$query100="select * from news.allnews order by Date_News DESC" ;
$result100=mysql_query($query100,$link) or die(mysql_error()."<br>".$query100);


while($row=mysql_fetch_array($result100))
{

print " <input name='checkbox1[]' type='checkbox' value='$row[0]' />" ;
print "$row[3]"."<br/>"."<hr/>" ;
}
if($_POST[deleteone]){

$query101="select * from news.allnews order by Date_News DESC" ;
$result101=mysql_query($query101,$link) or die(mysql_error()."<br>".$query101);
while($row=mysql_fetch_array($result101))
{
$row=$_POST['checkbox1[]'];
if(isset($row)) {
for($i=0;$i<count($row);$i++)
if(is_numeric($row[$i]))
{
# $ss=implode(',',$a);
$ss=implode(',',$_POST['checkbox1']) ;
$query102="delete from news.allnews where ID_News_Title in ($ss) " ;
mysql_query($query102,$link) or die(mysql_error().$query102);
}

}

}

}

afshin_2009
سه شنبه 07 مهر 1388, 15:23 عصر
خیلی ممنون از راهنمایی های دوستان بالاخره اینقد کد رو اینور اونورش کردم درست شد.اگر کمک شما دوستان نبود موفق به این کار نمی شدم باز هم ممنون.
تشکر ویژه از
alihoseini (http://barnamenevis.org/forum/member.php?u=36226) و payamsp (http://barnamenevis.org/forum/member.php?u=97886) و ahmadbadpey (http://barnamenevis.org/forum/member.php?u=76571)

afshin_2009
سه شنبه 07 مهر 1388, 22:39 عصر
این کدی که در زیر نوشتم درست کار می کنه ولی یک اشکال داره اونم اینه که پس از حذف تعداد دلخواهی رکورد در بار اولی که صفحه Refresh میشه همیشه اخرین رکورد رو حذف میکنه . نمی دونم علتش چیه؟؟؟

print " <form action=' ' method='post' name='formdelete'> " ;
$query100="select * from news.allnews order by Date_News DESC" ;
$result100=mysql_query($query100,$link) or die(mysql_error()."<br>".$query100);

while($row=mysql_fetch_array($result100))
{

print " <input name='checkbox1[]' type='checkbox' value='$row[0]' />" ;
print "$row[3]"."<br/>"."<hr/>" ;
}
if($_POST[deleteone]){

$query101="select * from news.allnews order by Date_News DESC" ;
$result101=mysql_query($query101,$link) or die(mysql_error()."<br>".$query101);
while($row=mysql_fetch_array($result101))
{
$row=$_POST['checkbox1'];
if(isset($row)) {
for($i=0;$i<count($row);$i++)
if(is_numeric($row[$i]))
{
$ss=implode(',',$row) ;
$query102="delete from news.allnews where ID_News_Title='$ss' " ;
mysql_query($query102,$link) or die(mysql_error().$query102);
}

}

}

}

afshin_2009
چهارشنبه 08 مهر 1388, 16:08 عصر
لطفا یکی از اساتید کمک کنه که این مشکلم هم برطرف بشه الان 2 روزه هر کاری می کنم نمیشه