Omer Amad نشر 6 يوليو أرسل تقرير نشر 6 يوليو احتاج الى كود... فيه 5 خيارات كل خيار عنده الضغط عليه يظهر حقل إضافة صورة وعند ارسال الصورة كل صورة تذهب إلى عامود محدد... يعني أيضآ نحتاج 5 حقول مع سلكت 5 خيارات فيه... العامود الأول hoos1 العامود الثاني hoos2 العامود الثالث hoos3 العامود الرابع hoos4 العامود الخامس hoos5 2 اقتباس
0 Mustafa Suleiman نشر 6 يوليو أرسل تقرير نشر 6 يوليو ستحتاج إلى حلقة للتكرار وعرض الخيارات الخمسة، ثم حلقة أخرى في PHP للتكرار على تلك الحقول، وعليك تحديث البيانات الخاصة باستعلام قاعدة البيانات لوضع الصورة في العمود المناسب. <body> <?php if ($_SERVER["REQUEST_METHOD"] == "POST") { for ($i = 1; $i <= 5; $i++) { if (isset($_FILES["image" . $i]) && $_FILES["image" . $i]["error"] == 0) { $image_name = $_FILES["image" . $i]["name"]; $image_tmp = $_FILES["image" . $i]["tmp_name"]; move_uploaded_file($image_tmp, "uploads/" . $image_name); $sql = "UPDATE table_name SET hoos" . $i . " = '$image_name' WHERE id = id_name"; if ($conn->query($sql) === TRUE) { echo "تم تحميل الصورة " . $i . " بنجاح.<br>"; } else { echo "حدث خطأ أثناء تحميل الصورة " . $i . ": " . $conn->error . "<br>"; } } } $conn->close(); } ?> <form method="post" enctype="multipart/form-data"> <?php for ($i = 1; $i <= 5; $i++) { echo " <label for='option" . $i . "'>الخيار " . $i . ":</label> <select name='option" . $i . "'> <option value=''>اختر</option> <option value='option1'>الخيار 1</option> <option value='option2'>الخيار 2</option> <option value='option3'>الخيار 3</option> </select> <input type='file' name='image" . $i . "'><br><br> "; } ?> <input type="submit" value="إرسال"> </form> </body> عامًة وجود خمسة أعمدة منفصلة (hoos1، hoos2، ... hoos5) لخمس صور محتملة تصميم غير مرن وغير قابل للتطوير مستقبلاً. 1 اقتباس
0 محمد عاطف17 نشر 6 يوليو أرسل تقرير نشر 6 يوليو لماذا تريد 5 حقول مع 5 إختيارات ؟! إذا كان فقط سيتم رفع ملف واحد وإختيار خيار واحد حيث أن هذا النظام خاطئ وليس جيدا من حيث قاعدة البيانات التي تحجز أعمدة فارغة دون داعي ومن حيث كتابة أكواد كثيرة جدا ومستقبلا إذا أردت إضافة خيار جديد سيتوجب عليك إضافة عمود في قاعدة البيانات مع إضافة خيار أخر وحقل أخر و إضافة رفع الملف الجديد في الخادم . يمكنك إضافة فقط عمودين في قاعدة البيانات عمود خاص بالإختيار الذى تم إختياره وعمود أخر بمكان الصورة . أى مثلا عمود option مع عمود hoss . والآن هذا ملف الواجهة الأمامية html : <!DOCTYPE html> <html lang="ar"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <form action="upload.php" method="post" enctype="multipart/form-data"> <label for="option">من فضلك إختر من التالي:</label> <select id="option" name="option"> <option value="">اختر...</option> <option value="1">الخيار الأول</option> <option value="2">الخيار الثاني</option> <option value="3">الخيار الثاني</option> <option value="4">الخيار الثاني</option> <option value="5">الخيار الثاني</option> </select> <div> <label for="image">حقل الصورة:</label> <input type="file" name="image" accept="image/*"> </div> <button type="submit">إرسال</button> </form> </body> </html> وهذا هو كود الواجهة الخلفية upload.php : <?php if ($_SERVER["REQUEST_METHOD"] == "POST") { $option = $_POST["option"]; if ($option !in_array($option, [1,2,3,4,5])) { echo "من فضلك إختر خيار صحيح"; die(); } $path = "img". $option ."/"; $targetFile = $path . basename($_FILES["image"]["name"]); // الاتصال بقاعدة البيانات $servername = "localhost"; $username = "root"; $password = ""; $dbname = "db_name"; $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("فشل الاتصال: " . $conn->connect_error); } if (move_uploaded_file($_FILES["image"]["tmp_name"], $targetFile)) { $sql = "INSERT INTO table_name (hoss$option) VALUES ('$targetFile')"; if ($conn->query($sql) === TRUE) { echo "تم رفع الملف بنجاح"; } else { echo "عذراً، حدث خطأ أثناء رفع الملف."; die(); } $conn->close(); } else { echo "عذراً، حدث خطأ أثناء رفع الملف."; } } 1 اقتباس
0 Omer Amad نشر 6 يوليو الكاتب أرسل تقرير نشر 6 يوليو بتاريخ 14 دقائق مضت قال محمد عاطف17: لماذا تريد 5 حقول مع 5 إختيارات ؟! إذا كان فقط سيتم رفع ملف واحد وإختيار خيار واحد حيث أن هذا النظام خاطئ وليس جيدا من حيث قاعدة البيانات التي تحجز أعمدة فارغة دون داعي ومن حيث كتابة أكواد كثيرة جدا ومستقبلا إذا أردت إضافة خيار جديد سيتوجب عليك إضافة عمود في قاعدة البيانات مع إضافة خيار أخر وحقل أخر و إضافة رفع الملف الجديد في الخادم . يمكنك إضافة فقط عمودين في قاعدة البيانات عمود خاص بالإختيار الذى تم إختياره وعمود أخر بمكان الصورة . أى مثلا عمود option مع عمود hoss . والآن هذا ملف الواجهة الأمامية html : <!DOCTYPE html> <html lang="ar"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <form action="upload.php" method="post" enctype="multipart/form-data"> <label for="option">من فضلك إختر من التالي:</label> <select id="option" name="option"> <option value="">اختر...</option> <option value="1">الخيار الأول</option> <option value="2">الخيار الثاني</option> <option value="3">الخيار الثاني</option> <option value="4">الخيار الثاني</option> <option value="5">الخيار الثاني</option> </select> <div> <label for="image">حقل الصورة:</label> <input type="file" name="image" accept="image/*"> </div> <button type="submit">إرسال</button> </form> </body> </html> وهذا هو كود الواجهة الخلفية upload.php : <?php if ($_SERVER["REQUEST_METHOD"] == "POST") { $option = $_POST["option"]; if ($option !in_array($option, [1,2,3,4,5])) { echo "من فضلك إختر خيار صحيح"; die(); } $path = "img". $option ."/"; $targetFile = $path . basename($_FILES["image"]["name"]); // الاتصال بقاعدة البيانات $servername = "localhost"; $username = "root"; $password = ""; $dbname = "db_name"; $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("فشل الاتصال: " . $conn->connect_error); } if (move_uploaded_file($_FILES["image"]["tmp_name"], $targetFile)) { $sql = "INSERT INTO table_name (hoss$option) VALUES ('$targetFile')"; if ($conn->query($sql) === TRUE) { echo "تم رفع الملف بنجاح"; } else { echo "عذراً، حدث خطأ أثناء رفع الملف."; die(); } $conn->close(); } else { echo "عذراً، حدث خطأ أثناء رفع الملف."; } } شكرآ جزيلاً على توضيح لكن حقيقة كل خيار يحتاج عامود توضع فيه الصورة الخاصة فيه كل خيار يختلف عن الاخر بتاريخ 25 دقائق مضت قال Mustafa Suleiman: ستحتاج إلى حلقة للتكرار وعرض الخيارات الخمسة، ثم حلقة أخرى في PHP للتكرار على تلك الحقول، وعليك تحديث البيانات الخاصة باستعلام قاعدة البيانات لوضع الصورة في العمود المناسب. <body> <?php if ($_SERVER["REQUEST_METHOD"] == "POST") { for ($i = 1; $i <= 5; $i++) { if (isset($_FILES["image" . $i]) && $_FILES["image" . $i]["error"] == 0) { $image_name = $_FILES["image" . $i]["name"]; $image_tmp = $_FILES["image" . $i]["tmp_name"]; move_uploaded_file($image_tmp, "uploads/" . $image_name); $sql = "UPDATE table_name SET hoos" . $i . " = '$image_name' WHERE id = id_name"; if ($conn->query($sql) === TRUE) { echo "تم تحميل الصورة " . $i . " بنجاح.<br>"; } else { echo "حدث خطأ أثناء تحميل الصورة " . $i . ": " . $conn->error . "<br>"; } } } $conn->close(); } ?> <form method="post" enctype="multipart/form-data"> <?php for ($i = 1; $i <= 5; $i++) { echo " <label for='option" . $i . "'>الخيار " . $i . ":</label> <select name='option" . $i . "'> <option value=''>اختر</option> <option value='option1'>الخيار 1</option> <option value='option2'>الخيار 2</option> <option value='option3'>الخيار 3</option> </select> <input type='file' name='image" . $i . "'><br><br> "; } ?> <input type="submit" value="إرسال"> </form> </body> عامًة وجود خمسة أعمدة منفصلة (hoos1، hoos2، ... hoos5) لخمس صور محتملة تصميم غير مرن وغير قابل للتطوير مستقبلاً. شكراً جزيلاً جزاك الله خير الجزاء اقتباس
السؤال
Omer Amad
احتاج الى كود... فيه 5 خيارات كل خيار عنده الضغط عليه يظهر حقل إضافة صورة وعند ارسال الصورة كل صورة تذهب إلى عامود محدد... يعني أيضآ نحتاج 5 حقول مع سلكت 5 خيارات فيه...
العامود الأول hoos1
العامود الثاني hoos2
العامود الثالث hoos3
العامود الرابع hoos4
العامود الخامس hoos5
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.