|
|
|
| Можно ли в результат, который выбирает из таблицы данные:
$res = mysql_query("SELECT name FROM table WHERE id = ".$_GET['per'],$db);
|
, включить еще одну строку данных, но так чтобы они добавились первой строкой в переменную $res или такое не возможно сделать? | |
|
|
|
|
|
|
|
для: xpom
(01.09.2008 в 21:13)
| | можно, только осторожно)
как вам надо? | |
|
|
|
|
|
|
|
для: Balamut182
(01.09.2008 в 21:26)
| | Я вывожу данные из таблицы в три столбика checkbox вот таким образом:
<?php
$kol_yach=3;
$named= mysql_query("SELECT name FROM tabl WHERE id = ".$_GET['id'],$db);
$idt = mysql_query("SELECT id FROM tabl WHERE id = ".$_GET['id'],$db);
if(mysql_num_rows($named))
{
$vniz= (int)(mysql_num_rows($named)/$kol_yach);
if(mysql_num_rows($named)%$kol_yach) $vniz++;
//включаем в список данные не из таблицы...которые нужно вывести в списке первыми
$idd=150;//id данных
$named="Имя";//само имя данных
echo "<table>";
for($i = 0; $i < $vniz; $i++)
{
echo "<tr>";
for($j = 0; $j < $kol_yach; $j++)
{
$namev=@mysql_result( $idt, $j*$vniz + $i);
$nazv=@mysql_result($named, $j*$vniz + $i);
if(!empty($namev))
{
echo '<td><input name="'.$namev.'" type="checkbox" value="ON">'.$nazv.'</td>';
}
}
echo "</tr>";
}
echo "</table>";
}
?>
|
Нужно добавить эти дополнительные данные в список на первое место? | |
|
|
|
|
|
|
|
для: xpom
(01.09.2008 в 21:45)
| | можно использовать UNION для склеивания двух разных наборов данных, но должны соответствовать типы данных столбцов и их количество | |
|
|
|
|
|
|
|
для: ronin80
(02.09.2008 в 09:06)
| | Да, данные соответствуют, скажите а как воспользоваться этим склеиванием UNION? Можно на примерчике показать... | |
|
|
|
|
|
|
|
для: xpom
(02.09.2008 в 20:00)
| | ну если например у вас такой запрос
SELECT name FROM table WHERE id = значение1
то можно добавить в начало строки/строку из этой же таблицы но с другим условием отбора, например
SELECT name FROM table WHERE id = значение2
UNION
SELECT name FROM table WHERE id = значение1
можно склеить с данными из другой таблицы, но должны соответствовать количество и типы данных столбцов, например
SELECT name FROM table WHERE id = значение1
UNION
SELECT name FROM table2 WHERE id = значение2 | |
|
|
|
|
|
|
|
для: xpom
(02.09.2008 в 20:00)
| | читайте мануал
(SELECT a FROM table_name WHERE a=10 AND B=1 ORDER BY a LIMIT 10)
UNION
(SELECT a FROM table_name WHERE a=11 AND B=2 ORDER BY a LIMIT 10)
ORDER BY a; | |
|
|
|
|
|
|
|
для: Balamut182
(02.09.2008 в 21:10)
| | Дело в том, что данные эти, которые нужно добавить, находятся не в таблице, а просто заданы в двух переменных, в таком случае не получится применить UNION? | |
|
|
|
|
|
|
|
для: xpom
(02.09.2008 в 21:40)
| | тогда можно так
SELECT переменная1, переменная2 FROM dual
UNION
SELECT id, name FROM table WHERE id = значение1
получится указаннаые вами переменные добавятся в набор первой строкой | |
|
|
|
|
|
|
|
для: ronin80
(03.09.2008 в 06:07)
| | Спасибо большое, буду пробовать!
А dual это означает что без таблицы, т.е. из данного скрипта? | |
|
|
|
|
|
|
|
для: xpom
(03.09.2008 в 11:15)
| | dual это типа временной таблицы в оперативке, виртуальной таблицы | |
|
|
|
|
|
|
|
для: ronin80
(03.09.2008 в 12:43)
| | dual это не таблица вообще.
Это просто способ выдержать синтаксис оператора SELECT в тех случаях, когда ни одно из выражений не зависит от полей таблицы. | |
|
|
|
|
|
|
|
для: Trianon
(03.09.2008 в 13:52)
| | А dual безопасно использовать, не будет он давать возможности проникновения в базу данных? | |
|
|
|
|
|
|
|
для: xpom
(03.09.2008 в 14:41)
| | не понял вопроса. | |
|
|
|
|
|
|
|
для: Trianon
(03.09.2008 в 14:43)
| | Я хотел спросить будет это безопасный запрос к базе, от взломщиков?
Что-то не получается, делаю следующим образом:
$per1="слово";
$per2=144;
$named= mysql_query("SELECT ".$per1." FROM dual UNION SELECT name FROM tabl WHERE id = ".$_GET['id'],$db);
if(!$named) exit(mysql_error());
|
получается выход...
может из-за того что я выбираю не все поля таблицы а только одно поле name и добавляю одно слово с переменной $per1??? | |
|
|
|
|
|
|
|
для: xpom
(03.09.2008 в 15:07)
| | Запросы WHERE id = ".$_GET['id'] никогда не будут безопасными.
Что значит "получается выход"?
Просто напечатать текст запроса и посмотреть его перед тем, как выполнять, Вы пробовали?
Покажите здесь получившийся текст. | |
|
|
|
|
|
|
|
для: Trianon
(03.09.2008 в 15:18)
| | Что значит "получается выход"?
Выход потому что я поставил проверять переменную запроса: if(!$named) exit(mysql_error()); значит она пустая?
Просто напечатать текст запроса и посмотреть его перед тем, как выполнять, Вы пробовали?
Вы имеете ввиду просто подставить цифры и слова в запрос? т.е. вот так:
$named= mysql_query("SELECT ".Москва." FROM dual UNION SELECT name FROM tabl WHERE id =20",$db);
|
| |
|
|
|
|
|
|
|
для: xpom
(03.09.2008 в 15:46)
| | А что значит exit(mysql_error()) ?
Нет, я имел в виду вот что:
$sql = "SELECT ".$per1." FROM dual UNION SELECT name FROM tabl WHERE id = ".$_GET['id'];
echo $sql;
|
| |
|
|
|
|
|
|
|
для: Trianon
(03.09.2008 в 16:04)
| | Сделал таким образов, вот что выводит:
SELECT Москва FROM dual UNION SELECT name FROM tabl WHERE id = 20
|
т.е. запрос вроде правильный, а почему не работает не могу понять?
А что значит exit(mysql_error()) ?
Ну этим я проверял на наличие значения в переменной, в которую заносится результат запроса. Если нет ничего, прекратить работу скрипта... | |
|
|
|
|
|
|
|
для: xpom
(03.09.2008 в 17:21)
| | Если бы у Вас была реальная таблица dual и в ней был бы столбец Москва - запрос был бы правильным.
Заметьте, если бы так назывался столбец. А не если бы в столбце было написано Москва.
>А что значит exit(mysql_error()) ?
>Ну этим я проверял на наличие значения в переменной, в которую заносится результат запроса.
Ответ неверный. Смотрите мануал. | |
|
|
|
|
|
|
|
для: Trianon
(03.09.2008 в 17:29)
| | Да по идеи так было бы правильно..
Значит таким образом не получится?
А что такое "мануал"? | |
|
|
|
|
|
|
|
|
для: xpom
(03.09.2008 в 17:51)
| | >Да по идеи так было бы правильно..
>Значит таким образом не получится?
>А что такое "мануал"?
Прошу прощения. Зря я вмешался. | |
|
|
|
|
|
|
|
для: Trianon
(03.09.2008 в 13:52)
| | >dual это не таблица вообще.
>Это просто способ выдержать синтаксис оператора SELECT в тех случаях, когда ни одно из выражений не зависит от полей таблицы.
я просто предположил что это так, потому что в oracle это таблица, состоящая из одной строки и одного столбца | |
|
|
|
|
|
|
|
для: ronin80
(03.09.2008 в 15:30)
| | Было бы хорошо, если б в MySQL было бы так же.
Но оно не так.
phpMyAdmin из-за этого на dual зверски ругается на этапе промежуточных проверок. | |
|
|
|
|
|
|
|
для: ronin80
(03.09.2008 в 15:30)
| | MySQL does not require FROM DUAL if no tables are referenced. | |
|
|
|
|
|
|
|
для: Root
(03.09.2008 в 19:56)
| | да я в курсе, сам уже так делал, привычка от оракула осталась :)
>Прошу прощения. Зря я вмешался.
:))) | |
|
|
|