PDA

View Full Version : راهنمایی



هانیه دره باغی
چهارشنبه 25 تیر 1393, 09:19 صبح
سلام من یه پروژه دارم که درون اون اساتید عضو می شوند بعد برای هر استاد یه صفحه به عنوان به سایت شخصی در نظر گرفته می شه بعد با کلیلک بر روی نام هر استاد لینک داده می شه به اون صفحه درنظر گرفته شده واطلاعاتش درون اون صفحه نمایش داده می شه
من برای انتقال به صفحه دیگه از این کد استفاده کردم

<?php
$result=doquery("select fname,lname,userid from user WHERE user.type='0' ");
if($result->num_rows)
{
//for($i=7;$i=1;$i--)
while($row=mysqli_fetch_array($result))
{

?>
<ul dir="rtl">
<li>
<a href="webpersonal.php?ostad=<?php echo $row['userid'];?>"> <?php echo $row['fname']." ".$row['lname']?> </a>
</li>
</ul>
<?php
}

}
?>

حالا مشکل اینجاست که تو صفحه اصلی سایت مشکلی نیست واطلاعات استاد مورد نظر درست نمایش داده می شه ولی در صفحات دیگه که بر اساس کوئری

$result=doquery("select * from news where userid='".$_GET['ostad']." ' ");
می خوام اطلاعاتو نمایش بدم error می ده
Notice: Undefined index: ostad in C:\xampp\htdocs\portal\news.php on line 79

vahidqara
چهارشنبه 25 تیر 1393, 09:25 صبح
سلام و درود..

این میگه که 'ostad رو نمیشناسه ...' ببینید از کجا این مقدارو میگیرید یا ست میکنید ..؟!!!!

هانیه دره باغی
چهارشنبه 25 تیر 1393, 09:34 صبح
گفتم که برای اینکه وقتی روی نام هر استاد کلیک شده اطلاعات اون استاد نمایش داده بشه از این کد استفاده کردم که user id اون داخل پارامتر ostad ریخته می شه

<a href="webpersonal.php?ostad=<?php echo $row['userid'];?>"> <?php echo $row['fname']." ".$row['lname']?> </a>
که با متد get به صفحه webpersonal فرستاده می شه ولی فقط تو صفحه اصلی اونو میشناسه
حتی وقتی بازگشت به صفحه اصلی رو هم می زنم همین ارور رو می ده

prans.info
چهارشنبه 25 تیر 1393, 10:22 صبح
با isset چک کنید که $_GET['ostad'] وجود داره یا نه اگه وجود نداشت از کئوری دیگه ای استافده کنید که مثلا همه مطالب رو بیاره

هانیه دره باغی
چهارشنبه 25 تیر 1393, 10:31 صبح
سلام منظورتون از اینکه همه مطالبو بیاره اینه که جداولم رو با هم join کنم بعدselect بزنم واز اطلاعاتش استفاده کنم؟

prans.info
چهارشنبه 25 تیر 1393, 10:33 صبح
سلام منظورتون از اینکه همه مطالبو بیاره اینه که جداولم رو با هم join کنم بعدselect بزنم واز اطلاعاتش استفاده کنم؟
منظورم اینه چک کنید اگه گت استاد نبود یه کئوری دیگه بزنید که بدون where userid.... باشه یا یه پیام بدید که لطفا اساد مورد نظر رو انتخاب کنید و...
اینطوری باید هم ارور بده ...

هانیه دره باغی
چهارشنبه 25 تیر 1393, 10:37 صبح
خب نمی شه فقط با userid هست که استادا از هم مشخص می شن

php_programmer021
چهارشنبه 25 تیر 1393, 10:39 صبح
سلام ببین
توی کدهات قبل از اون قسمتی که شرط isset تعریف میکنی یه متغییر تعریف کن و توش یه آرایه بنویس و به مقادیری که می خوایی نشون بدی مقدار پیش فرض بده.


$variable = array(
'id' => 0,
'ostad' => '',
);

اینجوری درست می شه

هانیه دره باغی
چهارشنبه 25 تیر 1393, 10:42 صبح
سلام ببین
توی کدهات یه جا متغییر تعریف کن و توش یه آرایه بنویس و به مقادیری که می خوایی نشون بدی مقدار پیش فرض بده.


$variable = array(
'id' => 0,
'ostad' => '',
);


اینجوری درست می شه

ببخشید متوجه منظورتون نشدم:ناراحت:

php_programmer021
چهارشنبه 25 تیر 1393, 10:44 صبح
وقتی هم می خوای چاپ کنی باید اینجوری


echo $variable['ostad'];

به نظر من اینجوری مشکلت حل می شه

prans.info
چهارشنبه 25 تیر 1393, 10:50 صبح
وقتی هم می خوای چاپ کنی باید اینجوری


echo $variable['ostad'];

به نظر من اینجوری مشکلت حل می شه
شما چرا صورت مسئله رو پاک می کنی؟ خب اینطوری هم باز مشکل به وجود میاد دیگه
ایشون باید چک کنند اگه متغییر $_GET['ostad'] ست نبود یه پیام بدند که لطفا استاد مورد نظر رو انتخاب کنید و میتونند در این حین لیسن استاد ها رو به یوزر نشون بدند یا از یه کئوری دیگه استفاده کنند که کل اخبار رو نوشون بده بدون فیلتر کردن استاد ...

