Вход на сайт
PHP + MySQL
185
01.04.05 08:32
Привет!
У меня такой вопрос:
Как в МайЭсКуЭл-приказе (в ПХП-скрипте) сделать, чтобы при отсутствии Переменной он брал все данные.
Например:
"SELECT vName From dbase WHERE id = $VAR1";
Как сделать, чтобы при отсутствии $VAR1 показывал бы имена всех id (тоесть весь список)
Заранее благодарю.
У меня такой вопрос:
Как в МайЭсКуЭл-приказе (в ПХП-скрипте) сделать, чтобы при отсутствии Переменной он брал все данные.
Например:
"SELECT vName From dbase WHERE id = $VAR1";
Как сделать, чтобы при отсутствии $VAR1 показывал бы имена всех id (тоесть весь список)
Заранее благодарю.
Пьянство не рождает пороков: оно их обнаруживает.
Нюрнбергская жизнь молодёжи

NEW 01.04.05 08:44
в ответ Mik78 01.04.05 08:32
Можно сначала опросить значение переменной и уже исходя из этого делать селект или - или
Одна голова - хорошо, а в тюбетейке лучше!
http://www.urasbajew.de
Одна голова - хорошо, а в тюбетейке лучше!
http://www.urasbajew.de
Снаряды носите бережно, пусть вас видят, а не помнят!!!http://uzbek01.blogspot.com
NEW 01.04.05 09:17
в ответ Uzbek 01.04.05 08:44
Да, но ето поможет только при одной Переменной.
А если их 5-10, причем если ее нет, то просто не спрашивать, а брать всех, то как тогда.
Например:
select vName from dbase where id = $VAR1 AND vDatum = $VAR2 AND muster = $VAR3...
А если их 5-10, причем если ее нет, то просто не спрашивать, а брать всех, то как тогда.
Например:
select vName from dbase where id = $VAR1 AND vDatum = $VAR2 AND muster = $VAR3...
Пьянство не рождает пороков: оно их обнаруживает.
Нюрнбергская жизнь молодёжи

NEW 01.04.05 12:44
в ответ Mik78 01.04.05 09:17
А если их 5-10, причем если ее нет, то просто не спрашивать, а брать всех, то как тогда.
Например:
select vName from dbase where id = $VAR1 AND vDatum = $VAR2 AND muster = $VAR3...
Сделай переменную со строкой запроса str = "select vName from dbase" и в зависимости от значний переменных $VAR1...$VARn, добавляй в нее переменные с допустимыми значениями: str = str + "where id=$VAR1" и т.д.
А еще лучше, при недопустимых значениях id после *select vName from dbase* ничего не добавлять.
Можно еще при недопустимых значениях присваивать промежутки: *vDatum > 12.04.2004*
Все зависит от конкретного случая и синтаксиса (в разных языках бывают особенности в строке запроса)
http://tomasson.strana.germany.ru/mp3/Skripka.mp3
Например:
select vName from dbase where id = $VAR1 AND vDatum = $VAR2 AND muster = $VAR3...
Сделай переменную со строкой запроса str = "select vName from dbase" и в зависимости от значний переменных $VAR1...$VARn, добавляй в нее переменные с допустимыми значениями: str = str + "where id=$VAR1" и т.д.
А еще лучше, при недопустимых значениях id после *select vName from dbase* ничего не добавлять.
Можно еще при недопустимых значениях присваивать промежутки: *vDatum > 12.04.2004*
Все зависит от конкретного случая и синтаксиса (в разных языках бывают особенности в строке запроса)
http://tomasson.strana.germany.ru/mp3/Skripka.mp3
NEW 01.04.05 13:05
в ответ Tomasson 01.04.05 12:44
NEW 01.04.05 18:09
в ответ Mik78 01.04.05 09:17
Так и напиши :
МойСписокПеременных Список - пары имя и значение, а дальше в цикле проверочку и добавление sql-кода...
Делал такое для америкосов... посмотрели, сказали - слишком сложно, наши прораммеры не понимают как оно работает...
А списки генерились прямо по именам полей в таблицах... 
<--- nobody harmed in this action -->
МойСписокПеременных Список - пары имя и значение, а дальше в цикле проверочку и добавление sql-кода...
Делал такое для америкосов... посмотрели, сказали - слишком сложно, наши прораммеры не понимают как оно работает...


