PDA

View Full Version : نمایش اطلاعات از بانک با انتخاب گزینهای لست کشویی



mohsen60
سه شنبه 04 آذر 1393, 09:38 صبح
برای گزارشگیری،از چند لیست کشویی مقادیری رو انتخاب میکنم، با post، ارسال میکنم به صفحه بعدی ، یه سوییچ میزنم برای query های مختلف ، بعد کد مربوط به نمایش رو نوشتم.ولی خطا میده. از خطاش سر درنمیارم.
(خلاصه: مثلا کاربر انتخاب میکنه دکتری، میخوام تمام کاربرانی که مدرک دکتری رو دارند رو نمایش بدم و ...)





<form action="report.php" method="post">

<p>
<span lang="en-us">
<select name="madrak" style="width:150px;" id="shoghl2" size="1">
<option></option>
<option>دکتری</option>
<option>دانشجوی دکتری</option>
<option>کارشناسی ارشد</option>
<option>دانشجوی کارشناسی ارشد</option>

</select></span></p>
<p>
<span lang="en-us">
<select name="group" style="width:150px;" id="shoghl3" size="1">
<option></option>
<option>مهندسی برق</option>
<option>مهندسی کامپیوتر</option>
<option>مهندسی عمران</option>
<option>مهندسی صنایع</option>
<option>معماری و شهرسازی</option>
<option>مهندسی شیمی</option>
<option>مهندسی مکانیک</option>
<option>مهندسی منابع طبیعی</option>
<option>تربیت بدنی و علوم ورزشی</option>
<option>حقوق</option>
<option>حسابداری</option>
<option>مدیریت</option>
<option>عمومی و معارف اسلامی</option>
<option>علوم پایه</option>

</select></span></p>
<p>
<span lang="en-us">
<input class="submit" type="submit" value="ارسال" /></p>
</form>




-----------------------------------------صفحه report.php


<?php
$madrak= $_POST['madrak'];
$group= $_POST['group'];


switch ($madrak) {
case "دکتری":
$query1 = "SELECT
nam,famil,id FROM users where madrak='دکتری' ORDER BY id DESC LIMIT $offset, $rowsPerPage ";
$query=$query1;
break;
case "دانشجوی دکتری":

$query2 = "SELECT
nam,famil,id FROM users where madrak='دانشجوی دکتری' ORDER BY id DESC LIMIT $offset, $rowsPerPage ";
$query=$query2;

break;


default:
echo "شما باید نوع مدرک خود را انتخاب نمایید. <br/>";
}

switch ($group) {
case "مهندسی برق":
$query3 = "SELECT
nam,famil,id FROM users where group='مهندسی برق' ORDER BY id DESC LIMIT $offset, $rowsPerPage ";
$query=$query3;
break;
case "مهندسی عمران":

$query4 = "SELECT
nam,famil,id FROM users where group='مهندسی عمران' ORDER BY id DESC LIMIT $offset, $rowsPerPage ";
$query=$query4;

break;


default:
echo "شما باید نوع مدرک خود را انتخاب نمایید. <br/>";
}


// how many rows to show per page
$rowsPerPage = 4;

// by default we show first page
$pageNum = 1;

// if $_GET['page'] defined, use it as page number
if(isset($_GET['page']))
{
$pageNum = $_GET['page'];
}
$offset = ($pageNum - 1) * $rowsPerPage;
include_once('icd.php');


mysql_query("SET NAMES utf8");
mysql_query("SET CHARACTER_SET utf8");
$result = mysql_query($query) or die('Error, query failed');
while($row = mysql_fetch_array($result))
{
echo '<br>';

echo ' '.$row['nam'].' '.' '.$row['famil'].'<br>' ;



echo ' <a target="_blank" href=" send1.php?id='.$row['id'].'" > "جزئیات بیشتر" </a>' .'<br>' ;

}
echo '<br>';
// how many rows we have in database
$query = "SELECT COUNT(nam) AS numrows FROM users ";
mysql_query("SET NAMES utf8");
mysql_query("SET CHARACTER_SET utf8");
$result = mysql_query($query) or die('Error, query failed');
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$numrows = $row['numrows'];

// how many pages we have when using paging?
$maxPage = ceil($numrows/$rowsPerPage);

// print the link to access each page
$self = $_SERVER['PHP_SELF'];
$nav = '';
for($page = 1; $page <= $maxPage; $page++)
{
if ($page == $pageNum)
{
$nav .= " $page "; // no need to create a link to current page
}
else
{
$nav .= " <a href=\"$self?page=$page\">$page</a> ";
}
}
// creating previous and next link
// plus the link to go straight to
// the first and last page
if ($pageNum > 1)
{
$page = $pageNum - 1;
$prev = " <a href=\"$self?page=$page\">[صفحه قبلي]</a> ";

$first = " <a href=\"$self?page=1\">[اولين صفحه]</a> ";
}
else
{
$prev = '&nbsp;'; // we're on page one, don't print previous link
$first = '&nbsp;'; // nor the first page link
}

