تسجيل الدخول

مشاهدة النسخة كاملة : ساعدوني في كودي الأول php


the_leader
2012-10-01, 21:59
السلام عليكم ورحمة الله وبركاته
لطالما رأييت إلى أسطرها وكأنها طلاسم عبرية
ولطالما تمينت لو أتمكن يوما من فك شفراتها هاذه البي إتش بي
واليوم أجد نفسي أمام حتمية الاعتماد عليها في تصميم سكريبت ريفرال بسيط لكنها خذلتني :mad:
دعوني أشرح ما أريده أولا ثم طرح الكود
أريد صفحة تتعامل مع قاعدة بيانات ولتكن باسم Djelfa_info
وفي الجدول الخاص بالريفيرال نجد الأعمدة
Odwia new_user date

يتم استدعاء الصفحة في ثلاث حالات
1- تسجيل عضو جديد تحت الريفيرال الخاص بالعضوية (مثلا u21 )
بعد الفحص هل العضوية مسجلة مسبقا أم لا
2- عرض عدد العضويات المسجلة تحت العضوية ( u21 )
2- عرض جدول مفصل لبيانات الريفيرال للعضوية ( u21 )

وكان الكود (إعذروني على الأخطاء الجمة فأنا مبتدئ :o )


<? date_default_timezone_set('UTC'); ?>

<?php
$dbase = mysql_connect("localhost","root","0000") or die('لم يتم الاتصال مع القاعدة'. mysql_error());

// Select database
mysql_select_db("Djelfa_info") or die(mysql_error());

if ($_GET['methode'] == 'post'){
// استدعاء الصفحة عند تسجيل عضو جديد تحت الريفرال حبث يكون الرابط من الشكل
// ../reffiral?methode=post&id=u23&new=paw

$strSQL = "SELECT * FROM reffirals WHERE id=" . $_GET["id"];
$rs = mysql_query($strSQL);
while($row = mysql_fetch_array($rs)) {
if ( $_GET['new'] == $row["new_user"]) $virifier = 'old user';
}

if ($virifier != 'old user') {
// العضوية غير مسجة فبلا
$strSML = "INSERT INTO reffirals(Odwia,new_user,date) VALUES(". $_GET["id"] . $_GET["new"] . date(DATE_RFC822) . ")";
mysql_query($strSML) or die (mysql_error());
}

}else if($_GET['methode'] == 'get'){
// استدعاء من أجل العرض حيث الرابط من الشكل
// ..reffirals?methode=get&u=admin&pass=4521

$strSQL = "SELECT * FROM reffirals WHERE Odwia =" . $_GET["id"];

if ($_GET['u'] == 'admin'){
// دخول المدير من أجل عرض تفصيلي للبيانات

$rs = mysql_query($strSQL);
echo "<h3>reffiirals for user:" . $row["Odwia"] . "</h3>";
echo '<table width="620" border="1">
<tr><td>N</td><td>user</td><td>date</td></tr>';
$i=1;
while($row = mysql_fetch_array($rs)) {
echo "<tr><td>" . $i . "</td><td>" . $row["new_user"] . "</td><td>" . $row["date"] . "</td></tr>";
$i = $i + 1;
}
echo '</table>';

}else {
// عرض عدد التسجيلات للعضوية u23
$number=mysql_num_rows($strSQL);
echo $number;
}
}

// Close the database connection
mysql_close();
?>

ahmed_algerie
2012-10-02, 10:36
وعليكم السلام ورحمة الله

أنت لا تحتاج إلى جدول خاص بالرفرلز، كل البيانات تسجل في جدول الأعضاء
الجدول الخاص بالأعضاء يكون على الشكل التالي (مثلا):

http://dc533.4shared.com/img/Fz5Eya6M/s7/0.15432767957618365/phpmyadmin-vuserstable.png

عند تسجيل عضو جديد يجب أن يحتوي رابط التسجيل على رقم التعريف الخاص بالعضو الذي قام بتوجيه الدعوة...
مثلا إذا كانت صفحة التسجيل لديك تحت اسم register.php يكون رابط التسجيل كالتالي:
register.php?referrer=55
(55 هو رقم العضوية الخاص بالعضو الذي قام بتوجيه الدعوة)

عند تسجيل العضو الجديد يتم حفظ رقم العضو صاحب الدعوة في خانة referrer في السطر الخاص بالعضو الجديد
ويتم في نفس الوقت إضافة 1 إلى مجموع الإحالات الخاصة بالعضو الذي قام بتوجيه الدعوة

كالتالي:
نفترض أن لدينا عضو مسجل مسبقا باسم user1
الجدول في قاعدة البيانات سيظهر بالشكل التالي:

http://dc222.4shared.com/img/smQansce/s7/0.30782830844732256/phpmyadmin-vuserstable-2.png

ويقوم هذا العضو (user1) بتوجيه دعوة إلى شخص آخر للتسجيل، هذا العضو الجديد سيسجل باسم user2

صفحة التسجيل ستكون على الشكل التالي:



$username = "user2";
$password = "pass2";

$referer = $_GET['referrer']

//فحص وجود عضوية بنفس الاسم

$find_user = mysql_query("SELECT u_id FROM users WHERE u_name='$username'")
$user_exists = mysql_num_rows($find_user)

if($user_exists) die("عضوية بنفس الاسم مسجلة مسبقا");

//إضافة العضو الجديد إلى قاعدة البيانات

mysql_query("INSERT INTO users(u_name, u_password, u_referrer_id) VALUES('$username', '$password', '$referrer')");

//تحديث عدد الإحالات الخاصة بالعضو الأول
mysql_query("UPDATE users SET u_referrals_count = u_referrals_count+1 WHERE u_id='$referrer'");



الجدول في قاعدة البيانات سيكون كالتالي:

http://dc179.4shared.com/img/jeSt52gp/s7/0.08459957326716094/phpmyadmin-vuserstable-3.png

الآن لمعرفة عدد الدعوات الخاصة بالعضو
نفترض أننا نريد أن نعرف عدد الدعوات الخاصة بالعضو الأول (user1)
بالتأكيد سنعتمد على رقم العضوية الخاص بهذا العضو... ونحن نعرف أن رقم العضوية للعضو user1 هو 1



$find_user = mysql_query("SELECT u_referrals_count FROM users WHERE u_id=1")
$u_info = mysql_fetch_array($find_user);

//عدد الإحالات
$referrals_count = $u_info['u_referrals_count']



الآن للبحث عن الأعضاء الذين قام العضو الأول بتوجيه الدعوة لهم لعرض بياناتهم على سبيل المثال:
هنا نبحث عن كل عضو لديه رقم 1 (رقم عضوية user1) في خانة u_referrer



$find_referrals = mysql_query("SELECT * FROM users WHERE u_referrer_id='1'")

// عرض البيانات
while($u_info = mysql_fetch_array($find_referrals)){
echo $u_info['u_name'];
.....
.....
}



بالتوفيق...

djaberbenhayan
2012-10-02, 16:17
كل ماقاله الأخ صواب

لكن مجرد اضافة في الجدول اعمل جدول الاعضاء فقط
وفيه id name ref

بحيث ref يأخذ ايدي الاسم التابع له
و ان لم يكن ref لاي شخص يأخذ 0

لو كان لدي الوقت لشرحتها بالصور