[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сортировка по БД
Coffey
Здравствуйте! У меня есть БД и 2 таблицы в ней. Из этой БД с одной таблицы я вывожу в php документ данные в виде таблицы. Далее есть форма поиска по всей БД по значениям. Есть также 4 радио кнопки и 2 submit кнопки. Каждая радио кнопка должна отмечать один из столбцов из таблицы в БД, которую я вывожу в php документ. Всего столбцов 4, как и кнопок соответственно. И 2 кнопки для сортировки по убыванию и возрастания. Вообщем надо сделать так, чтобы при нажатии на одну из радио кнопок и нажатии на одну из submit кнопок выполнялся запрос. И так для каждого столбца таблицы. Т.е. для каждой радио кнопки должна быть сортировка по убыванию и возрастанию.
Очень надеюсь на вашу помощь!
Вообщем есть главный код, в котором описан поиск по всей БД по значениям. И побочный в котором идет сортировка по убыванию и возрастанию каждого столбца, но без нажатия на радио кнопку и submit, а просто таблица, в которой происходит сортировка данных по нажатию.Но эти 2 кода надо соединить и дополнить...В этом вся и проблема, никак не могу надумать как это сделать.
1)

<?php
$dbhost = "localhost"; // Имя хоста БД
$dbusername = "root"; // Пользователь БД
$dbpass = ""; // Пароль к базе
$dbname = "9laba"; // Имя базы
$dbconnect = mysql_connect ($dbhost, $dbusername, $dbpass);
if(@mysql_select_db($dbname)) { echo "Подключение к базе данных установлено!"; }
else die ("Подключение не установлено $dbname!");
$name=htmlspecialchars($_POST['name']);
$st=($_POST['id_st']);
$cena=($_POST['cena']);
$kol=($_POST['kol']);
$poisk=($_POST['poisk']);
$poiskn=($_POST['poiskn']);
$poisks=($_POST['poisks']);
$poiskc=($_POST['poiskc']);
$poiskk=($_POST['poiskk']);
$poiskv=($_POST['poiskv']);
$poisku=($_POST['poisku']);
print "<br><hr/>";
print "<form method=post >";
print "<br><b>Поиск по всей БД</b></br>";
print "<br><input type = 'text' name='poisk' size=20></br>";
if(isset($_POST['radioselector'])) {
}
else {
echo "<form>
<input type='Radio' name='radioselector' checked id='R1' value='poiskn'>
<label for='R1'>Сортировка по названию</label><br>
<input type='Radio' name='radioselector' id='R2' value='poisks'>
<label for='R2'>Сортировка по стране</label><br>
<input type='Radio' name='radioselector' id='R3' value='poiskc'>
<label for='R3'>Сортировка по цене</label><br>
<input type='Radio' name='radioselector' id='R4' value='poiskk'>
<label for='R4'>Сортировка по количеству</label><br>
</form>"
;
if(isset($_POST['poiskv'])) {
echo "Значение отмеченной кнопки: ".$_POST['poiskv'] ;
} else {
echo "<form>
<input name='poiskv' type='submit' value='По возрастанию'><br /> <br />
</form>"
;
}
}