هانیه دره باغی
چهارشنبه 25 تیر 1393, 10:54 صبح
شما چرا صورت مسئله رو پاک می کنی؟ خب اینطوری هم باز مشکل به وجود میاد دیگه
ایشون باید چک کنند اگه متغییر $_GET['ostad'] ست نبود یه پیام بدند که لطفا استاد مورد نظر رو انتخاب کنید و میتونند در این حین لیسن استاد ها رو به یوزر نشون بدند یا از یه کئوری دیگه استفاده کنند که کل اخبار رو نوشون بده بدون فیلتر کردن استاد ...

این جوری که نمی شه اون وقت کاربر مدام باید استاد انتخاب کنه!
یه بار که استاد انتخاب کرد باید وارد وب سایت شخصیش بشه و اطلاعاتشو ببینه

prans.info
چهارشنبه 25 تیر 1393, 10:58 صبح
این جوری که نمی شه اون وقت کاربر مدام باید استاد انتخاب کنه!
یه بار که استاد انتخاب کرد باید وارد وب سایت شخصیش بشه و اطلاعاتشو ببینه
خب منظور من وقتی هست که متغییر ست نشده تویه عکسی هم که شما دادی ?ostad=felan وجود نداره ...
در حالت عادی اون کئوری که دادید باید درست کار کنه

هانیه دره باغی
چهارشنبه 25 تیر 1393, 11:06 صبح
فکر کنم متوجه منظورم نشدید
ببنید تو اون عکسی که لیست استادا اومدن وقتی کاربر روی یکی از اونا کلیلک می کنه لینک می شه به صفحه webpersonal(وب سایت شخصی اون استاد) که لینک استادا رو من این جوری تعریف کردم

<a href="webpersonal.php?ostad=<?php echo $row['userid'];?>"> <?php echo $row['fname']." ".$row['lname']?> </a>
حالا وقتی وارد صفحث webpersonal می شه اطلاعات اون استاد مثل رزومه اخبار نمرات تمرینات و... که اون استاد تو سایتش ثبت کرده باید نشون کاربر داده بشه
صفحه index سایت درست کار می کنه
مشکل تو صفحات دیگه هست مثل اخبار میگه ostad تعریف نشده است

هانیه دره باغی
چهارشنبه 25 تیر 1393, 11:08 صبح
این تصویر صفحه اصلی اما مثلا وقتی بخواد اخبار رو ببینه این جوری می شه

php_programmer021
چهارشنبه 25 تیر 1393, 11:21 صبح
این لینگو بخون
http://en.kioskea.net/faq/php-82#3140

مهرداد سیف زاده
چهارشنبه 25 تیر 1393, 11:33 صبح
مشکل مقدار نادرست گرفتن متغیر row شما هست
در صفحه ای که قرار بر اساس id اطلاعات استاد رو بگیره دقیق بررسی کن ببین اصلا دیتایی اومده که شما از توش میخوای ostad رو برداری
برای نشون دادن از print_r یا var_dump بعد از واکشی اطلاعات از دیتابیس استفاده کن

هانیه دره باغی
چهارشنبه 25 تیر 1393, 11:41 صبح
مشکل مقدار نادرست گرفتن متغیر row شما هست
در صفحه ای که قرار بر اساس id اطلاعات استاد رو بگیره دقیق بررسی کن ببین اصلا دیتایی اومده که شما از توش میخوای ostad رو برداری
برای نشون دادن از print_r یا var_dump بعد از واکشی اطلاعات از دیتابیس استفاده کن

اطلاعات اومده اگه درست نیومده بود همون صفحه اول رو هم نشون نمی داد
چون رزومه استاد نام ونام خانوادگیش تو صفحه اول درج می شه

مهرداد سیف زاده
چهارشنبه 25 تیر 1393, 12:05 عصر
صفحه اول که معلومه درج میشه چون اگه درج نشده بود id رو نمیگرفت نمیومد صفحه دوم
شما یه بار اطلاعات رو بررسی کن ببین اصلا چیزی از دیتابیس میگیرید شاید خطای دیتابیس دارید که اطلاعات نمیاد


اطلاعات اومده اگه درست نیومده بود همون صفحه اول رو هم نشون نمی داد
چون رزومه استاد نام ونام خانوادگیش تو صفحه اول درج می شه

php_programmer021
چهارشنبه 25 تیر 1393, 12:10 عصر
اگه می تونی پروژه رو با دیتابیسش بفرست درستش کنم .

MMSHFE
پنج شنبه 26 تیر 1393, 11:49 صبح
حدس میزنم مشکل استفاده از frameset باشه. اگه اشتباه نکنم سایتتون رو با frameها ساختین و بخاطر همین، توی صفحه اصلی مقداری ندارین توی GET_$ چون لینک مربوطه داره برای همون فریم ارسال میشه نه والد چون توی URL اصلیتون =ostad? نیست.

هانیه دره باغی
پنج شنبه 26 تیر 1393, 12:41 عصر
نه با فریم ساخته نشده

MMSHFE
شنبه 28 تیر 1393, 03:16 صبح
پس کدتون رو بگذارین تا بررسی بشه.