• 0
خالد البديوي

أين الخطأ في هذا الكود؟

سؤال

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

وكل عام وأنتم بخير

بعد دخولي في خوض PHP وبرمجة الإنترنت مازلت أواجه بعض الإشكالات أتمنى منك مساعدتي:

هذا الكود ولا أعلم ما المشكلة حي أنه لا يعرض البيانات في موقعي


<?php

/**
* @author kaab30
* @copyright 2010
*/
?>

<div align="center" dir="rtl">
<form method="post" enctype="text/plain" name="sorttech" lang="Arabic" dir="RTL ">
اختر التخصص المطلوب:
<select size="1" name="subjctslct" lang="Arabic" dir="RTL " title="التخصص">
<option value="2">شريعه</option>
<option value="20">لغه عربيه</option>
<option value="لغه انجليزيه">لغه انجليزيه</option>
<option value="تربيه فنيه">تربيه فنيه</option>
<option value="28">حضاره ونظم اسلاميه</option>
<option value="31">اجتماع</option>
<option value="35">اقتصاد منزلى</option>
</select>
<input type="submit" name="subjb" lang="Arabic" dir="RTL " title="إعرض" />
</form>
</div>

<?php
if($_POST["subjctslct"]){

$nlink = mysql_connect("localhost", "db7260","123");

if (!$nlink) {
die(' : ' . mysql_error());
}
mysql_query("SET NAMES 'utf-8'");
$db_selected = mysql_select_db("adawn", $nlink);

if (!$db_selected) {
die (' : ' . mysql_error());
}

$sql = "select * from `sortsubjct` where subject='". $_POST["subjctslct"] ."'";

@$res = mysql_query($sql,$nlink) ;
echo "<table border=1 cellpadding=0 cellspaceing=0 style=border-collapse: collapse bordercolor=#111111 width=50%>";
echo "<td width=5% align=center bgcolor=#FF0000> الرقم </td>";
echo "<td width=20% align=center bgcolor=#FF0000> الاســـــــم </td>";
echo "<td width=10% align=center bgcolor=#FF0000> النقــــــاط </td>";
echo "<td width=20% align=center bgcolor=#FF0000> المؤهــــــل </td>";
echo "<td width=10% align=center bgcolor=#FF0000> نوع المؤهــل </td>";
$xno = 1;
while (@$lROW = mysql_fetch_array($res, MYSQL_ASSOC)){
echo "<tr>";
echo "<td width=5% align=center>'". $xno. "'</td>";
echo "<td width=20% align=right>'". $lROW[name]. "'</td>";
echo "<td width=5% align=center>'". $lROW[degree]. "'</td>";
echo "<td width=10% align=center>'". $lROW[certificate]. "'</td>";
echo "<td width=5% align=center>'". $lROW[type_certif]. "'</td>";
echo "</tr>";
$xno = 1 + $xno;
}
echo "</table>";

mysql_free_result($resid);
mysql_close($nlink);

} ?>

فأين الخطأ؟

كما أني أريده أن يعرض البيانات في عدة صفحات

تم تعديل بواسطه أسد الجزيرة
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

15 إجابة على هذا السؤال .

  • 0

ماهو الخطأ الذي يظهر ؟ أم تظهر الصفحة بيضاء فقط ؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

صفحة بيضاء لا تتغير

ما يظهر فقط الخيارات من قائمة البوكس Combox وزر الإرسال submit وإذا اخترت أي تخصص لا يظهر شيء

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

لا يعرض بيانات فقط جدول فارغ

post-85055-076530100 1285953829_thumb.jp

هل من معين

تكفى مستعجل

تم تعديل بواسطه أسد الجزيرة
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

غيرت بالكود وإلى الآن نفس المشكلة هذا الكود الجديد


<?php

/**
* @author kaab30
* @copyright 2010
*/

?>
<div align="center" dir="rtl">
<form method="post" name="sorttech" action="sortsubjct.php">
اختر التخصص المطلوب:
<select size="1" name="subjctslct" lang="Arabic" dir="RTL " title="التخصص">
<option value="شريعه">شريعه</option>
<option value="لغه عربيه">لغه عربيه</option>
<option value="لغه انجليزيه">لغه انجليزيه</option>
<option value="تربيه فنيه">تربيه فنيه</option>
<option value="حضاره ونظم اسلاميه">حضاره ونظم اسلاميه</option>
<option value="اجتماع">اجتماع</option>
<option value="اقتصاد منزلى">اقتصاد منزلى</option>
</select>
<input type="submit" name="subjb" lang="Arabic" dir="RTL " title="إعرض" />
</form>
</div>

<?php
echo "<div dir=rtl align=center>";
echo "<html dir=rtl>";
echo "<TITLE> ترتيب المتقدمات حسب الخدمة المدنية </TITLE>";
if($_POST["subjctslct"]){
$dbc = mysql_connect ("localhost", "db7260","123") or die ('Could not connect to MySQL:' . mysql_error());

mysql_select_db('adawn', $dbc) or die ('Could not select the database: ' . mysql_error());

$query = "SELECT * FROM `sortsubjct` WHERE subject='" . $_POST['subjctslct'] . "' ORDER BY degree DEC";

$result = mysql_query($query, $dbc);

echo "<table border=1 cellpadding=0 cellspaceing=0 style=border-collapse: collapse bordercolor=#111111 width=50%>";
echo "<td width=5% align=center bgcolor=#FF0000> الرقم </td>";
echo "<td width=20% align=center bgcolor=#FF0000> الاســـــــم </td>";
echo "<td width=10% align=center bgcolor=#FF0000> النقــــــاط </td>";
echo "<td width=20% align=center bgcolor=#FF0000> المؤهــــــل </td>";
echo "<td width=10% align=center bgcolor=#FF0000> نوع المؤهــل </td>";
$xno = 1;
if ($result && (mysql_num_rows($result) > 0)){}
while ($row = @mysql_fetch_array($result)){
echo "<tr>";
echo "<td width=5% align=center style='color: black;'>'". $xno. "'</td>";
echo "<td width=30% align=right style='color: black;'>'". $row['name'] ."'</td>";
echo "<td width=5% align=center style='color: black;'>'". $row['degree'] ."'</td>";
echo "<td width=20% align=center style='color: black;'>'". $row['certificate'] ."'</td>";
echo "<td width=5% align=center style='color: black;'>'". $row['type_certif'] ."'</td>";
echo "</tr>";
$xno = 1 + $xno;
}

echo "</table>";

mysql_close();
}
echo "</html>";
echo "</div>";
?>

وإلى الآن تظهر الصفحة

كما ترون:

post-85055-095488300 1285964665_thumb.jp

آمل مساعدتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

أخي مبدأياً قم بنسخ الاستعلام الموجود في الصفحة و جربه في الـ phpmyadmin و انظر إن كان يرد قيمة أم لا

طبعا عليك استبدال المتغير :


$_POST['subjctslct']

الموجود بالاستعلام بالقيم الموجودة في الـ Select

جرب و اخبرنا بالنتيجة و إن كان من الممكن أن ترفع لنا ملف قاعدة البيانات قد يساعد هذا في حل المشكلة أكثر...

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الاستعلام بعد التعديل حسب طلبك وتجربته

FROM `sortsubjct` WHERE subject = 'شريعه' ORDER BY degree DESC 

أعطى النتائج في phpmyadmin بشكل صحيح

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

هذا جيد جداً

الآن ننتقل إلى تنقيح الكود الذي وضعته

هل تأكدت من كون المتغير :


$_POST['subjctslct']

يتم ارساله بشكل صحيح؟ أي هل جربت طباعة قيمته؟

النقطة الثانية :


if ($result && (mysql_num_rows($result) > 0)){}

ما الفائدة من هذا السطر بشكله الحالي؟

النقطة الثالثة :

لديك single quote زائدة في هذه الأسطر :


echo "<td width=5% align=center style='color: black;'>(')". $xno. "(')</td>";
echo "<td width=30% align=right style='color: black;'>(')". $row['name'] ."(')</td>";
echo "<td width=5% align=center style='color: black;'>(')". $row['degree'] ."(')</td>";
echo "<td width=20% align=center style='color: black;'>(')". $row['certificate'] ."(')</td>";
echo "<td width=5% align=center style='color: black;'>(')". $row['type_certif'] ."(')</td>";