if(isset($_POST['poisku'])) {
echo "Значение отмеченной кнопки: ".$_POST['poisku'] ;
} else {
echo "<form>
<input name='poisku' type='submit' value='По убыванию'><br /> <br />
</form>"
;
}
print "<table border=\"0\" cellpadding=\"1\" cellspacing=\"1\" bgcolor=\"a2a2a2\" width=\"100%\">\n";
print "\t<tr>\n";
print "\t<tr>\n";
print "\t\t<th bgcolor=\"ededed\" width=\"5%\" align=\"center\"><b>Название</b></th>\n";
print "\t\t<th bgcolor=\"ffffff\" width=\"20%\" align=\"center\">Страна</th>\n";
print "\t\t<th bgcolor=\"ffffff\" width=\"60%\" align=\"left\">Цена</th>\n";
print "\t\t<th bgcolor=\"ededed\" width=\"15%\" align=\"right\">Количество</th>\n";
print "\t<tr>\n";
print "</table>\n";
if ($poisk!=""){
if ($poiskn=" "){
$z="select * from `people` where `name` like '$poisk'";
$x=mysql_query($z) or die(mysql_error());
$c= MYSQL_NUMROWS ($x);
echo "<br>";
print "<table border=\"0\" cellpadding=\"1\" cellspacing=\"1\" bgcolor=\"a2a2a2\" width=\"100%\">\n";
while ($l = mysql_fetch_array($x, MYSQL_NUM)){
print "\t<tr>\n";
}
while ($o < $c){
$name= MYSQL_RESULT ($x,$o,"name");
$id_st= MYSQL_RESULT ($x,$o,"id_st");
$cena= MYSQL_RESULT ($x,$o,"cena");
$kol= MYSQL_RESULT ($x,$o,"kol");
print "\t\t<td bgcolor=\"ededed\" width=\"5%\" align=\"center\"><b>$name</b></td>\n";
print "\t\t<td bgcolor=\"ffffff\" width=\"20%\" align=\"center\">$id_st</td>\n";
print "\t\t<td bgcolor=\"ffffff\" width=\"60%\" align=\"left\">$cena</td>\n";
print "\t\t<td bgcolor=\"ededed\" width=\"15%\" align=\"right\">$kol</td>\n";
$o++;
print "\t<tr>\n";
print "</table>\n";
mysql_free_result($x);
}
}

if ($poisks=" "){
$v="select * from `people` where `id_st` like '$poisk'";
$s=mysql_query($v) or die(mysql_error());
$f= MYSQL_NUMROWS ($s);
echo "<br>";
print "<table border=\"0\" cellpadding=\"1\" cellspacing=\"1\" bgcolor=\"a2a2a2\" width=\"100%\">\n";
while ($lin = mysql_fetch_array($s, MYSQL_NUM)) {
print "\t<tr>\n";
}
while ($g < $f){
$name= MYSQL_RESULT ($s,$g,"name");
$id_st= MYSQL_RESULT ($s,$g,"id_st");
$cena= MYSQL_RESULT ($s,$g,"cena");
$kol= MYSQL_RESULT ($s,$g,"kol");
print "\t\t<td bgcolor=\"ededed\" width=\"5%\" align=\"center\"><b>$name</b></td>\n";
print "\t\t<td bgcolor=\"ffffff\" width=\"20%\" align=\"center\">$id_st</td>\n";
print "\t\t<td bgcolor=\"ffffff\" width=\"60%\" align=\"left\">$cena</td>\n";
print "\t\t<td bgcolor=\"ededed\" width=\"15%\" align=\"right\">$kol</td>\n";
$g++;
print "\t<tr>\n";
print "</table>\n";
mysql_free_result($s);
}
}

if ($poiskc=" "){
$p="select * from `people` where `cena` like '$poisk'";
$sv=mysql_query($p) or die(mysql_error());
$fg= MYSQL_NUMROWS ($sv);
echo "<br>";
print "<table border=\"0\" cellpadding=\"1\" cellspacing=\"1\" bgcolor=\"a2a2a2\" width=\"100%\">\n";
while ($li = mysql_fetch_array($sv, MYSQL_NUM)) {
print "\t<tr>\n";
}
while ($gr < $fg){
$name= MYSQL_RESULT ($sv,$gr,"name");
$id_st= MYSQL_RESULT ($sv,$gr,"id_st");
$cena= MYSQL_RESULT ($sv,$gr,"cena");
$kol= MYSQL_RESULT ($sv,$gr,"kol");
print "\t\t<td bgcolor=\"ededed\" width=\"5%\" align=\"center\"><b>$name</b></td>\n";
print "\t\t<td bgcolor=\"ffffff\" width=\"20%\" align=\"center\">$id_st</td>\n";
print "\t\t<td bgcolor=\"ffffff\" width=\"60%\" align=\"left\">$cena</td>\n";
print "\t\t<td bgcolor=\"ededed\" width=\"15%\" align=\"right\">$kol</td>\n";
$gr++;
print "\t<tr>\n";
print "</table>\n";
mysql_free_result($sv);
}
}

if ($poiskk=" "){
$pe="select * from `people` where `kol` like '$poisk'";
$su=mysql_query($pe) or die(mysql_error());
$fq= MYSQL_NUMROWS ($su);
echo "<br>";
print "<table border=\"0\" cellpadding=\"1\" cellspacing=\"1\" bgcolor=\"a2a2a2\" width=\"100%\">\n";
while ($lind = mysql_fetch_array($su, MYSQL_NUM)) {
print "\t<tr>\n";
}
while ($gy < $fq){
$name= MYSQL_RESULT ($su,$gy,"name");
$id_st= MYSQL_RESULT ($su,$gy,"id_st");
$cena= MYSQL_RESULT ($su,$gy,"cena");
$kol= MYSQL_RESULT ($su,$gy,"kol");
print "\t\t<td bgcolor=\"ededed\" width=\"5%\" align=\"center\"><b>$name</b></td>\n";
print "\t\t<td bgcolor=\"ffffff\" width=\"20%\" align=\"center\">$id_st</td>\n";
print "\t\t<td bgcolor=\"ffffff\" width=\"60%\" align=\"left\">$cena</td>\n";
print "\t\t<td bgcolor=\"ededed\" width=\"15%\" align=\"right\">$kol</td>\n";
$gy++;
print "\t<tr>\n";
print "</table>\n";
mysql_free_result($su);
}
}
}

else{
$query = "SELECT name, id_st, cena, kol FROM `people`";
$result = mysql_query($query) or die("Запрос ошибочный");
$number= MYSQL_NUMROWS ($result);
echo "<br>";
print "<table border=\"0\" cellpadding=\"1\" cellspacing=\"1\" bgcolor=\"a2a2a2\" width=\"100%\">\n";
while ($line = mysql_fetch_array($result, MYSQL_NUM)) {
print "\t<tr>\n";
while ($i < $number){
$name= MYSQL_RESULT ($result,$i,"name");
$id_st= MYSQL_RESULT ($result,$i,"id_st");
$cena= MYSQL_RESULT ($result,$i,"cena");
$kol= MYSQL_RESULT ($result,$i,"kol");
print "\t\t<td bgcolor=\"ededed\" width=\"5%\" align=\"center\"><b>$name</b></td>\n";
print "\t\t<td bgcolor=\"ffffff\" width=\"20%\" align=\"center\">$id_st</td>\n";
print "\t\t<td bgcolor=\"ffffff\" width=\"60%\" align=\"left\">$cena</td>\n";
print "\t\t<td bgcolor=\"ededed\" width=\"15%\" align=\"right\">$kol</td>\n";
$i++;
print "\t<tr>\n";
}
}

print "</table>\n";
mysql_free_result($result);
mysql_close($dbconnect);
}
?>

2)

<?php
$dblocation = "localhost"; // Имя сервера
$dbuser = "root"; // Имя пользователя
$dbpswrd = ""; // Пароль
$dbname = "9laba"; // Имя базы данных
// Соединение с сервером базы данных

$dblink = mysql_connect( $dblocation, $dbuser, $dbpswrd );
mysql_query( 'SET NAMES cp1251' );
// Выбираем базу данных
mysql_select_db( $dbname, $dblink );
// Сортировка
$orderby = 'name';
$sort = 'ASC';
if ( isset( $_GET['orderby'] ) and isset( $_GET['sort'] ) ) {
if ( in_array( $_GET['orderby'], array( 'name', 'id_st', 'cena', 'kol') ) ) $orderby = $_GET['orderby'];
if ( in_array( $_GET['sort'], array( 'ASC', 'DESC' ) ) ) $sort = $_GET['sort'];
}
$query = 'SELECT name, id_st, cena, kol
FROM people
ORDER BY '
.$orderby.' '.$sort;
$res = mysql_query( $query );
echo '<h1>Сортировка</h1>'."\n";
// Выводим "шапку" таблицы
print "<table border=\"1\" cellpadding=\"1\" cellspacing=\"1\" width=\"100%\">\n";
echo '<tr>';
if ( $sort == 'ASC' ) {
$tmp = 'DESC';
} else {
$tmp = 'ASC';
}
if ( $orderby == 'name' )
echo '<th><a href="'.$_SERVER['PHP_SELF'].'?orderby=name&sort='.$tmp.'">Название</a> </th>';
else
echo '<th><a href="'.$_SERVER['PHP_SELF'].'?orderby=name&sort=ASC">Название</a></th>';
if ( $orderby == 'id_st' )
echo '<th><a href="'.$_SERVER['PHP_SELF'].'?orderby=id_st&sort='.$tmp.'">Страна</a> </th>';
else
echo '<th><a href="'.$_SERVER['PHP_SELF'].'?orderby=id_st&sort=ASC">Страна</a></th>';
if ( $orderby == 'cena' )
echo '<th><a href="'.$_SERVER['PHP_SELF'].'?orderby=cena&sort='.$tmp.'">Цена</a> </th>';
else
echo '<th><a href="'.$_SERVER['PHP_SELF'].'?orderby=cena&sort=ASC">Цена</a></th>';
if ( $orderby == 'kol' )
echo '<th><a href="'.$_SERVER['PHP_SELF'].'?orderby=kol&sort='.$tmp.'">Количество</a> </th>';
else
echo '<th><a href="'.$_SERVER['PHP_SELF'].'?orderby=kol&sort=ASC">Количество</a></th>';
echo '</tr>'."\n";
while( $prd = mysql_fetch_array( $res ) ) {
echo '<tr>';
echo '<td>'.$prd['name'].'</td>'."\n";
echo '<td>'.$prd['id_st'].'</td>'."\n";
echo '<td>'.$prd['cena'].'</td>'."\n";
echo '<td>'.$prd['kol'].'</td>'."\n";
echo '</tr>'."\n";
}
echo '</table>'."\n";
?>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.