if ($pageNum < $maxPage)
{
$page = $pageNum + 1;
$next = " <a href=\"$self?page=$page\">[صفحه بعدي]</a> ";

$last = " <a href=\"$self?page=$maxPage\">[آخرين صفحه]</a> ";
}
else
{
$next = '&nbsp;'; // we're on the last page, don't print next link
$last = '&nbsp;'; // nor the last page link
}

// print the navigation link
mysql_query("set names utf8");
mysql_query("SET CHARACTER_SET utf8");
echo $first . $prev . $nav . $next . $last;

// and close the database connection



?>

mohsen60
سه شنبه 04 آذر 1393, 10:34 صبح
خواهش میکنم اگه کسی میدونه منو راهنمایی کنه/

blue.web9
سه شنبه 04 آذر 1393, 13:26 عصر
دوست عزیز شما ofset , rowsPerpage بعد از سوییچ تعیین کردی که ارور میده ، این ارور در نگاه اول به چشم میاد ، اگه ارورها بزارید راحتر میتونیم کمک کنیم ، در ضمن بهتر به جای عبارت فارسی دکترا و ... از id دکترا استفاده کنید.

mohsen60
سه شنبه 04 آذر 1393, 13:50 عصر
خیلییییییییی ممنونم..خدا حفظتون کنه. بله کاملا درست میگید.جاشو تغییر دادم.
مشکلش اینه
Notice: Undefined index: group in E:\xampp\htdocs\xampp\re.php on line 12
چون وقتی میره تو صفحه بعد ، میگه group ناشناختست.چون کاربر ممکنه فقط مدرکو انتخاب کنه. نمی دونم چجوری کنترلش کنم
می تونید راهنماییم کنید

blue.web9
سه شنبه 04 آذر 1393, 14:28 عصر
شما از label استفاده نکردید ، بهتر اولین option که خالی گذاشتید مدرک بزارید و value اونو 0 یا false بزارید که کاربر متوجه بشه از این لیست مدرک باید انتخاب کنه مثلا :


<option value="0" >مدرک</option>

همین کار برای group انجام بدید ، بعد اول صفحه report.php چک میکنید که اگر مدرک نبود یا مقدارش 0 بود به صفحه رجیستر برگرده و کدی اجرا نشه مثلا :


if( !isset( $_POST['MADRAK'] ) || $_POST['MADRAK'] == '0' ){
header('Location: register.php');
exit;
}

همین کار برای گروپ هم انجام بدید .
موفق باشید.

mohsen60
سه شنبه 04 آذر 1393, 14:46 عصر
خیلی ممنونم.واقعا لطف کردید.

یه مشکل دیگه هم داره . وقتی مشخصات یک کاربر ثبت نام کرده رو نمایش میدم با یه نامیل و فامیل . میرم تو صفحه sen1.php. تو اون صفحه ، بقیه اطلاعتو نمایش میدم .میخوام یه دراپ دون لیستم باز شه و مدیر به اون کاربر از طریق دراپ دون لیست، یک وضعیت جدید بده.

.........



echo ' <a target="_blank" href=" send1.php?id='.$row['id']
.'" > " سایر اطلاعات کاربر" </a>' .'<br>' ;



[/PHP]
...........................send1.php

<?php

$id = $_GET['id'];
include_once('icrrrrd.php');
$query = "SELECT
nam,famil,id FROM users where id=$id ";
mysql_query("SET NAMES utf8");
mysql_query("SET CHARACTER_SET utf8");
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result))

echo 'nam:'.' '.$row['nam'] ;
echo ' <a target="_blank" href=" send2.php?id='.$row['id'].'" > "status" </a>' .'<br>' ;

?>

اینجان نمیدونم چه جوری با قراردادن یک دراپ دون .مدیریش کنم
باور کنید گیج شدم .وگرنه بیشتر روش کار میکردم بعد اشکال گیری میکردم

blue.web9
سه شنبه 04 آذر 1393, 16:28 عصر
اگه منظورتون از وضعیت جدید حذف یا تایید کاربر باشه باید یک فیلد وضعیت در جدول کاربر داشته باشید و مقدار اون فیلد تغییر بدید.یک دراپ دون با گزینه های حذف و تایید درست کنید ( با مقادیر 0 و 1 ) و بعد همین مقدار در بانک آپدیت میکنید.