PDA

View Full Version : مبتدی: حذف چند رکورد از جدول



foroughiiii
دوشنبه 17 مهر 1396, 09:58 صبح
میخواهم با زدن یک چک باکس همه ی رکورد ها انتخاب شده ووقتی دکمه حذف رو زدم همه حذف بشن میشه بگین چه کار کنم؟

thacker
دوشنبه 17 مهر 1396, 11:43 صبح
از jquery استفاده کنید.
مثال :

<script language="JavaScript">
function toggle(source) {
checkboxes = document.getElementsByName('foo');
for(var checkbox in checkboxes)
checkbox.checked = source.checked;
}
</script>

<input type="checkbox" onClick="toggle(this)" /> Select All<br/>

<input type="checkbox" name="foo" value="bar1"> Bar 1<br/>
<input type="checkbox" name="foo" value="bar2"> Bar 2<br/>
<input type="checkbox" name="foo" value="bar3"> Bar 3<br/>
<input type="checkbox" name="foo" value="bar4"> Bar 4<br/>

foroughiiii
دوشنبه 17 مهر 1396, 11:59 صبح
توقسمت چک کردن همه چک باکس ها مشکل ندارم نمیدونم چه طوری همشونو دلیت کنم .منظورم دلیت از دیتا بیس هستش.آخه من فقط بلدم یه مقدارو از دیتا بیس دلیت کنم میشه این قسمتو بگین بهم؟چه طوری ؟

thacker
دوشنبه 17 مهر 1396, 13:11 عصر
لطفا کد مربوط به صفحتون رو اینجا بگذارید تا بر اساس اون راهنماییتون کنیم

foroughiiii
دوشنبه 17 مهر 1396, 13:22 عصر
لطفا کد مربوط به صفحتون رو اینجا بگذارید تا بر اساس اون راهنماییتون کنیم





<script>
function checkall(value)
{
if($("#check").is(":checked"))
{
$(".check").attr("checked","checked");
}
else
{
$(".check").removeAttr("checked");
}

}
</script>
<style>
table
{
min-width: 100px;
}
table tr
{
min-height: 50px;
border: 1px solid red;
}
table tr th
{
padding: 10px;
text-align: center;
padding-bottom: 10px;
color: red;
}
table tr td
{
padding: 10px;
text-align: center;
padding-top: 5px;
}
</style>
</head>

<body>
<form action="deleteall.php " method="post">


<table>
<tr>
<th>
شماره
</th>
<th>
عنوان
</th>
<th>
متن
</th>
<th>
تاریخ ایجاد
</th>
<th>
تاریخ نمایش
</th>
<th>
تاریخ پایان نمایش
</th>
<th>
حالت
</th>
<th>
ایجاد کنننده
</th>
<th>
ویرایش
</th>
<th>
حذف
</th>
<th> <span class=' glyphicon glyphicon-ok'></span><input type="checkbox" id="check" onChange="checkall(this.value)">
</th>
</tr>

<?php
include"config.php";
$q=mysqli_query($link,"SELECT * FROM content")OR DIE(mysqli_error($link));
$row=mysqli_num_rows($q);
if($row=='0')
{
echo"داده ای موجود نمی باشد";

}
else
{
while($r=mysqli_fetch_assoc($q)){
echo"<tr>";
foreach($r as $val)
echo"<td>" .$val."</td>";
echo"<td><a href='index.php?page=content&editid=$r[id]'><span class='glyphicon glyphicon-edit'></span></a></td><td><a href='delete.php?deleteid=$r[id]'><span class='glyphicon glyphicon-remove'></span></a></td><td><input type='checkbox' class='check' value='$r[id]' name='ckeckid[]'/></td></tr>";
}

}


?>
</table>
<div>
<input type="submit" value="deleteall">

</div>

</form>

</body>




تا اینجا چک باکس ها تو چدول تیک میخوره وبرای هر چک باکس مقدار value رو Id قرار دادم حالا میخوام تو صفحه ی جدا که بتونم چند تا رو با هم حذف کنم تو اون صفحه نمیدونم چه جوری بنویسم
تو صفحه ی مربوط به deletallهم اینارو نوشتم


<?php


include("config.php");
$delid=$_POST['ckeckid[]'];
foreach($delid as $val)
mysqli_query($link,"DELETE FROM content WHERW id=".$val)

?>

thacker
دوشنبه 17 مهر 1396, 14:49 عصر
توی صفحه deleteall این کد رو جایگزین کنید ببینید برطرف میشه مشکل یا خیر :

<?php

include("config.php");
$delid=$_POST['ckeckid'];
foreach($delid as $val) {
mysqli_query($link,"DELETE FROM `content` WHERE `id` = '$val' LIMIT 1");
}

?>

foroughiiii
دوشنبه 17 مهر 1396, 21:27 عصر
توی صفحه deleteall این کد رو جایگزین کنید ببینید برطرف میشه مشکل یا خیر :

<?php

include("config.php");
$delid=$_POST['ckeckid'];
foreach($delid as $val) {
mysqli_query($link,"DELETE FROM `content` WHERE `id` = '$val' LIMIT 1");
}

?>




ارور میده
اینه
Notice: Undefined index: ckeckid[] in E:\xamp\htdocs\control panel-bootstrap\deleteall.php on line 5

Warning: Invalid argument supplied for foreach() in E:\xamp\htdocs\control panel-bootstrap\deleteall.php on line 6

hmkhafan
سه شنبه 25 مهر 1396, 22:06 عصر
سلام
شما اول یه آرایه بساز توی جی کوئری و آی دی هارو بریز داخلش بعد همین آرایه رو بفرست سمت سرور، توی php آرایه رو بگیر با دستور implode همه مقادیر رو با کارکتر , بهم بچسبون، بعدش این کوئری رو اجرا کن:
delete from content where id in(1,2,3,4,5,6)
اون متغیری که ساختی با implode رو داخل پرانتز بذار
موفق باشی