الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تحديث حقل فى جدول بدلاله جدول اخر

بدأه fatmaali في 4 فبراير 2014 · 5 رد · 772 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم سوال جديد

 

لدي استعلام يجلب من قاعدة البيانات على شكل

 

جدول ارقام واسماء لكن غير متشابهه والارقام المتشابهة يكون عليها شطب بمعنى انى اى رقم متشابه يتم شطبة لكن يظل متواجد بالنواتج

 

والارقام الغير متشابهة تظل بلا شطب

 

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

 

 

طبعا قام بمساعدتى فى هذا الاستعلام ليصل لهذه النتيجة وله الفضل بذلك بعد الله سبحانه تعالى 

 

الاخ الفاضل

 

مستر برمجة

 

الكود مع شرحة لمن يستطيع المساعدة بالامر

 

 

الحقل المراد عمل ابديت له فى الجدول

 

 

وتغير قيمته من 0 الي 1 هوا tap

 

نوع الحقل

 

int

 

الجدول هوا arc

 

وللتوضيح مرة اخرى اريده عندما يستعلم على النتائج ويجد ان الارقام متتشابهة ويقوم بشطبها يحدث هذا الجدول الخاص بالرقم المشطوب من 0 الي 1 اما الغير متاشبه لا يحدثها ويتركها كما هي

 

قمت باضافة هذا السطر بالاستعلام الاساسي لكنه لم يعمل بالشكل المطلوب

 

السطر المضاف