<--- nobody harmed in this action -->
NEW 02.04.05 00:32
в ответ Mik78 01.04.05 08:32
я, признаться, не знаю, как в php технически выглядит отсутствие значения переменной, но в похожей ситуации (на mssql) поступал примерно так:
SELECT vName From dbase
WHERE (($VAR1 <> пустое_значение AND [id] = $VAR1) OR ($VAR1 = пустое_значение))
--------------
FC Barcelona: 1:0 win at fucking Riazor
SELECT vName From dbase
WHERE (($VAR1 <> пустое_значение AND [id] = $VAR1) OR ($VAR1 = пустое_значение))
--------------
FC Barcelona: 1:0 win at fucking Riazor
NEW 02.04.05 08:46
в ответ Mik78 01.04.05 08:32
я вот тут такой скриптик набросал 
Если переменная существует,то она вставляется в запрос.
Вначале, конечно надо определится с полями табелицы, какая переменная са какое поле отвечает
/*кейПеременной=>Имя поля ДБ*/
$Felder= array("id"=>"feldId","datum"=>"feldDatum","muster"=>"feldMuster",0);
/* Переменные*/
/*Если какойто переменной не будет существовать, она не появится в запросе*/
$VAR['id']=1;
$VAR['datum']=2;
$VAR['muster']=3;
// Формирование Запроса
$WHERE="";
$i=0;
foreach ($VAR as $Key=>$Value){
if($i==count($VAR)-1){$AND="";}else{$AND=" AND ";}
$WHERE.=$Felder[$Key]." = ".$Value.$AND ;
$i++;
}
$Query="SELECT vName FROM dbase WHERE ".$WHERE;
******

Если переменная существует,то она вставляется в запрос.
Вначале, конечно надо определится с полями табелицы, какая переменная са какое поле отвечает
/*кейПеременной=>Имя поля ДБ*/
$Felder= array("id"=>"feldId","datum"=>"feldDatum","muster"=>"feldMuster",0);
/* Переменные*/
/*Если какойто переменной не будет существовать, она не появится в запросе*/
$VAR['id']=1;
$VAR['datum']=2;
$VAR['muster']=3;
// Формирование Запроса
$WHERE="";
$i=0;
foreach ($VAR as $Key=>$Value){
if($i==count($VAR)-1){$AND="";}else{$AND=" AND ";}
$WHERE.=$Felder[$Key]." = ".$Value.$AND ;
$i++;
}
$Query="SELECT vName FROM dbase WHERE ".$WHERE;
******
NEW 02.04.05 09:43
в ответ validol 02.04.05 08:46
скрипт

осталось только предусмотреть что все поля могут быть пустыми.
$aWhere = array(,0);
foreach ($VAR as $Key=>$Value){
if ($Value != ""){
$aWhere[] = $Felder[$Key]." = '".$Value."'";
}
}
if(count($aWhere)) {
$sWhere = " WHERE ".implode(" AND ",$aWhere,0);
}
$Query="SELECT vName FROM dbase".$sWhere;
http://as400.strana.de/tv/ajara_tv.xml


осталось только предусмотреть что все поля могут быть пустыми.
$aWhere = array(,0);
foreach ($VAR as $Key=>$Value){
if ($Value != ""){
$aWhere[] = $Felder[$Key]." = '".$Value."'";
}
}
if(count($aWhere)) {
$sWhere = " WHERE ".implode(" AND ",$aWhere,0);
}
$Query="SELECT vName FROM dbase".$sWhere;
http://as400.strana.de/tv/ajara_tv.xml