قم بازالة كل ما هو موجود بين قوسين (طبعا ليست هي المشكلة والله أعلم ولكن لا داعي لوجودها ﻷنه سيتم طباعتها)

بعد تصحيح هذه النقاط و بعض التدقيق للكود و تجربته اخبرنا بالنتيجة و قم بإزالة الـ @ الموجودة في الكود حتى إن كان هناك خطأ php كي يولده و يطبعه لنعلم ما هو هذا الخطأ إن وجد

بتوفيق الله..

تم تعديل بواسطه MoHaMMaD Pro
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شلنا single qoute كما ترى أخي

               if ($result){
while ($row=mysql_fetch_array($result)){

echo "<tr>";
echo "<td width=5% align=center>". $xno ."</td>";
echo "<td width=40% align=right>". $row['name'] ."</td>";
echo "<td width=5% align=center>" . $row['degree'] . "</td>";
echo "<td width=20% align=center>". $row['certificate'] ."</td>";
echo "<td width=5% align=center>". $row['type_certif'] ."</td>";
echo "</tr>";
$xno = 1 + $xno;
}
}

وإلى الآن حتى بعد تعديلات الكود لم تنجح

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الأخ الفاضل

قم بحذف

mysql_close()

لا فائدة منها اطلاقا هنا

وسيعمل الكود بشكل طبيعي

واليك الكود الاخير بعد حذفها ، وبعد حذف بعض النقاط التي لا داعي لها في الكود


<?php

/**
* @author kaab30
* @copyright 2010
*/

?>
<div align="center" dir="rtl">
<form method="post" name="sorttech" action="">
اختر التخصص المطلوب:
<select size="1" name="subjctslct" lang="Arabic" dir="RTL " title="التخصص">
<option value="شريعه">شريعه</option>
<option value="ar">لغه عربيه</option>
<option value="لغه انجليزيه">لغه انجليزيه</option>
<option value="تربيه فنيه">تربيه فنيه</option>
<option value="حضاره ونظم اسلاميه">حضاره ونظم اسلاميه</option>
<option value="اجتماع">اجتماع</option>
<option value="اقتصاد منزلى">اقتصاد منزلى</option>
</select>
<input type="submit" name="subjb" lang="Arabic" dir="RTL " title="إعرض" />
</form>
</div>

<?php
echo "<div dir=rtl align=center>";
echo "<html dir=rtl>";
echo "<TITLE> ترتيب المتقدمات حسب الخدمة المدنية </TITLE>";
if($_POST["subjctslct"]){
$dbc = mysql_connect ("localhost", "db7260","123") or die ( mysql_error());

mysql_select_db('adawn', $dbc) or die (mysql_error());

$query = "SELECT * FROM `sortsubjct` WHERE subject='$_POST[subjctslct]' ORDER BY degree ";

$result = mysql_query($query, $dbc);

echo "<table border=1 cellpadding=0 cellspaceing=0 style=border-collapse: collapse bordercolor=#111111 width=50%>";
echo "<td width=5% align=center bgcolor=#FF0000> الرقم </td>";
echo "<td width=20% align=center bgcolor=#FF0000> الاســـــــم </td>";
echo "<td width=10% align=center bgcolor=#FF0000> النقــــــاط </td>";
echo "<td width=20% align=center bgcolor=#FF0000> المؤهــــــل </td>";
echo "<td width=10% align=center bgcolor=#FF0000> نوع المؤهــل </td>";
$xno = 1;
while ($row = @mysql_fetch_array($result)){
echo "<tr>";
echo "<td width=5% align=center style='color: black;'>'". $xno. "'</td>";
echo "<td width=30% align=right style='color: black;'>'". $row['name'] ."'</td>";
echo "<td width=5% align=center style='color: black;'>'". $row['degree'] ."'</td>";
echo "<td width=20% align=center style='color: black;'>'". $row['certificate'] ."'</td>";
echo "<td width=5% align=center style='color: black;'>'". $row['type_certif'] ."'</td>";
echo "</tr>";
$xno = 1 + $xno;
}

echo "</table>";

}
echo "</html>";
echo "</div>";
?>

وهناك خطأ ببسيط اخر

هذا الجزء :


ORDER BY degree DEC