$up_save =mysql_query("UPDATE arc SET tap=1 WHERE temp ON arc.mzayda=temp.mzayda and prod_id='".intval($_REQUEST[pp]).");

ليصبح الكود كامل حق الصفحة بهذا الشكل

<?php
include("inc/config.php");
$query2 = mysql_query("SELECT id_arc FROM arc INNER JOIN( SELECT mzayda FROM arc GROUP BY mzayda HAVING COUNT(mzayda) > 1) temp ON arc.mzayda=temp.mzayda");
$up_save =mysql_query("UPDATE arc SET tap=1 WHERE temp ON arc.mzayda=temp.mzayda and prod_id='".intval($_REQUEST[pp]).");
        while ($row = mysql_fetch_assoc($query2)) {
            $res2[] = $row;
        }
        $repeated = array();
        foreach ($res2 as $value) {
            foreach ($value as $value2) {
                $repeated[] = $value2;
            }
        }

        if (!$count3rod) {
            $count3rod = 0;
        }
        $TotalRecords = mysql_query("SELECT * FROM arc  where prod_id=6 ORDER BY id_arc desc");
        $check_end = mysql_num_rows($TotalRecords);
        $pages1 = 50;
        $check_end = ceil($check_end / $pages1);
        $limit = ($count3rod > 1) ? ($count3rod - 1) * $pages1 : 0;
        $selectt = "SELECT * FROM arc  where prod_id=6  ORDER BY id_arc desc LIMIT $limit,$pages1 ";
        $Result = mysql_query($selectt);
        $account3rod = mysql_num_rows($Result);
        $sd = 0;
        while ($Roow = mysql_fetch_assoc($Result)) {
            $sd++;
            extract($Roow);
            ?>


            <table border="1" width="100%">
                <tr>
                    <td>
                        <?php
                        if (in_array($Roow['id_arc'], $repeated)) {
                            echo "<div style='text-decoration:line-through; color:red'> $Roow[mzayda] </div>";
                        } else {
                            echo "<div> $Roow[mzayda] </div>";
                        }
                        ?>
                    </td>
                    <td><?php echo $prodname; ?></td>
                    <td><?php echo $country_id; ?></td>
                    <td><?php echo $name; ?></td>
                    <td><?php echo $city_id; ?></td>
                </tr>
            </table>

    <?php
    $rod++;

    if ($rod == 1) {
        ?>
                <?php
                $rod = 0;
            }
        }
        ?>
        <?php
        echo"</p>";
        echo"<div class='nav2' align='center' dir='rtl'  ><b><a href='index.php?count3rod=1'>الاولى</a></div>";
        $i = 1;
        $next = ($count3rod > 5) ? $count3rod - 5 : 1;
        while ($next <= ($count3rod + 5) && $next <= $check_end) {
            if ($count3rod == $next) {
                echo"
        <div class='navc' align='center' dir='rtl'  >
        $next</div>";
            } else {
                echo"<div class='nav2' align='center' dir='rtl'  ><a href='index.php?count3rod=$next' >$next</a></div>";
            }
            $next++;
            $i++;
        }
        echo"<div class='nav2' align='center' dir='rtl'  ><a href='index.php?count3rod=$check_end'>الاخيرة</a></div>";
        ?>

تم تعديل هذه المشاركة بواسطة fatmaali في 5 فبراير 2014 في 01:33

#2

تفضلى أختى

 

هذا الاستعلام يقوم بتحديث قيمة tap من 0 إلى 1 فى حالة كان هذا الحقل مكرر .

mysql_query("UPDATE arc SET tap = '1' WHERE mzayda IN (SELECT mzayda FROM (SELECT mzayda FROM arc WHERE prod_id='1' GROUP BY mzayda HAVING count(*) > 1) AS temp)");
1

||||||||||||||||||||||||||||||||||||


||||||||||||||||||||||||||||||||||||


egypt_coa.gif


||||||||||||||||||||||||||||||||||||


||||||||||||||||||||||||||||||||||||

#3

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

 

الكود يعمل بشكل سليم شكراً لك

#4

اخي الفاضل مستر برمجة سؤال صغير اذا تكرمت

 

 

لدي فى هذا الكود خطاء بسيط

 

 

Warning: Invalid argument supplied for foreach() in C:\AppServ\www\testnew\mazad_details.php on line 727

 

هذا الخطاء الذي يظهر

 

وهذا السطر الذي به الخطاء

 

foreach ($res2 as $value) {

 

 

ويظهر هذا الخطاء عندما لا يكون هناك اى مزادات او مدخلات مضافة او هناك مزادات غير متشابهة

<?php

$query2a = mysql_query("SELECT id_arc FROM arc INNER JOIN( SELECT mzayda FROM arc GROUP BY mzayda HAVING COUNT(mzayda) >1) temp ON arc.mzayda=temp.mzayda");

        while ($rowali = mysql_fetch_assoc($query2a)) {
            $res2[] = $rowali;
        }
        $repeated = array();
        foreach ($res2 as $value) {
            foreach ($value as $value2) {
                $repeated[] = $value2;
            }
        }

        if (!$count3rod) {
            $count3rod = 0;
        }
        $aliid = (int) $_GET['pp']; 
        $TotalRecords = mysql_query("SELECT * FROM arc  where prod_id='$aliid' ORDER BY id_arc desc");
        $check_end = mysql_num_rows($TotalRecords);
        $pages1 = 50;
        $check_end = ceil($check_end / $pages1);
        $limit = ($count3rod > 1) ? ($count3rod - 1) * $pages1 : 0;
        $aliid = (int) $_GET['pp']; 
        $selectt = "SELECT * FROM arc  where prod_id='$aliid'  ORDER BY id_arc desc LIMIT $limit,$pages1 ";
        $Result = mysql_query($selectt);
        $account3rod = mysql_num_rows($Result);
        $sd = 0;
        while ($Roow = mysql_fetch_assoc($Result)) {
            $sd++;
            extract($Roow);
            ?>

تم تعديل هذه المشاركة بواسطة fatmaali في 6 فبراير 2014 في 11:06

#5

أختى الكريمة

 

لابد من تأمين هذا الكود بحيث يكون فية شرط فى البداية ودة شئ أساسى فى أى برمجة لابد من عملة ( إذا كان يوجد مدخلات مضافة فى قاعدة البيانات, فقم بتنفيذ هذا الكود, أما إذا كان لا يوجد أى بيانات مضافة فلا يتم تنفيذ هذا الكود ).

 

الخطوات (نظرى):

  • عمل أستعلام فى قاعدة البيانات للتأكد من وجود بيانات أم لا .
  • نستخدم الدالة num_rows أو غيرها لجلب عدد البيانات المخزنة .
  • نعمل شرط إذا كان عدد البيانات الخارجة أكبر من صفر, معنى ذلك أن فية بيانات, يبقى ينفذ الكود الداخلى .
  • وإذا كان عدد البيانات صفر أو أصغر يبقى ما  فيش بيانات, معنى ذلك أنك لا تنفذى الكود.

 

بس هو دة الحل النظرى, لم يتبقى إلا أنك تطبقية عملى .

1

||||||||||||||||||||||||||||||||||||


||||||||||||||||||||||||||||||||||||


egypt_coa.gif


||||||||||||||||||||||||||||||||||||


||||||||||||||||||||||||||||||||||||

#6

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

<?php 
$max = $hade;
$query2 = mysql_query("SELECT MAX(mzayda) AS highNum FROM arc WHERE prod_id='$pp' and mzayda <= $max and tap=0 ");
$accounts=mysql_num_rows($query2);
if($accounts==0)
{

echo "<b><font color='#ff000'>0</font></b>"; 
}

else

{

echo "<b><font color='#ff000'>$accounts</font></b>"; 
}
?>

مواضيع مشابهة