نمایش نتایج 1 تا 21 از 21

نام تاپیک: مشکل:حذف یک سطر در mysql

  1. #1
    کاربر دائمی آواتار binboy
    تاریخ عضویت
    دی 1387
    محل زندگی
    بنده نواز
    پست
    176

    مشکل:حذف یک سطر در mysql

    با سلام
    در کد زیر قصد حذف چند سطر با هم یا تکی، در mysql دارم ولی متاسفانه عمل نمیکنه روی سرور اصلی غیر لوکالم تست کردم نشد.قصد بکارگیری تیبل هم ندارم فقط div.قبل این تو قالب تیبل کار می کرد، اونجا هم یه مشکل بود که فقط روی سرور اصلی حذف می کرد یعنی روی لوکال کار نمی کرد،اگه بشه این مشکل را هم مرتفع کرد عالیه.
    <?php
    include('config.php');
    $result = mysql_query("SELECT * FROM test_mysql ORDER BY name ASC");
    ?>

    <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="checkbox[]" type="checkbox" id="checkbox[]" value="'.$rows[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>';
    }
    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 successful redirect to delete_multiple.php
    if($result){
    echo "<meta http-equiv=\"refresh\" content=\"0;URL=display.php\">";
    }
    }

    ?>
    <div class="delete"><form method="post" action="display.php"><input name="delete" type="submit" id="delete" value=""></form></div>
    <div class="footer">Footer</div>
    </div>

  2. #2
    کاربر دائمی آواتار binyaft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    سیم مسی
    پست
    1,761

    نقل قول: مشکل:حذف یک سطر در mysql

    متغیر $count مقداری نداره که حلقه بتونه کاری رو انجام بده

    به صورت زیر بنویسد ببینید کار میکنه
     $count=count($checkbox);

    موفق باشید

  3. #3
    کاربر دائمی آواتار binboy
    تاریخ عضویت
    دی 1387
    محل زندگی
    بنده نواز
    پست
    176

    نقل قول: مشکل:حذف یک سطر در mysql

    ممنونم از پاسخ
    نقل قول نوشته شده توسط binyaft مشاهده تاپیک
    متغیر $count مقداری نداره که حلقه بتونه کاری رو انجام بده
    درسته متغییرش این بود که نبود تو کد:
    $count=mysql_num_rows($result);
    متغییر بالا را گذاشتم تو کد ولی کار نکرد هم تو لوکال و هم تو سرور اصلی!!!!!؟؟؟؟؟
    «بعد submit صحفه رفرش میشه ولی سطر پاک نمیشه.هیچ اروریم نمیده.»
    آخرین ویرایش به وسیله binboy : دوشنبه 10 آبان 1389 در 12:39 عصر

  4. #4
    کاربر دائمی آواتار binboy
    تاریخ عضویت
    دی 1387
    محل زندگی
    بنده نواز
    پست
    176

    نقل قول: مشکل:حذف یک سطر در mysql

    یکی بگه چیکار کنم؟

  5. #5
    کاربر دائمی آواتار binyaft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    سیم مسی
    پست
    1,761

    نقل قول: مشکل:حذف یک سطر در mysql

    بعد از
     $del_id = $checkbox[$i];

    بنویسید
    echo "$del_id <br>";

    ببینید چیزی مشاهده میشه

  6. #6
    کاربر دائمی آواتار binboy
    تاریخ عضویت
    دی 1387
    محل زندگی
    بنده نواز
    پست
    176

    نقل قول: مشکل:حذف یک سطر در mysql

    نشد.اگر این مشکل حل نمیشه کد دیگه ای دارید که کار میکنه و کاراتر است معرفی کنید.
    تشکر

  7. #7
    کاربر دائمی آواتار binyaft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    سیم مسی
    پست
    1,761

    نقل قول: مشکل:حذف یک سطر در mysql

    اگر هیچ خورجی ای در صورت تیک دار کردن چک باکس ها ندارید ، مشکل در فرم هست

  8. #8
    کاربر دائمی آواتار binboy
    تاریخ عضویت
    دی 1387
    محل زندگی
    بنده نواز
    پست
    176

    نقل قول: مشکل:حذف یک سطر در mysql

    داداش من منظورتو نگرفتم.کدوم فرم را میگی؟
    من فرم آنچنانی تو کدها ندارم فقط همون دکمه سابمیته.
    میشه یه نگا به کد بندازی؟
    تشکر

  9. #9

    نقل قول: مشکل:حذف یک سطر در 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>

  10. #10
    کاربر دائمی آواتار binboy
    تاریخ عضویت
    دی 1387
    محل زندگی
    بنده نواز
    پست
    176

    نقل قول: مشکل:حذف یک سطر در mysql

    نقل قول نوشته شده توسط funpatogh مشاهده تاپیک
    مشکل شما توی فرم هست و چون
    اینکار را هم کردم نشد.
    این مشکل را توی یکی از این فرومهای خارجی مطرح کردم و اونها همچین جوابی بهم دادن:
    There are a couple issues here:
    1. The meta tag will not work outside the head element on an HTML document, so that method is out.
    2. Your loop will only validate if the last delete statement worked, not all of them
    3. You can use the header instruction instead, but you'll need to reorder the code to accomplish what you want.
    4. 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...
    5. 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(); را گذاشتم، نرفت که نرف.
    حالا شما بگید چیکارش کنم؟

  11. #11

    نقل قول: مشکل:حذف یک سطر در mysql

    اگر این کدت مشکلی نداره و کار میکنه و فقط خطای header میده به خاطر تابع header از این

    echo "<script language=\"javascript\">window.location=\"delete.p hp\";</script>";

    به جای این خط استفاده کن

    header("Location: delete.php");

    اما اگر دنبال راه دیگری هستید که بنده براتون ویرایش کنم

  12. #12
    کاربر دائمی آواتار binboy
    تاریخ عضویت
    دی 1387
    محل زندگی
    بنده نواز
    پست
    176

    نقل قول: مشکل:حذف یک سطر در mysql

    دستت درد نکنه اروره رفت ولی حذف نشدن سطرها همچنان پابرجاست.
    میشه یه توضیح راجب ارور بالا و رفع اون بدی؟
    البته مشکل عدم حذف هم هست که مهمتر است؟؟؟؟؟؟؟؟

  13. #13
    کاربر دائمی آواتار binyaft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    سیم مسی
    پست
    1,761

    نقل قول: مشکل:حذف یک سطر در 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();

  14. #14
    کاربر دائمی آواتار binboy
    تاریخ عضویت
    دی 1387
    محل زندگی
    بنده نواز
    پست
    176

    نقل قول: مشکل:حذف یک سطر در mysql

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

    echo "<script language=\"javascript\">window.location=\"delete.p hp\";</script>";
    به جای این خط استفاده کن

    header("Location: delete.php");
    اما اگر دنبال راه دیگری هستید که بنده براتون ویرایش کنم

  15. #15

    نقل قول: مشکل:حذف یک سطر در mysql

    خوب اون error مربوط به تابع header بود که قبل از این تابع نباید به هیچ وجهی خروجی چاپ شده باشد که شما html قبلش دارید برای همین از جاوا اسکریپت بهره بردیم که اون خطا حل بشود اما برای حذف نشدن براتون کدتون رو ادیت میکنم و میزارم

  16. #16
    کاربر دائمی آواتار binboy
    تاریخ عضویت
    دی 1387
    محل زندگی
    بنده نواز
    پست
    176

    نقل قول: مشکل:حذف یک سطر در mysql

    نقل قول نوشته شده توسط funpatogh مشاهده تاپیک
    خوب اون error مربوط به تابع header بود که قبل از این تابع نباید به هیچ وجهی خروجی چاپ شده باشد که شما html قبلش دارید برای همین از جاوا اسکریپت بهره بردیم که اون خطا حل بشود اما برای حذف نشدن براتون کدتون رو ادیت میکنم و میزارم
    تشکر،منتظرم

  17. #17

    نقل قول: مشکل:حذف یک سطر در 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>
    آخرین ویرایش به وسیله funpatogh : سه شنبه 11 آبان 1389 در 22:45 عصر

  18. #18
    کاربر دائمی آواتار binboy
    تاریخ عضویت
    دی 1387
    محل زندگی
    بنده نواز
    پست
    176

    نقل قول: مشکل:حذف یک سطر در mysql

    داداش دمت گرم کار کرد.
    فقط گیرش کجا بود؟ چطوری رفع شد؟اگر توضیح بدی تجربه خوبی خواهد بود.
    تشکر

  19. #19

    نقل قول: مشکل:حذف یک سطر در mysql

    مشکل اول :

    <form method="post" action="display.php">

    اینو انتهای صفحه بعد از چک باکس ها گزاشته بودی که مقادیر چک باکس ها ارسال نمیشد

    مشکل دوم:

    for($i=0;$i<$count;$i++) {

    که باید بشه

    for($i=0;$i<count($checkbox);$i++) {

    اینهایی که به وضوح پیدا بود رو براتون نوشتم ممکنه باز هم باشد

  20. #20
    کاربر دائمی آواتار binboy
    تاریخ عضویت
    دی 1387
    محل زندگی
    بنده نواز
    پست
    176

    نقل قول: مشکل:حذف یک سطر در mysql

    با سلام و تشکر
    کد شما حذف می کنه و بعد حذف همچین اروری میده:
      Untitled Document  
    Warning: Invalid argument supplied for foreach() in D:\xampp\htdocs\learn\meti\idu\display.php on line 15

    این ارور چیه و برای چه بوجود آمد و چطوری رفع میشه؟
    بازم تشکر

  21. #21

    نقل قول: مشکل:حذف یک سطر در mysql

    توش تغییری دادید؟
    هر تغییری که دادی بزار اینجا ببینم
    آخرین ویرایش به وسیله funpatogh : چهارشنبه 12 آبان 1389 در 00:14 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •