сортировка базы

senator

Guest
сортировка базы

привет,
вот такой расклад:

if (!isset($sort)) $sort = "name";
$query = "SELECT * FROM people ORDER BY $sort DESC";
$result = mysql_query($query);
<a href = \"dbinfo.php?sort=name\">Имя</a>
<a href = \"dbinfo.php?sort=email\">email</a>

при нажатии на сслку, данные не сортируются, почему?:confused:
 

FreeSpace

Чукча-читатель
ROFL :)))
Но скорее всего тебе сюда:
http://faq.phpclub.net/register_globals
 

senator

Guest
что за народ, разве нельзя дать прямой ответ на вопрос
 

Макс

Старожил PHPClub
senator
Во-первых прочти ссылку, которую дал FreeSpace
Во-вторых
PHP:
echo $query = "SELECT * FROM people ORDER BY $sort DESC";
что выводит ?
 

senator

Guest
должно выводить, всё что у меня находится в таблице, а оно не выводится...
 

Макс

Старожил PHPClub
строка кода который идет ниже выводит текст SQL-запроса.
PHP:
echo $query = "SELECT * FROM people ORDER BY ".$sort." DESC";
помести в свой скрипт, выполни его (скрипт) и покажи, какой запрос выводится на экран.
 

senator

Guest
да, у меня стояло register_globals =off

но я же данные не плучаю из формы, или адресная строка это тоже самое?
 

Макс

Старожил PHPClub
Грубо говоря это тоже самое
в детали вдаваться не буду - ты их сейчас не поймешь
 

senator

Guest
мужики ну потерпите, ну тупой я, но пытаюсь во всё въехать

всё уже перепробовал, статью 5 раз прочитал

register_globals=off поставил в других скриптах всё выводится
через _POST и _GET уже незнаю куда смотреть вот весь мой скрипт:

if(!mysql_pconnect("localhost","senator","12345"))
{
echo "Не могу соединиться с базой!<br>";
echo mysql_error();
exit;
}
mysql_select_db("info") or die("Не могу соединиться с базой!");
if (!isset($sort)) $sort = "name";
$query = "SELECT * FROM people ORDER BY ".$sort." DESC";
$result = mysql_query($query)or die (mysql_error());

print "<table bgcolor=#ffffcc width=\"650\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td width=\"200\" bgcolor=#0099CC><font size=\"1\" face=\"Verdana\" color=\"#ffffcc\"><b><a href = \"dbinfo.php?sort=name\">Имя</a></b></td>
<td width=\"120\" bgcolor=#0099CC><font size=\"1\" face=\"Verdana\" color=\"#ffffcc\"><b><a href = \"dbinfo.php?sort=lastname\">Фамилия</a></b></td>
<td width=\"80\" bgcolor=#0099CC><font size=\"1\" face=\"Verdana\" color=\"#ffffcc\"><b><a href = \"dbinfo.php?sort=age\">Возраст</a></b></td>
<td width=\"200\" bgcolor=#0099CC><font size=\"1\" face=\"Verdana\" color=\"#ffffcc\"><b><a href = \"dbinfo.php?sort=email\">email</a></b></td>
<td width=\"130\" bgcolor=#0099CC><font size=\"1\" face=\"Verdana\" color=\"#ffffcc\"><b><a href = \"dbinfo.php?sort=tel\">Дом. Тел.</a></b></td>
<td width=\"130\" bgcolor=#0099CC><font size=\"1\" face=\"Verdana\" color=\"#ffffcc\"><b><a href = \"dbinfo.php?sort=mob\">Моб. Тел.</a></b></td>
</tr>";

while (list($name,$lastname,$age,$email,$tel,$mob) = mysql_fetch_row($result));
{
print "<tr>";
print "<td width=\"200\"> <font size=\"1\" face=\"Verdana\" color=\"#333333\">$name</td>";
print "<td width=\"120\"> <font size=\"1\" face=\"Verdana\" color=\"#333333\">$lastname</td>";
print "<td width=\"80\"> <font size=\"1\" face=\"Verdana\" color=\"#333333\">$age</td>";
print "<td width=\"200\"> <font size=\"1\" face=\"Verdana\" color=\"#333333\"><a href=mailto:$email><font size=\"2\" face=\"Verdana\" color=\"#333333\">$email</a></td>";
print "<td width=\"130\"> <font size=\"1\" face=\"Verdana\" color=\"#333333\">$tel</td>";
print "<td width=\"130\"> <font size=\"1\" face=\"Verdana\" color=\"#333333\">$mob</td>";
print "</tr>";
}
print "</table>";
mysql_close();
 

Vorgal

Новичок
обращайся к переменной sort - $_GET['sort'], только проверяй её предварительно
 

fixxxer

К.О.
Партнер клуба
1) Для получения данных из GET-запроса (http://xxx.com/script.php?xxx=yyy или <form method=get><input name=xxx>) используй $_GET['xxx']
2) Для получения данных из POST-запроса используй $_POST['xxx']
3) Твой способ использования входных данных является классической уязвимостью SQL Injecton (хотя в данном случае ничем очень уж серьезным это не грозит - но сам подход в корне неверный). Никогда не подставляй GET или POST данные напрямую в SQL-запросы.
 

Pietrovich

Guest
>if (!isset($sort)) $sort = "name";
>$query = "SELECT * FROM people ORDER BY ".$sort." DESC";


это... нехило бы проверить что тебе в sort накатали...
он конечно ПХП двойной запрос не выполнит, но все-же...
 

HEm

Сетевой бобер
столько шуму из ничего.....
PHP:
echo $query;
решает 70% непонятых проблем с запросом
 
Сверху