الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة في عملية البحث في البيانات..

مغلق
بدأه the_hope في 17 سبتمبر 2007 · 13 رد · 1,313 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم...

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

وهذا هو كود صفحة search.html

<form name="search3" action="search3.php" method="post">

<table width="40%" border="0" cellspacing="4" cellpadding="4" align="center">
<tr>
<td align="center">
<h4>Search</h4>
</td>
</tr>
  <tr>
	<td align="center"><input name="flatnumber" type="text" /></td>
  </tr>
  <tr>
	<td align="center"><input name="submit" type="submit" value="Submit" /></td>
  </tr>
</table>
</form>

وهذا كود search.php

<?php 
$flatnumber='NO data sent';
 $db=mysql_connect('localhost','root','') or die(mysql_error());
  mysql_select_db('company');


	echo'<table width="670" border="1" cellspacing="0" cellpadding="0" align="center">';
	echo'<tr bgcolor="#0090A8">';
	echo'<td align="center" class="tableheader">ID</td>';
	echo'<td align="center" bgcolor="#0090A8" class="tableheader">Flat Number</td>';
	echo'<td align="center" class="tableheader">Reserved</td>';
	echo'</tr>';

	 /*additional data checking and striping*/
   $result=mysql_query("SELECT * FROM flats WHERE flatnumber='{$_POST['flatnumber']}'",$db) or die(mysql_error());

/*If there is a matching row*/
 if(mysql_num_rows($result) > 0)
{
  $_SESSION['flatnumber'] = $_POST['flatnumber'];
   $ID = $row['ID']; 
   $reserv = $row['reserv']; 
   echo $flatnumber;
}
else
{
 $flatnumber2= 'this is flat not exist';
 echo '<div align="center"><font size="5" color="red">'.$flatnumber2.'</font></div>'; 

}

 echo '<tr>';
 echo '<td align=center>' .$ID. '</td>';
	echo '<td align=center> ' .$flatnumber. '</td>';
	echo '<td align=center>' .$reserv. '</td>';
 echo "</tr>";
 echo'</table>';
 mysql_free_result($result); 
	mysql_close($db);
//you may echo the data anywhere in the file

?>

تم تعديل هذه المشاركة بواسطة the_hope في 17 سبتمبر 2007 في 21:13

#2

أخى the_hope

أولا بالنسبة لملف search.php

الأخطاء هو أنك لم تقم بكتابة كود عرض تلك البيانات و بالتالى يتم تعويض تلقائيا بـ NO data sent

سنقوم بإستخدام while مع mysql_fetch_arrayلعرض جميع البيانات الناتجة عن البحث واليك الأكواد مع الشرح

<?php
$flatnumber='NO data sent';
$db=mysql_connect('localhost','root','') or die(mysql_error());
  mysql_select_db('company');


	echo'<table width="670" border="1" cellspacing="0" cellpadding="0" align="center">';
	echo'<tr bgcolor="#0090A8">';
	echo'<td align="center" class="tableheader">ID</td>';
	echo'<td align="center" bgcolor="#0090A8" class="tableheader">Flat Number</td>';
	echo'<td align="center" class="tableheader">Reserved</td>';
	echo'</tr>';

	 /*additional data checking and striping*/
   $result=mysql_query("SELECT * FROM flats WHERE flatnumber='{$_POST['flatnumber']}'",$db) or die(mysql_error());

أولاً : تركت هذا الجزء كما هو

ثانياً :

if(mysql_num_rows($result) > 0)
{

هنا معناها اذا كان عدد السجلات أكبر من الصفر

ثالثا :

	while($row=mysql_fetch_array($result))
	{
   $ID = $row['ID'];
   $reserv = $row['reserv'];
   $flatnumber=$row['flatnumber'];


echo '<tr>';
echo '<td align=center>' .$ID. '</td>';
	echo '<td align=center> ' .$flatnumber. '</td>';
	echo '<td align=center>' .$reserv. '</td>';
echo "</tr>";
}
echo'</table>';

وهنا لو كان عدد السجلات اكبر من الصفر يتم عرضها باستخدام while بحث مع كل سجل فى قاعدة البيانات بقوم بعمل صف جديد فى الجدول وضع قيمة السجل بها و بعد انتهاء السجلات يتم غلق الجدول ب </table>

رابعا:

}

else
{

وهنا بمعنا لو غير ذلك حيث انه يساوى الصفر نقوم بالتالى

خامسا :

$flatnumber2= 'this is flat not exist';
echo '<div align="center"><font size="5" color="red">'.$flatnumber2.'</font></div>';
}

نخرج برسالة بانه لا توجد بيانات بحث

بالنسبة لملف search.html

هناك خطأ بسيط وهو انك قمت بكتابة فورم الارسال الى search3.php و ليس search.php

ولله التوفيق التعديل بالمرفقات ........

search.rar

#3

شكراً جزيلا...جزيلا أخي القادري...على المساعدة ...

#4

عفوا............ :rolleyes:

-waf

#5

اخواني اتمنى تعديل السكربت على قاعدة البيانات و التي هي

-- phpMyAdmin SQL Dump

-- version 2.9.1.1

-- http://www.phpmyadmin.net

--

-- المزود: localhost

-- أنشئ في: 07 ديسمبر 2007 الساعة 13:44