به خطا هجائي

والصح كلمة DESC

حرف ال s واقع منك :)

تم تعديل بواسطه webdesigner
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أهلا اخي كل ما طلبته تم تنفيذه بالحرف الواحد لوكن نفس المشكل لا تظهر بيانات !!!!!!!!!!!

لأ أعلم وحاولت التعديل بشتى الطرق ولكن المشكلة ما زالت رغم اني تأخرت كثيراً وطاح الفاس بالراس :wacko: لكن الحمد لله على كل حال مازال في ومضت آمل :happy:

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

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

أشكرك على تفاعلك معي :wub: وليت كل الأخوه مثلك :wacko:

تم تعديل بواسطه أسد الجزيرة
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

المشكلة تكمن في عرض البيانات

هذا ما أتوقعه وليس في الاتصال ولا في جملة SQL

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

الخطأ في عبارة Select .... قمت بعمل تغييرات في الكود لظهور البيانات العربية بالشكل الصحيح . واستقبال القيمة المرسلة في متغير .

الكود اشتغل لدي بعد هذه التعديلات ... مع حفظ الكود بترميز utf without bom


<?php

/**
* @author kaab30
* @copyright 2010
*/

?>

<div align="center" dir="rtl">
<form method="post" name="sorttech" action="xx.php">
اختر التخصص المطلوب:
<select size="1" name="subjctslct" lang="Arabic" dir="RTL " title="التخصص">
<option value="شريعه">شريعه</option>
<option value="لغه عربيه">لغه عربيه</option>
<option value="لغه انجليزيه">لغه انجليزيه</option>
<option value="تربيه فنيه">تربيه فنيه</option>
<option value="حضاره ونظم اسلاميه">حضاره ونظم اسلاميه</option>
<option value="اجتماع">اجتماع</option>
<option value="اقتصاد منزلى">اقتصاد منزلى</option>
</select>
<input type="submit" name="subjb" lang="Arabic" dir="RTL " title="إعرض" />
</form>
</div>

<?php
$choose=$_POST["subjctslct"];

echo "<div dir=rtl align=center>";
echo "<html dir=rtl>";
echo '<head>';
echo '<meta http-equiv="content-type" content="text/html;charset=UTF-8" />';
echo "<TITLE> ترتيب المتقدمات حسب الخدمة المدنية </TITLE>";
echo '</head>';
if($_POST["subjctslct"]){
$dbc = mysql_connect ("localhost", "db7260","123") or die ( mysql_error());
mysql_query("SET NAMES 'utf8'");
mysql_select_db('adawn', $dbc) or die ('Could not select the database: ' . mysql_error());

$query = "SELECT * FROM sortsubjct WHERE subject='$choose' order by degree DES" ;


$result = mysql_query($query, $dbc);

echo "<table border=1 cellpadding=0 cellspaceing=0 style=border-collapse: collapse bordercolor=#111111 width=50%>";
echo "<td width=5% align=center bgcolor=#FF0000> الرقم </td>";
echo "<td width=20% align=center bgcolor=#FF0000> الاســـــــم </td>";
echo "<td width=10% align=center bgcolor=#FF0000> النقــــــاط </td>";
echo "<td width=20% align=center bgcolor=#FF0000> المؤهــــــل </td>";
echo "<td width=10% align=center bgcolor=#FF0000> نوع المؤهــل </td>";
$xno = 1;

while ($row = @mysql_fetch_array($result)){
echo "<tr>";
echo "<td width=5% align=center style='color: black;'>'". $xno. "'</td>";
echo "<td width=30% align=right style='color: black;'>'". $row['name'] ."'</td>";
echo "<td width=5% align=center style='color: black;'>'". $row['degree'] ."'</td>";
echo "<td width=20% align=center style='color: black;'>'". $row['certificate'] ."'</td>";
echo "<td width=5% align=center style='color: black;'>'". $row['type_certif'] ."'</td>";
echo "</tr>";
$xno = 1 + $xno;
}

echo "</table>";

mysql_close();
}
echo "</html>";
echo "</div>";
?>

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ألف شكر وتقدير فقد إنحلت المشكلة وهذا بفضل الله ثم تعاونك البناء

تحياتي وشكري لك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .