Inserting data to mysql wihtout using form!

يوسف الرحيمي • منذ 8 سنوات

السلام عليكم ورحمة الله وبركاتة

أخوكم في الله مبتدئ

واعمل على برمجة موقع بسيط لغرض التعلم

لدي صفحة تعرض مجموعة وظائف عن طريق استعلام جدول اسمه jobs  في الصفحة هذي مررت job_id ,, يعني زري كذا   apply.php?apply=$id بحيث اذا المستخدم ضغط على اللينك يتم توجيهه الى صفحة اخرى فيها الفورم الخاصه بالمتقدم

من صفحة apply.php  أستخرج الاي دي بأستخدام GET  الى هنا كويس

وأستعملها في استعلام لقعادة البيانات بحيث تسترجع مسمى الوظيفة وخزنتها في متغير $job_title

لكن مشكلتي انو عندما المستخدم يدخل بياناته الشخصية وأدخلها في الداتا بيس فقط اللي يتخزن معلوماته بدون مسمى الوظيفه

من خلال أستنتأجي والتعديل في الكود تبين لي ان المشكلة ان الاستعلام اللي يسترجع المسمى الوظيفي مايتخزن في قاعدة البيانات بسبب انها مب بالفورم أصلا ,, حاولت أدور طريقة إني أخزنها بدون فورم بس ماش مارضت تمشي معي

لقيت حل بأستخدام ajax بس ماني فاهم الكود ولا اعرف كيف يستخدم ,, لذلك هل في طريقة أخرى؟

 

وشاكر لكم جميعآ

كلمات دليلية:

ساعد بالإجابة

"إن في قضاء حوائج الناس لذة لا يَعرفها إلا من جربها، فافعل الخير مهما استصغرته فإنك لا تدري أي حسنة تدخلك الجنة."

الإجابات (6)

Ali Majrashi • منذ 8 سنوات

وعليكم السلام ورحمة الله وبركاته

ياريت تزودنا بالأكواد الي تشتغل عليها وفيها المشكلة اتوقع انك ماحفظت القيم بالنموذج بالشكل الصحيح او لم تقم بحفظها بالشكل السليم عشان نقدر نساعدك لازم نشوف الأكواد استخدم زر اضافة الأكواد عشان التنسيق وسهولة القراءة 

بالنسبه لطرق أخرى كيف ترسل البيانات لقاعدة البيانات بدون نموذج عندك ajax وعندك api ولكن الأفضل نموذج وخاصه اذا انت محتاج من المستخدم يعبي البيانات ثم يحفظها عشان كذا عطنا الأكواد الي انت شغال عليها وباذن الله نساعدك بالحل قد مانقدر

يوسف الرحيمي • منذ 8 سنوات

شكرا اخوي ع الرد

صفحة الاندكس تعرض المعلومات وفي رابط يوجهك على صفحة أخرى ,,

من صفحة الاندكس مررت id بحيث اني استخدم get  في الصفحة الثانيه واستعلام عنها في قاعدة البيانات ثم تخزينها لم يتم الضغط على زر submit

لكن الاشكالية ان التخزين يكون فقط للمعلومات المدخله بالفورم اي شي خارجه مايتخزن

 

وهذا الكود تحت

index.png

apply.png

Ali Majrashi • منذ 8 سنوات

اذا ممكن استخدام زر اضافة الأكواد هنا بالمحرر افضل من اخذ صوره للكود وياريت وضع الكود كامل 

add-code.png

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

 

يوسف الرحيمي • منذ 8 سنوات

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

الا وهي عند محاولة تخزين المتغير في جدول وو لايتخزن فقط المعلومات المدخله من قبل المستخدم

وعلى حسب مافهمت انها بسبب خارج الفورم

 

شاكر لك

 

Ali Majrashi • منذ 8 سنوات

جرب غير 


<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 شوف هذا الدرس وبقية الدروس بهذه السلسلة لتستفيد 

https://3alam.pro/series/php/php-databases/mysql/prepared-statements/

 

يوسف الرحيمي • منذ 8 سنوات

اشكرك أخوي والله يجعلها في موزاين حسناتك

لكن اعذرني مبتدئ ولافهمت النقطه هذي اللي ذكرتها

 

 

مثال انت بصفحة index.php ترسل المستخدم برابط وفيه مخزن applay وداخله رقم ID للوظيفه ممكن بدل ماتحط رقم ID تحط عنوان الوظيفة مباشرة وتخزنها ضمن حقل مخفي بالنموذج وترسلها مع البيانات مثلها مثل بقية الحقول على هيئة POST انت بكذا توفر على نفسك اكواد كثيره اهمها - استعلام query لقاعدة البيانات وتجلب بيانات الوظيفه ثم تخزن عنوان الوظيفه بمتغير وبعدين تستخدم المتغير لحفظ عنوان الوظيفه ضمن البيانات الثانيه

 

يعني اضع get جو الفورم ؟

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !