اذهب إلى المحتوى
  • 0

[php] تعديل مصفوفة في قاعدة بيانات Mysql

محمد المصري12

السؤال

سلام عليكم

احاول عمل تعديل على مدخلات مصفوفة في قاعدة البيانات

لكن لم يفلح الامر

اولا : تعريف المتغيرات 

$image = uniqid() . $_FILES['image']['name'];

move_uploaded_file(

$_FILES["image"]["tmp_name"],

"../assets/images/common_cloth_composition/" . $image

);
		########
		
		$fabname = $_POST['fabname'];

        $des = $_POST['des'];

        $ready = $_POST['ready'];

        $gMeterW = $_POST['gMeterW'];

        $cShrink = $_POST['cShrink'];

        $lShrink = $_POST['lShrink'];

        $dressW = $_POST['dressW'];

		$Cweight = $_POST['Cweight'];

        $suppName = $_POST['suppName'];

        $suppType = $_POST['suppType'];

        $oName = $_POST['oName'];

        $suppDate = $_POST['suppDate'];

        $materialP = $_POST['materialP'];

        $dyeingP = $_POST['dyeingP'];

        $precc = $_POST['precc'];

        $meterPerKG = $_POST['meterPerKG'];

        $colorDegree = $_POST['colorDegree'];

        $pantone = $_POST['pantone'];

        $fiberO = json_decode($_POST['fiberO']);

        $fiberT = json_decode($_POST['fiberT']);

        $number = json_decode($_POST['number']);

        $mix = json_decode($_POST['mix']);

        $aNumber = json_decode($_POST['aNumber']);

ثانيا : - كود الإدخال 

$result = $conn->query("INSERT INTO common_cloth_composition( fabname,des, ready, gMeterW, cShrink, lShrink, dressW, Cweight,suppName, suppType, oName, suppDate, materialP, dyeingP, precc, image, color, pantone, meterperkg) VALUES ('$fabname','$des','$ready', '$gMeterW', '$cShrink', '$lShrink', '$dressW', '$Cweight', '$suppName', '$suppType', '$oName', '$suppDate', '$materialP', '$dyeingP', '$precc', '$image', '$colorDegree','$pantone','$meterPerKG')");

ثاليا :- ادخال مدخلات المصفوفة لقاعدة البيانات

 if ($result) {

            $iResult = $conn->query("SELECT * FROM common_cloth_composition ORDER BY id DESC LIMIT 1");

            while ($row = $iResult->fetch_assoc()) {

                $item = $row['id'];

            }

            $num = count($mix, COUNT_RECURSIVE);

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

                $fo = $fiberO[$i];

                $ft = $fiberT[$i];

                $nm = $number[$i];

                $mx = $mix[$i];

                $nmbr = $aNumber[$i];

                $result = $conn->query("INSERT INTO cloths_fabric(item, fiberO, fiberT, number, aNumber, mix) VALUES ('$item','$fo','$ft','$nm', '$nmbr','$mx')");

            }

            if ($result) {

                $result = $conn->query("SELECT * FROM common_cloth_composition ORDER BY id DESC LIMIT 1");

                while ($row = $result->fetch_assoc()) {

                    echo $row['id'];

                }

            }else {

                echo $conn->error;

            }

        } else {

            echo $conn->error;

        }

 

إلى الآن الامر ممتاز جدا و الادخال يعمل بدون اي مشكلة

و التعديل بالأمر العادي ايضا يعمل ايضا على الحقول الغير معرفة كمصفوفة

$edit = "UPDATE
    `common_cloth_composition`
SET
`fabname` = '$fabname',
`des` = '$des',
`ready` = '$ready',
`gMeterW`= '$gMeterW',
`cShrink`= '$cShrink',
`lShrink`= '$lShrink',
`dressW`= '$dressW',
`Cweight`= '$Cweight',
`meterperkg`= '$meterPerKG',
`suppName`= '$suppName',
`suppType`= '$suppType',
`oName`= '$oName',
`suppDate`= '$suppDate',
`materialP`= '$materialP',
`dyeingP`= '$dyeingP',
`precc`= '$precc',
`color`= '$colorDegree',
`pantone`= '$pantone'

".$imageAdds."

WHERE
  common_cloth_composition.id =".$id.";";

$result = $conn->query($edit);

if ($result) {

echo "done";

}

الفكرة اللي جاتلي انه اخليه ما يعملش update و لا شئ ، لا هاخليه يحذف القديم و يدخل الجديد من تاني عشان لو فيه زيادة او نقص في بيانات المصفوفة ما يحلش لخبطة 

و كتبت الكود كده

if ($result) {

            $iResult = $conn->query("SELECT * FROM common_cloth_composition ORDER BY id DESC LIMIT 1");

            while ($row = $iResult->fetch_assoc()) {

                $item = $row['id'];

            }

            $num = count($mix, COUNT_RECURSIVE);

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

                $fo = $fiberO[$i];

                $ft = $fiberT[$i];

                $nm = $number[$i];

                $mx = $mix[$i];

                $nmbr = $aNumber[$i];
				
$result0 = $conn->query("DELETE FROM `cloths_fabric` WHERE `cloths_fabric`.`item` = ".$id.";");
				
$result0 = $conn->query("INSERT INTO cloths_fabric(item, fiberO, fiberT, number, aNumber, mix) VALUES ('$item','$fo','$ft','$nm', '$nmbr','$mx')");

                }

            if ($result) {

echo "done";

            }

        } 

تنفيذ امر الحذف تم بنجاح ، لكن أمر الاضافة و لا كأنه شايفه 

ازاي اقدر احلها ، و لو فيه فكرة تانية افضل من فكرتي اتمنى تقترحوها عليا

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0
بتاريخ 40 دقائق مضت قال محمد المصري5:

نعم معكم حق ، لكنها لا تمنع تنفيذ الأمر

حاول تحديد اسم الجدول ب ` backticks,

لاحظ ان متغير الشرط if الأخير مختلف عن الذي يحفظ نتيجة الاستعلام.. هل تقصد result0

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...