-- إصدارة المزود: 5.0.22

-- PHP إصدارة: 4.4.4

--

-- قاعدة البيانات: `mail`

--

-- --------------------------------------------------------

--

-- بنية الجدول `admin`

--

CREATE TABLE `admin` (

`id` int(4) NOT NULL auto_increment,

`realname` varchar(65) NOT NULL default '',

`username` varchar(65) NOT NULL default '',

`email` varchar(65) NOT NULL default '',

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=cp1256 AUTO_INCREMENT=5 ;

بحيث يبحث عن الكلمة المراد بحثها في كل من realname و username و email

و اذا وجد مطابق البحث يظهر بيانات الصف كامل realname و username و email

و اذا لو يجد تظهر له رسالة خطاء

تم تعديل هذه المشاركة بواسطة man in dark في 10 ديسمبر 2007 في 17:58

#6

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

يعطيكم العافية يا شباب

اخي man in dark تفضل هاد السكريبت اللي طلبته في المجلد المرفق .

ولا تنسانا من الدعاء

بالتوفيق ان شاء الله .

search_pro.rar

تم تعديل هذه المشاركة بواسطة عدوووون في 11 ديسمبر 2007 في 01:07

سبحان الله والحمد لله ولا اله الا الله و الله اكبر

اللهم صلي وسلم وبارك على سيدنا محمد وعلى اله وصحبه وسلم

#7

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

#8

اخوي عدوووون

السكربت يظهر نتيجة واحدة فقط

انا لدي قاعدة بيانات بهذا الشكل

realname username email

mm6 mm6@ff.com محمد علي

mm6 mm6@ff.com علي محمد

مثلاً لو ابحث عن اسم محمد فقط يظهر لي الناتج

realname username email

mm6 mm6@ff.com محمد علي

انا اريد ان يظهر لي جميع الاسماء التي تشمل على محمد اي يكون الناتج

realname username email

mm6 mm6@ff.com محمد علي

mm6 mm6@ff.com علي محمد

#9

اخواني ارجو الرد

#10

السلام عليكم

اخي الكريم man تفضل هذه الصفحة بعد التعديل في المرفقات كما طلبت

السلام عليكم , ولا تنسانا من الدعاء .

search_result.rar

تم تعديل هذه المشاركة بواسطة عدوووون في 15 يناير 2008 في 01:27

سبحان الله والحمد لله ولا اله الا الله و الله اكبر

اللهم صلي وسلم وبارك على سيدنا محمد وعلى اله وصحبه وسلم

#11

اخوي عدوون الف شكر على السكربت

بس عندي سؤال كيف لو اريد ان اضيف البحث في قسم

السكربت للبحث عن

realname username email

اريد ان اضيف اختيار آخر للاقسام

بحيث اذا اختار القسم الاول

action="search_result.php"

اذا اختار القسم الثاني

action="search_result_2.php"

وهكذا

بحيث كل قسم action خاص

#12

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

اخي man ما فهمت قصدك ياريت توضح اكثر , وما الغرض من هذه العملية ؟؟؟؟؟؟؟

شكرا .

سبحان الله والحمد لله ولا اله الا الله و الله اكبر

اللهم صلي وسلم وبارك على سيدنا محمد وعلى اله وصحبه وسلم

#13

انا اقصد اخوي

ان انا عندي قسمان و كل قسم يوجد به اسما المستخدمين و البريد الالكتروني

هذه الصورة توضع عملية البحث

99.jpg

مثال لو ابحث عن اسم في القسم الاول

يكون ناتج البحث



<td><div align="right"><?php echo $data['email']; ?></div></td>
<td><div align="right"><?php echo $data['name']; ?></div></td>
<td><a href="S1S1.php?id=<? echo $data['id']; ?>">
<font color="#000000"><span style="text-decoration: none">إضـافــة</span></font></a></td>
  <tr>

مثال لو ابحث عن اسم في القسم الثاني

يكون ناتج البحث



<td><div align="right"><?php echo $data['email']; ?></div></td>
<td><div align="right"><?php echo $data['name']; ?></div></td>
<td><a href="S2S2.php?id=<? echo $data['id']; ?>">
<font color="#000000"><span style="text-decoration: none">إضـافــة</span></font></a></td>
   <tr>

الفرق بين القسمين في الناتج


<td><a href="S1S1.php?id=<? echo $data['id']; ?>">
<font color="#000000"><span style="text-decoration: none">إضـافــة</span></font></a></td>

القسم الثاني
<td><a href="S2S2.php?id=<? echo $data['id']; ?>">
<font color="#000000"><span style="text-decoration: none">إضـافــة</span></font></a></td>
   القسم الاول

تم تعديل هذه المشاركة بواسطة man in dark في 17 يناير 2008 في 12:11

#14

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

اخي man تفضل هاد المرفق كما طلبت بالظبط

وان شاء الله يكون هاد المطلوب .

search.rar

تم تعديل هذه المشاركة بواسطة عدوووون في 18 يناير 2008 في 00:09

سبحان الله والحمد لله ولا اله الا الله و الله اكبر

اللهم صلي وسلم وبارك على سيدنا محمد وعلى اله وصحبه وسلم

هذا الموضوع مغلق.

مواضيع مشابهة