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

كيف يتم عمل رابط يحتوي على أكثر من قيمة (index.php?id=1&cat=5)

بدأه ayoub92 في 3 مارس 2009 · 5 رد · 1,127 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

لنقول أن السكربت يحتوي على أربع جداول (الجزء الأول) :

niveaux = جدول القسم الرئيسي ( لائحة المستويات ) و يحتوي على حقلين :

cat_child_id ---> قيمة تتعدد تلقائيا عند إضافة أي قسم رئيسي جديد

cat_name ------> يحتوي على اسماء الأقسام الرئيسية

filieres = جدول القسم الفرعي 1 (لائحة الشعب ) و يحتوي على حقلين :

cat_child_id ---> قيمة تتعدد تلقائيا عند إضافة أي قسم رئيسي جديد

cat_name ------> يحتوي على اسماء الأقسام الفرعية 1

matieres = جدول القسم الفرعي 2 ( لائحة المواد ) و يحتوي هو ايضا على حقلين :

cat_child_id ---> قيمة تتعدد تلقائيا عند إضافة أي قسم فرعي جديد

cat_name ------> يحتوي على اسماء الأقسام الأقسم الفرعية 2

tronc_commun = جدول المواضيع ، و يحتوي على 5 حقول :

id ----------> قيمة كل موضوع و تعدد هي أيضا تلقائيا

titre ------> عنوان كل موضوع

filieres ---> هذا هو الحقل الذي يربطنا بالجدول السابق filieres

matieres -> هذا أيضا هو الحقل الذي يربطنا الجدول matieres

cour ------> الحقل الذي سيتم تخزين فيه المواضيع

نأتي الآن إلى الجزء الثاني ، إستعملت في السكربت 5 ملفات :

config.php = طبعا هذا ملف الاتصال بقاعدة البيانات

index.php = هي الصفحة الرئيسية للسكربت التي ستظهر بها محتويات الجدول niveaux أي الأقسم الرئيسية

filieres.php = هي الصفحة التي سيظهر فيها محتوى الجدول filieres أي الأقسام الفرعية 1

matieres.php = هي الصفحة التي سيظهر فيها محتوى الحقل matieres أي الأقسام الفرعية 2

cours.php = هي الصفحة التي سيظهر فيها محتوى الجدول tronc_commun، هذه الصفحة ستكون مرتبطة بالجدولين السابقين matieres و filieres بحيث سيكون رابط العرض هكذا :

cours.php?id=1&idc=5

id=1 يتم استعلامه من الجدول filieres بالحقلcat_child_id

idc=5 يتم استعلامه من الجدول matieres بالحقل cat_child_id

حين تتحقق الشروط أعلاه يطبع لنا محتوى الحقل titre الموجود بالجدول tronc_commun

__________________________________________________ _____________________

الأن المشكل هو في ملف cours.php ، لا أعرف كيف أجعله يستعلم قيمة متغير الرابط من الجدولين و يقوم بمطابقتهما للحقلين الموجودين بالجدول الدي يحتوي على المواضيع tronc_commun بعذ ذالك يطبع لنا محتوى الحقل titre الذي تتطابق قيمه مع قيم الجدولين matieres و filieres.

أرجو أن اكون قد وُفِقت في توصيل النظام البرمجي الذي أريد ان يكون عليه السكربت

بطريقة أخرى : الجدول tronc_commun يحتوي على جميع المواضع سواء الخاصة بالقسم الفرعي 1 الدي يوجد بالقسم الرئيسي 2 أو القسم باالفرعي 1 الموجود بالقسم الرئيسي 1 ، المطلوب هو كيف أجعل الملف cours.php يحدد المواضيع الخاصة بالقسم الفرعي 1 سواء الدي بالقسم الرئيسي 2 / القسم الرئيسي 1 عن طريق الدالة $_get

و الله أنا مستعجل من إنهاء هذا العمل حتى يتم فتح الموقع قبل بدئ الإختبارات بالثانويات

و شكر لكم مرة ثانية لما قدمتموه لهذا المنتدى

تحياتي Ayoub92

تم تعديل هذه المشاركة بواسطة ayoub92 في 3 مارس 2009 في 21:51

#2

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

$id=intval($_GET['id']);
//$id=الرقم من العنوان
//id=الرقم من الجدول
select*from table where id=$id

الاسم:محمدهلال

البلد:مصر

مبتدى بي اتش بي

#3

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

الغالي انا مافهمتك بالضبط اللي تباه لكن فهمت ايش انت تبي تسوي ...

========================

ربط الجداول

########################

الغالي ... عندي حل اسهل منطقيا وفعليا ...

انا بشرح على اسا ان هيه ثلالث جداول ويمكنك المضاعفه الا ما تشاء بأذن الله تعالى ..

فلنقل لديك ثلالث جداول بالاسماء التاليه .

index

sub1_index

sub2_index

هذه قيم index والجدول الاول

id

يحمل ثلاث اعمده وهذه هي المعطيات id القيمه intger والتكرار auto_increment ليعطي تكرار دائم وتعطيه primary

name

يحمل القيمه varcher ومش لازم نتكلم عن كل شي انت نفسك لازم تعرفه

