ребята спасайте!
есть база данных mysql. в ней поля name и name_en
первое поле содержит имена любыми буквами, русскими или англискими
второе поле заполняется когда в первом поле кирилица - тогда во втором тоже самое по англиски.
Например:
John, null
Боря, Borya
Юля, Julia
Peter, null
кроме того есть перименная $t которая включат длЯ иносранных юзеров функцию "показать все латиницей"
делаю так:
$query = "select * from tablica order by name, name_en";
$result = mysql_query ($query) or die ("Query failed");
while ($row = mysql_fetch_array ($result)) {
if ($t != '1') {
echo row["name"]; // тут я разобралась
}
elseif ($tl == '1' and $name_en == null {
echo row["name"]; // тут я тоже разобралась
}
else {
echo row["name_en"];
}
писец в чем: если руские имена выводятся кирилицей с сортировкой все хорошо, получаю
John
Peter
Боря
Юля
а если все нужно показать латиницей сортировка все равно идет по столбцу name и получается
John
Peter
Borya
Julia
не по алфавиту
ребята помогите исправить, не дайте умереть невинной!!!!
1. Jungla - 03 Июня, 2008 - 10:53:20 - перейти к сообщению
2. valenok - 03 Июня, 2008 - 12:21:11 - перейти к сообщению
ORDER BY `field` ASC
ORDER BY `field` DESC
ORDER BY `field` DESC
3. Jungla - 03 Июня, 2008 - 13:31:20 - перейти к сообщению
valenok пишет:
ORDER BY `field` ASC
ORDER BY `field` DESC
ORDER BY `field` DESC
order by у меня уже прописан, а asc и desc вроде бы просто меняют порядок сортировки - прямой или обратрный, нет?
мне не это нужно
4. RomAndry - 03 Июня, 2008 - 13:56:09 - перейти к сообщению
Цитата:
сортировка все равно идет по столбцу name и получается
elseif ($tl == '1' and $name_en == null {
вот тут по моему необходимо
elseif ($tl == 1 and $row['name_en'] == null) {
echo row["name"];
должно быть
echo $row["name"];
(Добавление)
у Вас ошибка в логике IFELSE
по сути Ваш скрипт работает
John
Peter
Боря
Юля
только подменяет русские на латинские.
5. valenok - 03 Июня, 2008 - 15:30:35 - перейти к сообщению
дА не разглядел среди смайликов и прочего коктейля
6. Jungla - 03 Июня, 2008 - 15:37:22 - перейти к сообщению
[quote=RomAndry]
ну да, так оно и есть. просто когда адаптировала для форума код, слишком уж садаптроавала
мне нужно, чтобы сортировка шла по столбцу name, там где на выход идет name, и по столбцу name_en, там где на выход идет name_en.
как этого добиться я и не могу понять - сортировка всегда идёт по name. если изменить порядок в order by на name_en, name тоже ничего хорошего не получается. должен же быть способ
(Добавление)
простите уж глупую блондинку! без смайликов.
Цитата:
echo row["name"];
должно быть
echo $row["name"];
echo row["name"];
должно быть
echo $row["name"];
ну да, так оно и есть. просто когда адаптировала для форума код, слишком уж садаптроавала
мне нужно, чтобы сортировка шла по столбцу name, там где на выход идет name, и по столбцу name_en, там где на выход идет name_en.
как этого добиться я и не могу понять - сортировка всегда идёт по name. если изменить порядок в order by на name_en, name тоже ничего хорошего не получается. должен же быть способ
(Добавление)
valenok пишет:
дА не разглядел среди смайликов и прочего коктейля
простите уж глупую блондинку! без смайликов.
7. RomAndry - 03 Июня, 2008 - 16:23:17 - перейти к сообщению
Вам необходимо строить логику запроса по значению переменной $t
типа такого:
типа такого:
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- <?PHP
- $order = $t==1 ? 'name' : 'name_en';
- $query = "SELECT * FROM `tablica` ORDER BY " . $order;
- ?>