|
|
|
| Не знаю как правельно выразиться, так что выдам пример:
Нажатием на ссылку, происходит изменение Операторов MySQL, и еще можно сказать как бы отсортировать данные по вкусу из базы данных... =?) | |
|
|
|
|
|
|
|
для: JESS
(21.07.2007 в 20:28)
| | Оператор (первое определение) | |
|
|
|
|
|
|
|
для: Unkind
(21.07.2007 в 21:54)
| | Eto eshe i drugoj podforum. Obnovlenie zapisi v MySQL: UPDATE table SET name='value', name2='value2'. Dlya vyborki ispol'zuetsya(samoe prostoe): SELECT * FROM table WHERE name='value' ORDER BY date ASC. WHERE - vyborka zapisej, udovletvoryayushih znacheniyu. ORDER BY - gruppirovka zaprosa. V dannom sluchae po vozrostaniyu v 'date'. | |
|
|
|
|
|
|
|
для: SportSoft
(21.07.2007 в 22:39)
| | конечно профессионалу все лего, просто UPDATE table SET прошу по подробнее нельзя?? | |
|
|
|
|
|
|
|
для: JESS
(21.07.2007 в 20:28)
| | Я не очень вопрос понял.
Вам надо отсортировать полученные данные из запроса? Для этого есть функции, sort, usort, etc..
Или прямо в запросе ORDER BY "fldName"
http://dev.mysql.com/doc/refman/5.1/en/select.html | |
|
|
|
|
|
|
|
для: Бамси
(22.07.2007 в 02:24)
| | Я именю виду как мошно отсортировать данные нажатием на ссылку..? | |
|
|
|
|
|
|
|
для: JESS
(21.07.2007 в 20:28)
| | Я так понимаю нужно упорядочить их вывод.
Ну, если речь о ссылке, то можно так:
пусть нужно упорядочить по полю "name".
На этой ссылке напрмер написать (самый очевидный и простой пример):
<a href='index.php?moda=name'>Упорядочить по имени</a>.
пусть мы жмем на эту ссылку.
Проверяем на $_GET['moda'] на == 'name'
псевдокод:
$byw='';
Если истина, то
$byw=' ORDER BY name ';
и сам запрос: $res = mysql_query("SELECT * FROM table_name $byw");
иначе
$res = mysql_query("SELECT * FROM table_name $byw");
а потом делаем что надо с результатом запроса. | |
|
|
|
|
|
|
|
для: marcus
(22.07.2007 в 13:42)
| | Да точто нужно, а если у нас две ссылки,
$_GET['mod'] = 'N';
$byw='WHERE cat1=15 ';
$_GET['mod'] = 'D';
byw='WHERE cat1=5 ';
print "<a href='show.php?mod=N'>-N-</a>";
print "<a href='show.php?mod=D'>-D-</a>";
|
то все сортируеться по последней "D"
a oстальные ссылки просто не рабитают,
<?php
include "./conn.php";
mysql_connect("$dbHost", "$dbUser", "$dbPass");
mysql_select_db("$dbName");
$_GET['moda'] = 'N';
$byw='WHERE cat1=15';
$_GET['moda'] = 'D';
$byw='WHERE cat1=15';
result = mysql_query("SELECT * FROM $tablename $byw");
if (mysql_num_rows($result) != 0) {
while($query_data = mysql_fetch_row($result)) {
$body = "<table cellpadding=2 cellspacing=2 width=100% bordercolordark=black bordercolorlight=black>
<tr>
<td width=965 bgcolor=#39393B>
<p><img src=images/for_menu_2.gif border=0 align=absmiddle>
<a href=#>$query_data[1]</a></p>
</td>
</tr>
</table>";
print $body;
}
} else {
echo "Sorry!";
}
print "<a href='show.php?moda=N'>-N-</a>";
print "<a href='show.php?moda=D>-D-</a>";
|
| |
|
|
|
|
|
|
|
для: JESS
(22.07.2007 в 14:05)
| | если ссылок две и более, то можно поработать например с неповоротливым switсh, или просто описать все как if / else.
Например:
<?php
.....
$byw='';
$mod=$_GET['moda'];
if($mod!='')
{
switch($mod)
{
//например такие поля
case 'phone': $byw=' ORDER BY tel '; break;
case 'mail': $byw=' ORDER BY email '; break;
case 'name': $byw=' ORDER BY name ';
}
}
result = mysql_query("SELECT * FROM $tablename $byw");
......
?>
|
по такой же схеме добавить asc/desc (если нужно)
а вообще использовать GET метод как-то уже не то... лучше забить все в сессионные глобальные переменные | |
|
|
|
|
|
|
|
для: marcus
(22.07.2007 в 16:24)
| | вот ошибка не могу исправить иначе ничего не работает
Notice: Undefined index: moda in z:\home\localhost\www\my_001\show.php on line 11 | |
|
|
|
|
|
|
|
для: JESS
(22.07.2007 в 20:04)
| | покажите скрипт show.php | |
|
|
|
|
|
|
|
для: marcus
(22.07.2007 в 21:11)
| | вот он:
<?php
include "./conn.php";
mysql_connect("$dbHost", "$dbUser", "$dbPass");
mysql_select_db("$dbName");
print "<a href='index2.php'>-Home-</a>";
$byw='';
$mod = $_GET['action'];
if($mod!='')
{
switch($mod)
{
case 'a': $byw=' WHERE cat1=2 ';break;
case 'b': $byw=' WHERE cat1=3 ';break;
case 'c': $byw=' WHERE cat1=4 '; break;
case 'd': $byw=' WHERE cat1=5 '; break;
case 'e': $byw=' WHERE cat1=6 '; break;
case 'f': $byw=' WHERE cat1=7 '; break;
case 'g': $byw=' WHERE cat1=8 '; break;
case 'h': $byw=' WHERE cat1=9 '; break;
case 'i': $byw=' WHERE cat1=10 ';break;
case 'j': $byw=' WHERE cat1=11 ';break;
case 'k': $byw=' WHERE cat1=12 ';break;
case 'l': $byw=' WHERE cat1=13 '; break;
case 'm': $byw=' WHERE cat1=14 ';break;
case 'n': $byw=' WHERE cat1=15 ';break;
case 'o': $byw=' WHERE cat1=16 '; break;
case 'p': $byw=' WHERE cat1=17 ';break;
case 'q': $byw=' WHERE cat1=18 '; break;
case 'r': $byw=' WHERE cat1=19 ';break;
case 's': $byw=' WHERE cat1=20 '; break;
case 't': $byw=' WHERE cat1=21 ';break;
case 'u': $byw=' WHERE cat1=22 ';break;
case 'v': $byw=' WHERE cat1=23 ';break;
case 'w': $byw=' WHERE cat1=24 '; break;
case 'x': $byw=' WHERE cat1=25 '; break;
case 'y': $byw=' WHERE cat1=26 '; break;
case 'z': $byw=' WHERE cat1=27 '; break;
case '#': $byw=' WHERE cat1=28 ';
case 'home': $byw=' ORDER BY type'; break;
}
}
$result = mysql_query("SELECT * FROM $tablename $byw ORDER BY name");
while($query_data = mysql_fetch_row($result)) {
$body = "<table cellpadding=2 cellspacing=2 width=100% bordercolordark=black bordercolorlight=black>
<tr>
<td width=965 bgcolor=#39393B>
<p><img src=images/for_menu_2.gif border=0 align=absmiddle>
<a href=#
onclick=JavaScript:window.open('$query_data[2]','','width=400,height=100,toolbar=no,resizable=no')
> $query_data[1]</a></p>
</td>
</tr>
</table>";
print $body;
}
print "<a href='$PHP_SELF?action=n'>-N-</a>";
print "<a href='$PHP_SELF?action=d>-D-</a>";
?>
|
| |
|
|
|
|
|
|
|
для: JESS
(22.07.2007 в 21:41)
| | A zachem Vy pishite: $byw = ''; | |
|
|
|
|
|
|
|
для: SportSoft
(22.07.2007 в 22:25)
| | да я не знаю, а что надо писать что то другое? | |
|
|
|
|
|
|
|
для: SportSoft
(22.07.2007 в 22:25)
| | :) предостережение (из C/C++ пошло :)), а так вроде при инициализации в php все по нулям стоит.
но хуже не будет | |
|
|
|
|
|
|
|
для: JESS
(22.07.2007 в 21:41)
| | Вместо $mod = $_GET['action']; поставьте: if(isset($_GET['action'])) $mod = $_GET['action'];
Затем в предпоследнем case нужно добавить break;
Последний case "лишний", т.к. если выпадет на него условие, то будет ошибка запроса sql.
Потом сохрание в переменную $body лучше не делать, а в блоке while записать:
echo "<table cellpa................</table>";
В строке
print "<a href='$PHP_SELF?action=d>-D-</a>";
не хватает ещё одной одинарной ковычки.
для дебага скрипта удобно использовать дебаггер, или оператор die("переменная на вывод") | |
|
|
|
|
|
|
|
для: marcus
(22.07.2007 в 22:47)
| | Ты уж прости что так все спрашиваю, но я пока новичек в этом деле...
Вот еще ошибка, код исправил..
Notice: Undefined variable: mod in z:\home\localhost\www\my_001\show.php on line 13
<?php
include "./conn.php";
mysql_connect("$dbHost", "$dbUser", "$dbPass");
mysql_select_db("$dbName");
print "<a href='index2.php'>-Home-</a>";
$byw='';
if(isset($_GET['action'])) $mod = $_GET['action'];
if($mod!='')
{
switch($mod)
{
case 'a': $byw=' WHERE cat1=2 ';break;
case 'b': $byw=' WHERE cat1=3 ';break;
case 'c': $byw=' WHERE cat1=4 '; break;
case 'd': $byw=' WHERE cat1=5 '; break;
case 'e': $byw=' WHERE cat1=6 '; break;
case 'f': $byw=' WHERE cat1=7 '; break;
case 'g': $byw=' WHERE cat1=8 '; break;
case 'h': $byw=' WHERE cat1=9 '; break;
case 'i': $byw=' WHERE cat1=10 ';break;
case 'j': $byw=' WHERE cat1=11 ';break;
case 'k': $byw=' WHERE cat1=12 ';break;
case 'l': $byw=' WHERE cat1=13 '; break;
case 'm': $byw=' WHERE cat1=14 ';break;
case 'n': $byw=' WHERE cat1=15 ';break;
case 'o': $byw=' WHERE cat1=16 '; break;
case 'p': $byw=' WHERE cat1=17 ';break;
case 'q': $byw=' WHERE cat1=18 '; break;
case 'r': $byw=' WHERE cat1=19 ';break;
case 's': $byw=' WHERE cat1=20 '; break;
case 't': $byw=' WHERE cat1=21 ';break;
case 'u': $byw=' WHERE cat1=22 ';break;
case 'v': $byw=' WHERE cat1=23 ';break;
case 'w': $byw=' WHERE cat1=24 '; break;
case 'x': $byw=' WHERE cat1=25 '; break;
case 'y': $byw=' WHERE cat1=26 '; break;
case 'z': $byw=' WHERE cat1=27 '; break;
case '#': $byw=' WHERE cat1=28 '; break;
}
}
$result = mysql_query("SELECT * FROM $tablename $byw ORDER BY name");
if (mysql_num_rows($result) != 0) {
while($query_data = mysql_fetch_row($result)) {
$body = "<table cellpadding=2 cellspacing=2 width=100% bordercolordark=black bordercolorlight=black>
<tr>
<td width=965 bgcolor=#39393B>
<p><img src=images/for_menu_2.gif border=0 align=absmiddle>
<a href=#
onclick=JavaScript:window.open('$query_data[2]','','width=400,height=100,toolbar=no,resizable=no')
> $query_data[1]</a></p>
</td>
</tr>
</table>";
print $body;
}
} else {
echo "Sorry!";
}
print "<a href='$PHP_SELF?action=n'>-N-</a>";
print "<a href='$PHP_SELF?action=d'>-D-</a>";
?>
|
| |
|
|
|
|
|
|
|
для: JESS
(22.07.2007 в 23:41)
| | Ну, оповещает, что не определена эта переменная $mod :(
Попробуй перед $byw=''; поставить $mod=''; - возможно поможет, т.к. будет инициализация уже | |
|
|
|
|
|
|
|
для: marcus
(23.07.2007 в 00:51)
| | Большое спасибо!!! Как все гениально просто =) | |
|
|
|