مشكله في الاضافه الى قاعده البيانات الموجوده في mysqli عن طريق php

  • Bing

اخواني الاعزاء عملت form ادخال

ثم قمت با عمل قاعده بيانات بعد ذالك قمت بكتابه كود php من اجل ان تكون الاضافه الى قاعده البيانات من خلال form

لكن وجهتني مشكله خمس ايام ابحث عن حل ولم اجد

المشكله لا يظهر لي اي خطاء في المتصفح لكن لا يضيف اي بيانات الى قاعده البيانات

لو سمحتو احد عنده حل

هذا هي لاكواد

كود html

<!DOCTYPE html>

<html lang="en">

<head>

  <meta charset="UTF-8">

  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <meta http-equiv="X-UA-Compatible" content="ie=edge">

  <title>شاورمر - اضافه وجبات</title>

  <link rel="stylesheet" href="css of control.css">

</head>

<body>

<center>

<div class="min">

<form action="rinsert.php" method="post" enctype="multipart/form-data">

<h2> ادره الوجبات</h2>

<img src="logob.png" width= "100px" >

<br>

<br>

<input type="text" name='name'>

<br>

<br>

<input type="text" name='price'>

<br>

<input type="file" id="file" name='image' style='display:none;' >

<label for="file">صوره للوجبه</label>

<button  name='upload'> اضافه الوجبه</button>

<br>

<br>

<a href="foods.php">عرض كافه الوجبات</a>

</form>

</div>

</center>

</body>

</html>

كود الربط

<?php

$uu = "root";

$pp = "";

$cooon = new PDO("mysql:host=localhost; dbname=restfood;charset=utf8;",$uu,$pp);

if($cooon)

{

   echo 'yeees';

}

else {

   echo 'nooo';

}

?>

كود php

<?php

include('config.php');

?>

<?php

if(isset($_POST['upload'])){

  $NAME = $_POST['name'];

  $PRICE = $_POST['price'];

  $IMAGE = $_FILES['image'];

  $image_location = $_FILES['image']['tmp_name'];

  $image_name   =$_FILES['image']['name'];

  $image_up    = "iamges/".$image_name;

  $insrt = $cooon->prepare("INSERT INTO foodrest('id','fname','fprice','fimage') VALUES ('$NAME,'$PRICE',' $image_up')");

  var_dump( $insrt->errorInfo());

  if( $insrt){

    echo "<div class='alert alert-success'>"."تمت الاضافه"."</div>";

  }

  else{

    echo "<div class='alert alert-danger'>"."حدثت مشكله لم تتم الاضافه "."</div>";}

}

?>

النتائج في المتصفح

(3) { [0]=> string(0) "" [1]=> NULL [2]=> NULL }

تمت الاضافه


Mohammed_Fahmy3 أضف ردا

لقد قمت بإنشاء نموذج إدخال لإضافة وجبات إلى قاعدة بيانات مطعم شاورمر. ولكن يبدو أن هناك خطأ في كود php الخاص بك الذي يمنع إدخال البيانات إلى الجدول foodrest. لحل هذه المشكلة، أقترح عليك مراجعة النقاط التالية:

- تأكد من أن اسم الجدول وأسماء الأعمدة في عبارة الإدراج مطابقة لما هو موجود في قاعدة البيانات. يفضل استخدام اقتباسات مائلة (`) لتحديد أسماء الجدول والأعمدة في mysql, بتفصيل أكثر, يجب استخدام علامات التَّدقيق العكسي (backticks) (أو الـbackquotes) لتحديد أسماء الجداول والأعمدة. هذا يضمن أن الأسماء لا تتعارض مع الأوامر المحجوزة في MySQL ولا تحتوي على مسافات أو أحرف غير صالحة. كما يمكن استخدام علامات التنصيص الفردية (single quotes) أو الضعف (double quotes) للقيمة المُدخلة، على سبيل المثال:

INSERT INTO `table_name` (`column1`, `column2`, `column3`) VALUES ('value1', 'value2', 'value3');

- تأكد من أن عدد المتغيرات في قيم الإدراج مساوٍ لعدد الأعمدة في الجدول. في كودك، لديك أربعة أعمدة (id, fname, fprice, fimage) ولكن ثلاثة متغيرات فقط ($NAME, $PRICE, $image_up). يجب إضافة قيمة للعمود id أو جعله تلقائيًا (auto_increment) في قاعدة البيانات.

- تأكد من أن نوع البيانات في كل عمود يتوافق مع نوع المتغير المرسل إليه. في كودك، لديك عمود id من نوع int ولكن ترسل إليه قيمة نصية ($NAME). يجب تحويل قيمة $NAME إلى رقم صحيح أو استخدام عمود آخر لحفظ اسم الوجبة.

- تأكد من أن تحميل الصورة إلى المجلد iamges قد نجح قبل إضافتها إلى قاعدة البيانات. يمكنك استخدام دالة move_uploaded_file() لنقل الصورة من الموقع المؤقت ($image_location) إلى الموقع المستهدف ($image_up) والتحقق من نتيجتها.

- تأكد من أن تنفيذ عبارة الإدراج قد نجح بالفعل قبل طباعة رسالة النجاح. يمكنك استخدام دالة execute() لتنفيذ عبارة الإعداد ($insrt) والتحقق من نتيجتها.

وهذه بعض المصادر لتعلم أستعلامات SQL حتي لا تقع في مثل هذه الأخطاء مرة أخري.

اخي لقد عدلت الكود باالشكل التي واشتغل عندي

<?php

include('configg.php');

if(isset($_POST['uploade'])){

  $NAME = $_POST['name'];

  $PRICE = $_POST['price'];

  // $IMAGE = $_FILES['image'];

  // $image_location = $_FILES['image']['tmp_name'];

  // $image_name  = $_FILES['image']['name'];

  // upload variables

  $imag = $_FILES['image'];

  $itemimgName = $_FILES['image']['name'];

  $itemimgTmp = $_FILES['image']['tmp_name'];

  $explava = explode('.', $itemimgName);

  $endava = end($explava);

  $itemimgExten = strtolower($endava);

  $itemimg = rand(0, 10000) . '_' . $itemimgName;

  $insert = "INSERT INTO food(name , price , image) VALUES ('$NAME','$PRICE','$itemimg')";

  // var_dump($insert -> erorrInfo($insert));

  mysqli_query($con ,$insert);

  if(move_uploaded_file($itemimgTmp, "pp\\" . $itemimg)){

    echo "<script>alert('تمت الاضافه بنجاح')</script>";

  }

  else{

    echo "<script>alert('لم تتم الاضاقه هنالك مشكله')</script>";

  }

}

?>

اشكرك اخي انا مبتدىء

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