النتائج 1 إلى 9 من 9

الموضوع: يرجا المساعدة في حل هذه المشكلة في الكود

  1. #1
    عضو فعال جدا
    تاريخ التسجيل
    Jun 2003
    المشاركات
    2,270

    يرجا المساعدة في حل هذه المشكلة في الكود



    السلام عليكم
    اخواني المشكلة كالتالي

    لدي قائمة عناوين اخبار ولك خبر بجانبه checkbox وفي قاعدة البيانات لكل خبر له رقم id و عنوان subject وايضا حقل اسمه main_value الان التغير سوف يكون على حقل ال main_value هذا الحقل سوف يكون فيه الرقم 1 اذا ال checkbox معلم (عليه اشارة الصح) و الحقل main_value يحصل على الرقم 0 اذا ال checkbox لا يوجد عليه اشارة صح

    انا عملت كود ولاكن مشكلة الكود انه بعد بعض وضع اشارة الصح على المربعات المختارة وبعدها رغبت في حذف اشارة الصح لا استطيع !!!!! واذا لم اضع اي اشارة صح ولا في مربع يحدث خلل !!!!!


    الكود مرفق يرجا المساعدة

    ملاحظة اعتقد ان الخلل في هذا السطر
    $list_sub1=mysql_query("UPDATE MainNews SET main_value='0' WHERE id !='$val' ");




    كود PHP:



    <?php


    //set the main subject
    if($select == "subject"){

            
    // اعتقد هنا الخلل
            
    foreach($_POST['sub_id'] AS $val){
            
    $list_sub=mysql_query("UPDATE  MainNews SET main_value='1' WHERE id='$val' ");
            
    $list_sub1=mysql_query("UPDATE  MainNews SET main_value='0' WHERE id !='$val' ");
                        }


            if(
    $list_sub && $list_sub1)
            {
            echo 
    "<center><b>تم تعين الخبر الرئيسي</b></center><br><br>";
            
    //echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"2;URL=list_news.php?cat=$cat0\">";
            
    } else { 
            echo 
    "<center><b>حدث خلل</b></center><br><br>";
            
    //echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"2;URL=list_news.php?cat=$cat0\">"; 
            
    }


    }







    $list_news=mysql_query("SELECT * FROM MainNews  WHERE cat='$cat' ORDER BY id DESC ");
    $count_news=mysql_num_rows($list_news);

    if(
    $count_news 0){

    echo 
    "<form method=\"post\" action=\"list_news.php?select=subject&cat=$cat\">";
    echo 
    '<table style="width: 100%; text-align: left;" border="1" cellpadding="0" bordercolor="#cccccc" cellspacing="0">
    <tbody>
    <tr>
    <td style="text-align: center; vertical-align: center;"><font color=red><b>عنوان الخبر</b></font>
    </td>
    <td style="width: 100px; text-align: center; vertical-align: center;"><font color=red><b>خبر رئيسي</b></font>
    </td>
    <td style="width: 100px; text-align: center; vertical-align: center;"><font color=red><b>تعديل</b></font>
    </td>
    <td style="width: 100px; text-align: center; vertical-align: center;"><font color=red><b>حذف</b></font>
    </td>

    </tr> '
    ;

        
        while(
    $row=mysql_fetch_array($list_news)) {
        
        
    $id $hi_id $row['id'];
        
    $hi_cat=$row['cat'];
        
        
    $main_value=$row['main_value'];
        

            if(
    $main_value == "1"){
            
    $main_check "checked";
            } else {
            
    $main_check "";
            }



        

        echo 
    "<tr>

        <td style=\"text-align: right; vertical-align: center;\">
    $row[subject]</td>
        <td style=\"width: 100px; text-align: center; vertical-align: center;\">

        <input  type=\"checkbox\" name=\"sub_id[]\" value=\"
    $hi_id\" $main_check>

        
        <input type=\"hidden\" name=\"cat_id[]\" value=\"
    $hi_cat\">

        </td>
        <td style=\"width: 100px; text-align: center; vertical-align: center;\"><a href=\"edit_news.php?cat=
    $cat&id=$id\">تعديل الخبر</a></td>

        <td style=\"width: 100px; text-align: center; vertical-align: center;\"><a href=\"remove_news.php?cat=
    $cat&id=$id\">حذف الخبر</a>
        </td>
        </tr>"
    ;


        }

    echo 
    "</tbody>
    </table><br><br>

    <center><input type=\"submit\" value=\"اعد تعين الخبر الرئيسي\"></center>

    </form>"
    ;


    } else {

    echo 
    '<big><Big><center><font  color=red>قاعدة البيانات فارغة</font></center></big></big><br>';

    }

    ?>

    وشكرا





    الملفات المرفقة الملفات المرفقة
    __________________


    عاشت فلسطين وعاشت المقاومة
    http://www.palintefada.com/arabic
    http://www.palissue.com/arabic
    موقع انتفاضة فلسطين - موقع القضية الفلسطينية
    الكاسر



  2. #2
    عضو فعال جدا
    تاريخ التسجيل
    Jun 2003
    المشاركات
    2,123


    استخدم المصفوفات اخوي .





    __________________
    htaccess بكل بساطة

    الشفرة الموحدة "يونِكود"

    (إن من مفاسد هذه الحضارة أنها تسمي الاحتيال ذكاءً، والانحلال حرية، و"الرذيلة فناً" والاستغلال معونة) - مصطفى السباعي

  3. #3
    عضو فعال جدا
    تاريخ التسجيل
    Jun 2003
    المشاركات
    2,270


    اقتباس المشاركة الأصلية كتبت بواسطة jadweb.com
    استخدم المصفوفات اخوي .
    السلام عليكم لو لاحظت الكود انا مستخدم المصفوفات ولاكن يبدو بالشكل الغير سليم

    يرجا مراجعة الكود وتصحيحه اذا لم يكن لديكم مانع

    وشكرا جزيلا





    __________________


    عاشت فلسطين وعاشت المقاومة
    http://www.palintefada.com/arabic
    http://www.palissue.com/arabic
    موقع انتفاضة فلسطين - موقع القضية الفلسطينية
    الكاسر


  4. #4
    عضو فعال جدا
    تاريخ التسجيل
    Jun 2003
    المشاركات
    2,123


    اسف اخوي لم انتبة والله من البحث عن المشاركات الجديدة في القسم ومحاولة الرد ...



    اخوي اعمل صفحة news.php

    في الاعلى

    ضع


    كود PHP:
    <SCRIPT LANGUAGE="JavaScript">
    <!-- 
    Begin
    function checkAll(field)
    {
     var 
    drearray affect.elements;
    for (
    0drearray.lengthi++)
        
    drearray[i].checked true ;
    }

    function 
    uncheckAll(field)
    {
     var 
    drearray affect.elements;
    for (
    0drearray.lengthi++)
        
    drearray[i].checked false ;
    }
    //  End -->

    </script> 

    الاستعلام

    كود PHP:
    <? 

    //اتصال بالقاعدة هنا 
    $total mysql_query("SELECT * FROM MainNews ORDER BY id DESC"); 
    $total_num mysql_num_rows($total); 

    ?> 

    <form action="ok.php" method="post" name=affect> 
    <? 
    while($row mysql_fetch_array($total){ 

    ?> 
    <table border="1" width="100%" id="table1" style="font-family:tahoma;font-size:11px" bgcolor=c1c1c1> 
        <tr> 
            <td><input type="checkbox" name=check[] value="<? echo $row[id]; ?>" > </ttd> 
            <td><? 
    echo $row[name];
     
    ?></td> 
        </tr> 
         
    </table> 
    <? 

    ?> 
    <table border="1" width="100%" id="table1"> 
    <tr><td><input type="button" name="CheckAll" value="Check All" 
    onClick="checkAll(affect)"> 
    </td><td><input type="button" name="UnCheckAll" value="Uncheck All" 
    onClick="uncheckAll(affect)"></td></tr> 
    </table> 
    <input type=submit value=go> 
    </form>


    صفحة اخرى

    ok.php
    كود PHP:

    //اتصال بالقاعدة هنا 


    foreach($_POST[check] as $val){ 
    $upd mysql_query("UPDATE MainNews SET main_value='$ss' WHERE id='$val' "); 
    echo 
    "<font face=tahoma size=1>$val تم تعين الخبر الرئيسي  <br>"



    انشاء الله يعمل معك





    __________________
    htaccess بكل بساطة

    الشفرة الموحدة "يونِكود"

    (إن من مفاسد هذه الحضارة أنها تسمي الاحتيال ذكاءً، والانحلال حرية، و"الرذيلة فناً" والاستغلال معونة) - مصطفى السباعي

  5. #5
    عضو فعال جدا
    تاريخ التسجيل
    Jun 2003
    المشاركات
    2,270


    لم اجرب الكود لاني في العمل الان ولاكن هذا نفس الكود الي كتبته انا ولاكنك ضفت check all

    المشكلة هي عند وضع اشارة صح على
    المربع يغبر لرقم الى 1 والشكلةانه اذا حذفت الصح عن مربع كانت قيمته 1 لن تتغير الى 0





    __________________


    عاشت فلسطين وعاشت المقاومة
    http://www.palintefada.com/arabic
    http://www.palissue.com/arabic
    موقع انتفاضة فلسطين - موقع القضية الفلسطينية
    الكاسر


  6. #6
    عضو فعال جدا
    تاريخ التسجيل
    Jun 2003
    المشاركات
    2,123


    كود PHP:
    $co "update MainNews set main_value=main_value+1 WHERE id='$val' ";
    $result_vis1 mysql_query ($co) or die ("Query failed"); 

    الامر سهل اخوي غير الاستعلام الى ما ترغب به





    __________________
    htaccess بكل بساطة

    الشفرة الموحدة "يونِكود"

    (إن من مفاسد هذه الحضارة أنها تسمي الاحتيال ذكاءً، والانحلال حرية، و"الرذيلة فناً" والاستغلال معونة) - مصطفى السباعي

  7. #7
    عضو فعال جدا
    تاريخ التسجيل
    Jun 2003
    المشاركات
    2,270


    السلام عليكم
    اخي اعتقد ان الامر اصعب قليلا من ما تتصور

    لانو الكود الي تفضلت وكتبته مشكورا يقوم بزيادة 1 لقيمة main_value انا ارغب من خلال checkbox تحديد من سوف يكون له رقم 1 ومن له رقم 0

    رقم 1 عنما اضع اشارة الصح عليه ورقم 0 عنما لا يكون الصح موجود

    وشكرا





    __________________


    عاشت فلسطين وعاشت المقاومة
    http://www.palintefada.com/arabic
    http://www.palissue.com/arabic
    موقع انتفاضة فلسطين - موقع القضية الفلسطينية
    الكاسر


  8. #8
    عضو نشيط
    تاريخ التسجيل
    Oct 2003
    المشاركات
    75


    و عليكم السلام ورحمة الله و بركاته ..

    كود PHP:
    $list_sub=mysql_query("UPDATE  MainNews SET main_value='1' WHERE id='$val' ");
    $list_sub1=mysql_query("UPDATE  MainNews SET main_value='0' WHERE id !='$val' "); 
    ما عمل هذين الإستعلامين؟

    الأول يقوم بوضع القيمة "1" في حقل main_value في الحقل صاحب الـid رقم $val
    و الثاني يقوم بوضع القيمة "0" في باقي الحقول و هذا من الشرط WHERE id!=$val

    و بم أنك وضعت هذان الإستعلامان في حلقة غير مشروطة فإنه في كل مرة يتم فيها استخدام الفورم ستكون النتيجة بعد إنتهاء آخر دورة وضع رقم "1" في آخر بيان لك في الجدول .

    أنت لم تستفد أبداً من الـ checkbox ..


    أحد الحلول الممكنة:

    1. أن تقوم أولا بوضع القيم "0" في الحقل main_value لكل الأخبار, و يكون هذا خارج الحلقة لكي يتم تنفيذه مرة واحدة.
    كود PHP:
    $list_sub=mysql_query("UPDATE  MainNews SET main_value='0'"); 
    2. أن أن تضع استعلام واحد مشروط داخل الحلقة تختبر فيه قيمة sub_id, بحيث إذا كانت قيمته لا تساوي NULL قم بوضع القيمة "1" في الحقل main_value للبيان صاحب الـid رقم sub_id
    كود PHP:
    if($val! = Null)
    $list_sub1=mysql_query("UPDATE  MainNews SET main_value='1' WHERE id ='$val' "); 
    أي قم بتغيير هذا اكود

    كود PHP:
            // اعتقد هنا الخلل
            
    foreach($_POST['sub_id'] AS $val){
            
    $list_sub=mysql_query("UPDATE  MainNews SET main_value='1' WHERE id='$val' ");
            
    $list_sub1=mysql_query("UPDATE  MainNews SET main_value='0' WHERE id !='$val' ");
                        } 
    بهذا:

    كود PHP:
            // اعتقد هنا الخلل
    $list_sub=mysql_query("UPDATE  MainNews SET main_value='0'");
            foreach(
    $_POST['sub_id'] AS $val){
    if(
    $val! = Null)
    $list_sub1=mysql_query("UPDATE  MainNews SET main_value='1' WHERE id ='$val' ");
                        } 

    هذا كله في حالة أنك تريد وضع القيمة "1" لأكثر من خبر, أما إذا كنت تريد تعيين خبر واحد فقط, قم باستبدال الـcheckbox inputs بالــradio inputs

    أرجو أن أكون قد أفدت .. وفقك الله أخي .






  9. #9
    عضو فعال جدا
    تاريخ التسجيل
    Jun 2003
    المشاركات
    2,270


    الله يخليك يا غالي يا Seanshi

    بارك الله فيك

    الحمد لله مشي الحال





    __________________


    عاشت فلسطين وعاشت المقاومة
    http://www.palintefada.com/arabic
    http://www.palissue.com/arabic
    موقع انتفاضة فلسطين - موقع القضية الفلسطينية
    الكاسر






ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض