حذف همزمان چند رکورد با استفاده از chechbox
من می خوام چند رکورد انتخابی توسط 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> " ;
نقل قول: حذف همزمان چند رکورد با استفاده از chechbox
اسم checkbox رو از id[0]
به id[]
تغيير بده
تو روشي كه شما استفاده كردي تمام مقادير به يك متغير ارسال ميشه و هميشه مقدار آخر اضافه شده ديده ميشه و بقيه انگار اصلاً وجود ندارند
ولي اگر به صورت id[]
نام گذاري كني خودش خودكار هر كدوم رو تو يكي از خونه هاي آرايه اي با نام id ميريزه
مثلاً اگر 5 تا checkbox بشه در صورت انتخاب همه سمت سرور با نامهاي زير به اونا دسترسي داري
id[0]
id[1]
id[2]
id[3]
id[4]
نقل قول: حذف همزمان چند رکورد با استفاده از chechbox
نقل قول: حذف همزمان چند رکورد با استفاده از chechbox
شما اسم checkbox هاتون رو به صورت []id بزاريد و مقدار value اون checkbox رو هم برابر با مقدار متغير id بعد از اون طرف به صورت يك آرايه اين مقادير رو دريافت مي كنيد كه با دستوري شبيه به دستور زير مي تونيد ركوردهاي موردنظرتون رو پاك كنيد
$query='delete from table_name where id in('.implode(',',$_POST['id']).')';
mysql_query($query);
نقل قول: حذف همزمان چند رکورد با استفاده از chechbox
با تشکر فراوان از لطف وراهنمایی دوستان گرامی به خصوص
من در ابتدا هم کد رو با [] 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> "
نقل قول: حذف همزمان چند رکورد با استفاده از chechbox
البته یک خط جا افتاده که کد اصلی اینه :
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>" ;
نقل قول: حذف همزمان چند رکورد با استفاده از chechbox
به این صورت هم تصحیح کردم نشد : لطفا کمک کنید
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>" ;
نقل قول: حذف همزمان چند رکورد با استفاده از chechbox
اینم کار نمی کنه .چیکار کنم من ؟؟؟
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);
}
}
}
}
نقل قول: حذف همزمان چند رکورد با استفاده از chechbox
خیلی ممنون از راهنمایی های دوستان بالاخره اینقد کد رو اینور اونورش کردم درست شد.اگر کمک شما دوستان نبود موفق به این کار نمی شدم باز هم ممنون.
تشکر ویژه از
alihoseini و payamsp و ahmadbadpey
نقل قول: حذف همزمان چند رکورد با استفاده از chechbox
این کدی که در زیر نوشتم درست کار می کنه ولی یک اشکال داره اونم اینه که پس از حذف تعداد دلخواهی رکورد در بار اولی که صفحه 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);
}
}
}
}
نقل قول: حذف همزمان چند رکورد با استفاده از chechbox
لطفا یکی از اساتید کمک کنه که این مشکلم هم برطرف بشه الان 2 روزه هر کاری می کنم نمیشه