Проблем с подреждане

adrian

Registered
Значи ето как съм направил да се подреждат потребителите от
members.php

Код:
	echo("Подреди: <form method=\"POST\" action=\"?\" > 
		<select name=\"order_by\">
		<option value=\"id\">Подреждане по ID:</option>
		<option value=\"potrebitel\">Потребителско име:</option>
		<option value=\"real_name\">Истинско име:</option>
		<option value=\"familia\">Фамилия:</option>
		<option value=\"email\">Емайл:</option>
		<option value=\"godini\">Години:</option>
		<option value=\"date_reg\">Дата на регистрация:</option>
		</select>
		Във: 
		<select name=\"type_order\">
		<option value=\"DESC\">Възходящ</option>
		<option value=\"ASC\">Низходящ</option>
		</select>
		<input type=\"submit\" value=\"Търси\"> 
		</form>");
	$search_crit = $_POST['order_by'];
	$type_order = $_POST['type_order'];

	$zaiavka = "select * from register order by $search_crit $type_order";
Но когато дам да се сортират по низходящ ред не прави нищо
 

mute

Registered
пробвай
$zaiavka = "select * from register order by '$search_crit' '$type_order' ";
или
$zaiavka = "select * from register order by ".$search_crit." ".$type_order;
 

adrian

Registered
Пак не става. Като натисна бутона да ми ги подрежда, ги подрежда само във възходящ. Не иска да ги подреди в низходящ изобщо
 

mute

Registered
добре направи едбно echo на заявката
echo $zaiavka ;
виж дали ти изкарва това което искаш изобщо
 

adrian

Registered
echo ми дава този резултат
select * from register order by 'id' 'DESC' или select * from register order by 'id' 'ASC' или там другите възможности подреждане по потребителско име, емайл адрес и т.н
 

mute

Registered
несъм сигорен но маи не трябв да са в кавички 'id' 'DESC'
$zaiavka = "SELECT * FROM register ORDER BY ".$search_crit." ".$type_order;
така неставали ?
 

mute

Registered
вуж какво направих аз

Код:
<?php
$echo="Подреди: <form method=\"POST\" action=\"members.php\" >
      <select name=\"order_by\">
      <option value=\"user_id\">Подреждане по ID:</option>
      <option value=\"username\">Потребителско име:</option>
      <option value=\"user_email\">Емайл:</option>
      <option value=\"user_regdate\">Дата на регистрация:</option>
      </select>
      Във:
      <select name=\"type_order\">
      <option value=\"DESC\">Възходящ</option>
      <option value=\"ASC\">Низходящ</option>
      </select>
      <input type=\"submit\" value=\"Търси\" name=\"submit\" >
      </form>";

if(!isset($_POST['submit'])){

	echo $echo;
 
}
else{
	
	
	$by=$_POST['order_by'];
	$desc=$_POST['type_order'];
	echo $echo;
	$sql="SELECT username FROM phpbb_users ORDER BY ".$by." ".$desc;
	
	include('../conn.php');
	$link=mysql_connect('localhost',$user,$password);
    $db=mysql_select_db($database);
	$q=mysql_query($sql,$link);
	while($red=mysql_fetch_row($q)){
		echo $red[0]."<br />";
	}
	
	
}
?>
така работи $sql="SELECT username FROM phpbb_users ORDER BY ".$by." ".$desc;

приспособиго към твоята база данни , можеби нещо бъркаш имената на таблиците затова нетисе получава незнам ;)
 

adrian

Registered
ами значи ето ми го скрипта за изеждане на потребителите
Код:
<html>
<head><title>Регистрирани потребители</title></head>
<body>
<?php
	
	include("config.php");

	$potrebiteli = mysql_select_db("site", $db_conn)
		or die("Базата данни не може да бъде открита");

	echo("Подреди: <form method=\"POST\" action=\"?\" > 
		<select name=\"order_by\">
		<option value=\"id\">Подреждане по ID:</option>
		<option value=\"potrebitel\">Потребителско име:</option>
		<option value=\"real_name\">Истинско име:</option>
		<option value=\"familia\">Фамилия:</option>
		<option value=\"email\">Емайл:</option>
		<option value=\"godini\">Години:</option>
		<option value=\"date_reg\">Дата на регистрация:</option>
		</select>
		Във: 
		<select name=\"type_order\">
		<option value=\"DESC\">Възходящ</option>
		<option value=\"ASC\">Низходящ</option>
		</select>
		<input type=\"submit\" value=\"Търси\"> 
		</form>");
	$by = $_POST['order_by'];
	$desc = $_POST['type_order'];

	$zaiavka = "select * from register order by ".$by." ".$desc; 
	echo( $zaiavka );

	$potrebiteli = mysql_query($zaiavka, $db_conn)
		or die("Заявката не може да бъде изпълнена");

	$members = "<table border=\"3\" cellpadding=\"3\">";
	$members .= "<tr><th>ID №</th>";
	$members .= "<th>Потребителско име</th>";
	$members .= "<th>Име</th>";
	$members .= "<th>Фамилия</th>";
	$members .= "<th>Емайл адрес</th>";
	$members .= "<th>Години</th>";
	$members .= "<th>Дата на регистрация</th>";
	$members .= "<th>Ниво на потребителия</th></tr>";
	while($red = mysql_fetch_array($potrebiteli) )
		{
			$members .= "<tr>";
			$members .="<td>".$red["id"]."</td>";
			$members .="<td>".$red["potrebitel"]."</td>";
			$members .="<td>".$red["real_name"]."</td>";
			$members .="<td>".$red["familia"]."</td>";
			$members .="<td>".$red["email"]."</td>";
			$members .="<td>".$red["godini"]."</td>";
			$members .="<td>".$red["date_reg"]."</td>";
			switch($red["user_level"]) {
				case 1: $members .="<td>Потребител</td>";
				break;
				case 2: $members .="<td>Админ</td>";
				break;
			}
			$members .="</tr>";
		}
		$members .= "</table>";

	echo($members);
?>

Но пак дава грешка, пробвах по всички начини, който каза и не става :cry: , знам, че е някой малък детайл, който се пропускам, но не мога да го видя
 

mute

Registered
дай едно print_r($potrebiteli); изобщо съдържали нещо ?

пробвай също да го напишеш и така
"SELECT * FROM `register` ORDER BY ".$by." ".$desc;

и другото е след като
echo $zaiavka; ти изкара съдържанието копираи го и въведи в phpmyadmin-a и виж давали някви резултати

и аз не виждам грешката :s
 

adrian

Registered
Нестава и не става, ще взема да го махна това във възходящ и низходящ ред, за да не се нервирам излишно :)
Иначе print_r изкара следния резълтат

Resource id #4 , а къде точно в phpmyadmin-а да го въведа ?
 

bafitu

Registered
Ам.. кода който си дал си работи перфектно..
Някъде ти бъркаш..
Промени :
echo("Подреди: <form method=\"POST\" action=\"?\" >
на
echo("Подреди: <form method=\"POST\" action=\"$_SERVER[PHP_SELF]\" >

Мисля , че като цъкнеш да се подрежда по един начин си работи , но като цъкнеш след това на друг начин нестава ?
това е заради тая ? и се заблуждаваш...
 

adrian

Registered
Пак не става, ясно ще трябва да го махна това възходящ и низходящ, за да не ми създава главоболия ;)
 

Горе