Inserting data to mysql wihtout using form!
السلام عليكم ورحمة الله وبركاتة
أخوكم في الله مبتدئ
واعمل على برمجة موقع بسيط لغرض التعلم
لدي صفحة تعرض مجموعة وظائف عن طريق استعلام جدول اسمه jobs في الصفحة هذي مررت job_id ,, يعني زري كذا apply.php?apply=$id بحيث اذا المستخدم ضغط على اللينك يتم توجيهه الى صفحة اخرى فيها الفورم الخاصه بالمتقدم
من صفحة apply.php أستخرج الاي دي بأستخدام GET الى هنا كويس
وأستعملها في استعلام لقعادة البيانات بحيث تسترجع مسمى الوظيفة وخزنتها في متغير $job_title
لكن مشكلتي انو عندما المستخدم يدخل بياناته الشخصية وأدخلها في الداتا بيس فقط اللي يتخزن معلوماته بدون مسمى الوظيفه
من خلال أستنتأجي والتعديل في الكود تبين لي ان المشكلة ان الاستعلام اللي يسترجع المسمى الوظيفي مايتخزن في قاعدة البيانات بسبب انها مب بالفورم أصلا ,, حاولت أدور طريقة إني أخزنها بدون فورم بس ماش مارضت تمشي معي
لقيت حل بأستخدام ajax بس ماني فاهم الكود ولا اعرف كيف يستخدم ,, لذلك هل في طريقة أخرى؟
وشاكر لكم جميعآ
ساعد بالإجابة
"إن في قضاء حوائج الناس لذة لا يَعرفها إلا من جربها، فافعل الخير مهما استصغرته فإنك لا تدري أي حسنة تدخلك الجنة."
الإجابات (6)
وعليكم السلام ورحمة الله وبركاته
ياريت تزودنا بالأكواد الي تشتغل عليها وفيها المشكلة اتوقع انك ماحفظت القيم بالنموذج بالشكل الصحيح او لم تقم بحفظها بالشكل السليم عشان نقدر نساعدك لازم نشوف الأكواد استخدم زر اضافة الأكواد عشان التنسيق وسهولة القراءة
بالنسبه لطرق أخرى كيف ترسل البيانات لقاعدة البيانات بدون نموذج عندك ajax وعندك api ولكن الأفضل نموذج وخاصه اذا انت محتاج من المستخدم يعبي البيانات ثم يحفظها عشان كذا عطنا الأكواد الي انت شغال عليها وباذن الله نساعدك بالحل قد مانقدر
شكرا اخوي ع الرد
صفحة الاندكس تعرض المعلومات وفي رابط يوجهك على صفحة أخرى ,,
من صفحة الاندكس مررت id بحيث اني استخدم get في الصفحة الثانيه واستعلام عنها في قاعدة البيانات ثم تخزينها لم يتم الضغط على زر submit
لكن الاشكالية ان التخزين يكون فقط للمعلومات المدخله بالفورم اي شي خارجه مايتخزن
وهذا الكود تحت
اذا ممكن استخدام زر اضافة الأكواد هنا بالمحرر افضل من اخذ صوره للكود وياريت وضع الكود كامل
بالنسبة لمشكلتك انت اخذت جميع المعلومات من النموذج وخزنتها بمتغيرات ولكن مااخذت المعلومات الي تريدها من الاستعلام لتخزينها ايضا فياريت الكود عشان اقدر انسخه عندي واشتغل على حل لك لاني بعد مااشوف اكواد النموذج الي راح يعبيها المستخدم او طريقة عمل مشروعك بشكل واضح
index.php
<?php session_start(); ?>
<?php require("db.php"); ?>
<html>
<head>
<title>Jobs</title>
</head>
<body>
<?php
$sql = "SELECT * FROM jobs";
$query = mysqli_query($con,$sql);
echo "<table border='2' align='center' width='600'>
<tr>
<th>Job Title</th>
<th>Field</th>
<th>No</th>
<th>Years Of Experiance</th>
<th>Qualification</th>
<th>Job Duty</th>
</tr>";
while($row = mysqli_fetch_array($query)){
$job_id = $row['job_id'];
echo "<tr>";
echo "<td>" .$row['job_title'] . "</td>";
echo "<td>" . $row['job_field'] . "</td>";
echo "<td>" .$row['no_emps'] ."</td>";
echo "<td>".$row['years_ex'] ."</td>";
echo "<td>".$row['job_qua']."</td>";
echo "<td>".$row['job_duty']."</td>";
echo "<td><a href='apply.php?applay=$job_id'>Applay<a/></td>"."</br>";
echo "</tr>";
}
echo "</table>";
?>
</body>
</html>
apply.php
<?php require("db.php"); ?>
<html>
<head>
<title>
Applay Job
</title>
</head>
<body>
<form action="apply.php" method="post">
<table border="2" align="center" style="width:800px; margin-top:50px;">
<tr>
<td colspan="8" align="center">Applay To Job</td>
</tr>
<tr>
<td style="width:200px;">Enter First Name <span style="color:red;">*</span></td>
<td><input type="text" name="f_name" style="width:600px;"/></td>
</tr>
<tr>
<td style="width:200px;">Enter Second Name <span style="color:red;">*</span></td>
<td><input type="text" name="l_name" style="width:600px;"/></td>
</tr>
<tr>
<td style="width:200px;">Enter Age <span style="color:red;">*</span></td>
<td><input type="text" name="age" style="width:600px;"/></td>
</tr>
<tr>
<td style="width:200px;">Qualification<span style="color:red;">*</span></td>
<td><input type="text" name="qual" style="width:600px;"/></td>
</tr>
<tr>
<td style="width:200px;">Years Of Ecperince<span style="color:red;">*</span></td>
<td><input type="text" name="exp" style="width:600px;"/></td>
</tr>
<tr>
<td colspan="8" align="center">
<input type="submit" name="submit" value="apply" />
</td>
</tr>
</table>
</form>
</body>
</html>
<?php
if(isset($_GET['applay'])){
$get_id = $_GET['applay'];
$get_job_title = "select job_title from jobs where job_id = $get_id";
$job_ti = mysqli_query($con,$get_job_title);
while($emp_job = mysqli_fetch_assoc($job_ti)){
$e_job = $emp_job['job_title'];
}
}
if(isset($_POST['submit'])){
$f_name = $_POST['f_name'];
$l_name = $_POST['l_name'];
$age = $_POST['age'];
$qual = $_POST['qual'];
$exp = $_POST['exp'];
$insert_sql = "INSERT INTO cand (f_name, l_name, age, qual, yars_of_exp, job_title) VALUES ('$f_name', '$l_name', '$age', '$qual', '$exp' , '$e_job')";
$insert_can = mysqli_query($con,$insert_sql);
echo $e_job;
if($insert_can){
echo "<script>alert('Your information has been saved!')</script>";
echo "<script>window.open('apply.php','self')</script>";
}else{
echo "<script>alert('Error in saving your information!')</script>";
}
}
?>
مشكلتي في apply.php
الا وهي عند محاولة تخزين المتغير في جدول وو لايتخزن فقط المعلومات المدخله من قبل المستخدم
وعلى حسب مافهمت انها بسبب خارج الفورم
شاكر لك
جرب غير
<form action="apply.php" method="post">
الى
<form action="" method="post">
وعطني خبر لانك جالس ترسل الملفات الى apply.php عن طريق النوذج على شكل POST انت بهالحاله حذفت كل البيانات الي سبق تخزينها داخل الملف من قبل بواسطة GET لكن لما ترسل النموذج لنفس الصفحه ماراح يحذف بيانات GET الي مخزنه بالرابط وجايه من الصفحه الي قبلها وخاصه انك حاط النموذج و كود php لتخزين البيانات بنفس الملف
بالنسبه لبقية الأكواد شغاله تمام ولكن فيه طرق افضل ممكن تعملها خاصه اذا تحب ترسل البيانات بنموذج لصفحه ثانيه
مثال انت بصفحة index.php ترسل المستخدم برابط وفيه مخزن applay وداخله رقم ID للوظيفه ممكن بدل ماتحط رقم ID تحط عنوان الوظيفة مباشرة وتخزنها ضمن حقل مخفي بالنموذج وترسلها مع البيانات مثلها مثل بقية الحقول على هيئة POST انت بكذا توفر على نفسك اكواد كثيره اهمها - استعلام query لقاعدة البيانات وتجلب بيانات الوظيفه ثم تخزن عنوان الوظيفه بمتغير وبعدين تستخدم المتغير لحفظ عنوان الوظيفه ضمن البيانات الثانيه
وفيه طرق كثيره ابحث عن الي يناسبك ولاتنسى تسوي حمايه للبيانات بحيث انك تسوي Validation و Sanitization للبيانات قبل حفظها بقاعدة البيانات ولاتنسى اعداد البيانات قبل حفظها يحميك من ثغرات SQL Injections شوف هذا الدرس وبقية الدروس بهذه السلسلة لتستفيد
اشكرك أخوي والله يجعلها في موزاين حسناتك
لكن اعذرني مبتدئ ولافهمت النقطه هذي اللي ذكرتها
مثال انت بصفحة index.php ترسل المستخدم برابط وفيه مخزن applay وداخله رقم ID للوظيفه ممكن بدل ماتحط رقم ID تحط عنوان الوظيفة مباشرة وتخزنها ضمن حقل مخفي بالنموذج وترسلها مع البيانات مثلها مثل بقية الحقول على هيئة POST انت بكذا توفر على نفسك اكواد كثيره اهمها - استعلام query لقاعدة البيانات وتجلب بيانات الوظيفه ثم تخزن عنوان الوظيفه بمتغير وبعدين تستخدم المتغير لحفظ عنوان الوظيفه ضمن البيانات الثانيه
يعني اضع get جو الفورم ؟
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !