نقل قول: مشکل:حذف یک سطر در mysql
متغیر $count مقداری نداره که حلقه بتونه کاری رو انجام بده
به صورت زیر بنویسد ببینید کار میکنه
$count=count($checkbox);
موفق باشید
نقل قول: مشکل:حذف یک سطر در mysql
ممنونم از پاسخ
نقل قول:
نوشته شده توسط
binyaft
متغیر $count مقداری نداره که حلقه بتونه کاری رو انجام بده
درسته متغییرش این بود که نبود تو کد:
$count=mysql_num_rows($result);
متغییر بالا را گذاشتم تو کد ولی کار نکرد هم تو لوکال و هم تو سرور اصلی!!!!!؟؟؟؟؟
«بعد submit صحفه رفرش میشه ولی سطر پاک نمیشه.هیچ اروریم نمیده.»
نقل قول: مشکل:حذف یک سطر در mysql
نقل قول: مشکل:حذف یک سطر در mysql
بعد از
$del_id = $checkbox[$i];
بنویسید
echo "$del_id <br>";
ببینید چیزی مشاهده میشه
نقل قول: مشکل:حذف یک سطر در mysql
نشد.اگر این مشکل حل نمیشه کد دیگه ای دارید که کار میکنه و کاراتر است معرفی کنید.
تشکر
نقل قول: مشکل:حذف یک سطر در mysql
اگر هیچ خورجی ای در صورت تیک دار کردن چک باکس ها ندارید ، مشکل در فرم هست
نقل قول: مشکل:حذف یک سطر در mysql
داداش من منظورتو نگرفتم.کدوم فرم را میگی؟
من فرم آنچنانی تو کدها ندارم فقط همون دکمه سابمیته.
میشه یه نگا به کد بندازی؟
تشکر
نقل قول: مشکل:حذف یک سطر در mysql
مشکل شما توی فرم هست و چون
<form method="post" action="display.php">
رو بعد از input ها و در انتهای صفحه گزاشتید مقادیر چک باکس رو سند نمیکنه و فقط کلید delete رو ارسال میکنه
این قسمت فرمت رو به این شکل ویرایش کنید
<form method="post" action="display.php">
<div class="container">
<div class="header"> Header </div>
<div class="nav4" style="font-size:20px; font-weight:bold;"> 1 </div>
<div class="nav4" style="font-size:20px; font-weight:bold;"> # </div>
<div class="content" style="font-size:20px; font-weight:bold;"> Name </div>
<div class="nav3" style="font-size:20px; font-weight:bold;"> LastName </div>
<div class="sidebar" style="font-size:20px; font-weight:bold;"> Email </div>
نقل قول: مشکل:حذف یک سطر در mysql
نقل قول:
نوشته شده توسط
funpatogh
مشکل شما توی فرم هست و چون
اینکار را هم کردم نشد.
این مشکل را توی یکی از این فرومهای خارجی مطرح کردم و اونها همچین جوابی بهم دادن:
There are a couple issues here:
- The meta tag will not work outside the head element on an HTML document, so that method is out.
- Your loop will only validate if the last delete statement worked, not all of them
- You can use the header instruction instead, but you'll need to reorder the code to accomplish what you want.
- A non-php word of advice - avoid inline styles as much as possible. You'll save yourself a lot of headaches. You can use multiple classes for the same element, just separating them by a space...
- The generated page will not validate because you've got form elements (the checkboxes) outside the form itself, so results can get sketchy....
This should get you what you need. If not, ensure that your ID is actually a character field - if not, remove the quotes around $del_id in the delete statement.
بعد همچین کدی دادن:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel=stylesheet type=text/css href="style.css"> <title>Untitled Document</title>
<style type="text/css">
.bigandbold { font-size: 20px; font-weight: bold; }
.error { color: red; font-weight: bold; }
</style>
</head>
<body>
<?php include('config.php');
// First delete the records necessary
$errDesc = "";
if(isset($_POST['delete'])) {
$checkbox = $_POST['checkbox'];
for($i=0;$i<$count;$i++) {
$del_id = $checkbox[$i];
$sql = "DELETE FROM test_mysql WHERE id='$del_id'";
$result = mysql_query($sql);
if (!$result) { $errDesc .= "<p>Error deleting $del_id";
}
}
// if successful redirect to delete_multiple.php
// NOTE: If **this** page is delete_multiple.php, then this whole if statement is not needed..
if (strLen($errDesc) == 0) {
header("Location: delete.php");
}
}
$result = mysql_query("SELECT * FROM test_mysql ORDER BY name ASC");
$count=mysql_num_rows($result);
?>
<div class="container">
<div class="header"> Header </div>
<div class="nav4 bigandbold">1</div>
<div class="nav4 bigandbold">#</div>
<div class="content bigandbold">Name</div>
<div class="nav3 bigandbold">LastName</div>
<div class="sidebar bigandbold">Email</div>
<?php
if(strLen($errDesc) > 0){
echo '<div class="error">'. $errDesc .'</div>';
}
$count=count($checkbox);
while($row = mysql_fetch_array($result)) {
echo '<div class="chekbox"><input name="checkbox[]" type="checkbox" id="checkbox[]" value="'.$rows[id].'"></div>';
echo '<div class="nav4">'. $row['id'] .'</div>';
echo '<div class="content"><a href="update.php?id='.$row['id'].'">'.$row['name'].'</a></div>';
echo '<div class="nav3">' . $row['lastname'] . '</div>';
echo '<div class="sidebar">' . $row['email'] . '</div>';
}
?>
<div class="delete">
<form method="post" action="<?php $_SERVER['PHP_SELF'] ?>">
<input name="delete" type="submit" id="delete" value="">
</form>
</div>
<div class="footer">Footer</div>
</div>
</body>
</html>
فقط این کد یک ارور داره اونم اینه که بعد از کلیک روی دکمه حذف صحفه رفرش میشه و همچین اروری تو همون صفه میاد:
Warning: Cannot modify header information - headers already sent by (output started at /home/zigsmhos/public_html/test/idu/display.php:6) in /home/zigsmhos/public_html/test/idu/display.php on line 27
با Notepad تبدیل به UTF-8 کردم بازم نرفت.تو php.ini تظيم output_buffering را on کردم، نرفت.ob_start(); را گذاشتم، نرفت که نرف.
حالا شما بگید چیکارش کنم؟
نقل قول: مشکل:حذف یک سطر در mysql
اگر این کدت مشکلی نداره و کار میکنه و فقط خطای header میده به خاطر تابع header از این
echo "<script language=\"javascript\">window.location=\"delete.p hp\";</script>";
به جای این خط استفاده کن
header("Location: delete.php");
اما اگر دنبال راه دیگری هستید که بنده براتون ویرایش کنم
نقل قول: مشکل:حذف یک سطر در mysql
دستت درد نکنه اروره رفت ولی حذف نشدن سطرها همچنان پابرجاست.
میشه یه توضیح راجب ارور بالا و رفع اون بدی؟
البته مشکل عدم حذف هم هست که مهمتر است؟؟؟؟؟؟؟؟
نقل قول: مشکل:حذف یک سطر در mysql
Warning: Cannot modify header information - headers already sent by (output started at /home/zigsmhos/public_html/test/idu/display.php:6) in /home/zigsmhos/public_html/test/idu/display.php on line 27
با کد های زیر حل میشه
اول فایل بنویسید
ob_start();
و اخر فایل هم
ob_end_flush();
نقل قول: مشکل:حذف یک سطر در mysql
دوست عزیز
ارور بالا با جایگزینی کدهای زیر حل شد فقط همون مشکل پاک نکردن هنوز باقیه.
نقل قول:
نوشته شده توسط
funpatogh
اگر این کدت مشکلی نداره و کار میکنه و فقط خطای header میده به خاطر تابع header از این
echo "<script language=\"javascript\">window.location=\"delete.p hp\";</script>";
به جای این خط استفاده کن
header("Location: delete.php");
اما اگر دنبال راه دیگری هستید که بنده براتون ویرایش کنم
نقل قول: مشکل:حذف یک سطر در mysql
خوب اون error مربوط به تابع header بود که قبل از این تابع نباید به هیچ وجهی خروجی چاپ شده باشد که شما html قبلش دارید برای همین از جاوا اسکریپت بهره بردیم که اون خطا حل بشود اما برای حذف نشدن براتون کدتون رو ادیت میکنم و میزارم
نقل قول: مشکل:حذف یک سطر در mysql
نقل قول:
نوشته شده توسط
funpatogh
خوب اون error مربوط به تابع header بود که قبل از این تابع نباید به هیچ وجهی خروجی چاپ شده باشد که شما html قبلش دارید برای همین از جاوا اسکریپت بهره بردیم که اون خطا حل بشود اما برای حذف نشدن براتون کدتون رو ادیت میکنم و میزارم
تشکر،منتظرم
نقل قول: مشکل:حذف یک سطر در mysql
تست کد ببین ایرادی داره یا نه اگه داشت بگو
<?php
include("config.php");
if(isset($_POST['delete'])){
foreach($_POST['del_checkbox'] as $value){
mysql_query("delete from `test_mysql` where `id`='$value' ");
}
}
$result = mysql_query("SELECT * FROM `test_mysql` ORDER BY `name` ASC");
?>
<form method="post" action="display.php">
<div class="container">
<div class="header"> Header </div>
<div class="nav4" style="font-size:20px; font-weight:bold;"> 1 </div>
<div class="nav4" style="font-size:20px; font-weight:bold;"> # </div>
<div class="content" style="font-size:20px; font-weight:bold;"> Name </div>
<div class="nav3" style="font-size:20px; font-weight:bold;"> LastName </div>
<div class="sidebar" style="font-size:20px; font-weight:bold;"> Email </div>
<?php
while($row = mysql_fetch_array($result))
{
echo '<div class="chekbox"><input name="del_checkbox[]" type="checkbox" value="'.$row['id'].'"></idv>';
echo '<div class="nav4">' . $row['id'] . '</div>';
echo '<div class="content"><a href="update.php?id='.$row['id'].'">'.$row['name'].'</a></div>';
echo '<div class="nav3">' . $row['lastname'] . '</div>';
echo '<div class="sidebar">' . $row['email'] . '</div>';
}
?>
<div class="delete"><input name="delete" type="submit" id="delete" value="Delete"></form></div>
<div class="footer">Footer</div>
</div>
نقل قول: مشکل:حذف یک سطر در mysql
داداش دمت گرم کار کرد.
فقط گیرش کجا بود؟ چطوری رفع شد؟اگر توضیح بدی تجربه خوبی خواهد بود.
تشکر
نقل قول: مشکل:حذف یک سطر در mysql
مشکل اول :
<form method="post" action="display.php">
اینو انتهای صفحه بعد از چک باکس ها گزاشته بودی که مقادیر چک باکس ها ارسال نمیشد
مشکل دوم:
for($i=0;$i<$count;$i++) {
که باید بشه
for($i=0;$i<count($checkbox);$i++) {
اینهایی که به وضوح پیدا بود رو براتون نوشتم ممکنه باز هم باشد
نقل قول: مشکل:حذف یک سطر در mysql
با سلام و تشکر
کد شما حذف می کنه و بعد حذف همچین اروری میده:
Untitled Document
Warning: Invalid argument supplied for foreach() in D:\xampp\htdocs\learn\meti\idu\display.php on line 15
این ارور چیه و برای چه بوجود آمد و چطوری رفع میشه؟
بازم تشکر
نقل قول: مشکل:حذف یک سطر در mysql
توش تغییری دادید؟
هر تغییری که دادی بزار اینجا ببینم