date

معروف date وتعطيه NOW(); طبعا بالبي اتش بي

والجدول الثاني

sub1_index

id

نفس اللي كان بالجدول الاول

sub_name

نفس الشيء varcher

link_1

هذا الحقل تعطيه قيمة intger فقط ..... وبعدين بتكلم عنه

والجدول الثالث .... يحمل ايضا نفس القيم اللي بالجدول الثاني بالضبط

طيب الغالي ....

عند اضافتك لجدول في الجدول الاول index تقوم بأعطاء قيمه للـ id ...

طيب عند ايضا قيامك باضافة قيمه للجدول الثاني sub1_index تقوم بأضافة قيمه افتراضيه للid طبعا للتحكم به فيما بعد وتزرع فيه قيمه تلقائياً قيمة id للجدول index وهو الرئيسي

لكي يتم العرض عند الطلب بهذه الطريقه

<?php
$query_index = mysql_query("select * from `index` where `id` = '$id'");
$query_sub1 = mysql_query ("select * from `sub1_index` where `link_1` = '$id'");
?>

طيب عزيزي عندما تقوم بطلب هذين المعلومتين من قاعدة البيانات فسيتم طلب index وبحسب id = 1 بيقوم ايضا تلقائيا بطلب ايضاً من الجدول الاخر sub1_index بحسب العمود link_1 فسيطلب القيمه ايضاً 1 فسيتم طلب جميع الاقسام بهذا الطلب ... وهكذى ستحصل على طلب القسمين بشكل تلقائي ... ومن غير اية مشاكل وبدون الخوف من اية ثغره وحفاظاً من التلاعب خل القيمه تدخل بالــ $_POST['']; علشان تاخذ القيمه من النموذج المرسل وضع القيمه في النموذج على شكل <input type="hidden" name="id" value="$id" />

وهكذى ايضا مع بقية الاقسام تقوم بالتعامل ايضاً بلا نهايه

هذا اللي انا فهمته منك اذا كان فيه شي ثاني قصدته قم بالرد عليا لكي استطيع افادتك في اقرب وقت ممكن

#4

السلام عليكم

أشكرك أخي Jehazee

لقد تجاوزت المشكلة الأولى و الأن لي استفسار أخر

عندي هذا الكود

<?php
                 include("Connections/connect.php");
   $id=$_GET['id'];
   $cat= mysql_query("select * from filieres where cat_child_id='$id'");
            while ($row = @mysql_fetch_array($cat)) {
            extract($row);
              echo "<a href='cours.php?id=$id&idc=$idc'>$cat_name</br></a>";
            }
?>

نجحت في تعريف القيمة id باعتبارها قيمة يتم استعلامها من الجدول filieres بالحقل cat_child_id

كيف أُعرف القيمة الثانية idc باعتبارها هي أيضا قيمة يتم استعلامها من الجدول filieres بالحقل cat_parent_id

#5

عزيز كما اخبرتك في المره السابقه تقوم بتحديد link فرعي محقل في الجدول الثاني

ومن ثما تقوم ايضا بالطلب بحسب الـlink الفرعي للجدول الثاني

ارجو ان تصلك الفكره هو اشبه بتتابع تقدر تقول مثل توريث صفات من جدوال علويه لكي يتم الالتقاء عند طلب نقطه معينه

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

وويلكم بك عزيزي

#6

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

أشكرك أخي على تجاوبك معي

خبرتي في البرمجة قليلة جداا لذالك لم يتسنى لي أن افهم ماشرحته لي !

المهم سأحاول ان اوصل لك فكرتي

معي جدول إسمه matieres ولهذا الجدول 3 حقول

post-195014-1236250009_thumb.png

ومعي الكود التالي في صفحة matieres.php

$id=$_GET['id'];
   $cat= mysql_query("select * from matieres where cat_child_id='$id' ");
            while ($row = @mysql_fetch_array($cat)) {
            extract($row);
              echo "<a href='cours.php?id=$id'>$cat_name</br></a>";
            }

حين أطلب الصفحة matieres.php?id=1 تظهر لي بالصفحة Math

حين أطلب الصفحة matieres.php?id=2 تظهر لي بالصفحة français

وهكذا ، لآني عرفت المتغير id

في السطر التالي echo "<a href='cours.php?id=$id'>$cat_name</br></a>"

قلت له إطبع لي محتوى الحقل cat_name و جعلت له رابط cours.php?id=$id بحيث القيمة $id هي قيمة الحقل cat_child_id لاني عرفته سابقا

الحين الكل تمام

ما أريده هو أن أجعل للإستعلام رابط على الشكل التالي cours.php?id=$id&idc=$idc

بحيث $id هاته القيمة يتم أخدها من الحقل cat_child_id و $idc يتم أخدها من الحقل الأخر cat_parent_id

بمعنى أخر حين اطلب الصفحة matieres.php?id=1 سيظهر لي Math

سيكون رابط math هو cours.php?id=1&idc=1

لآن cat_child_id=1 و cat_parent_id=1

ارجو أن تكون فكرتي قد وصلت إليك

و شكرا مرة أخرى

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