Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: выборка из двух несвязанных таблиц по дате

Сообщения:  [1-10]    [11-20]   [21-30]   [31-40]  [41-44] 

 
 автор: franko   (16.03.2011 в 00:42)   письмо автору
 
   для: cheops   (15.03.2011 в 22:26)
 

Спасибо cheops.
Тема можно закрывать

   
 
 автор: cheops   (15.03.2011 в 22:26)   письмо автору
 
   для: franko   (15.03.2011 в 22:19)
 

Это команда никогда не будет выполнена. Все, что будет введено сравниться со строкой "fst" и после того, как не будет найдено соответствия будет выполняться код в else.

   
 
 автор: franko   (15.03.2011 в 22:19)   письмо автору
 
   для: cheops   (15.03.2011 в 13:44)
 

я имел ввиду как защитить сайт, если кто-то захочет в tbl прописать какой-нибудь код или команду

   
 
 автор: cheops   (15.03.2011 в 13:44)   письмо автору
 
   для: franko   (15.03.2011 в 13:34)
 

Можно оставить без изменений, так как у нас GET-параметр tbl сравнивается со строкой в операторе if, т.е. даже если будет введено что-то другое, логика не пострадает и ошибок это не вызовет.

   
 
 автор: franko   (15.03.2011 в 13:34)   письмо автору
 
   для: cheops   (15.03.2011 в 13:27)
 

Работает! Спасибо.
в заключение. раньше было защита.
if (isset ($_GET['id'])) {$id = $_GET['id'];}
if (!isset($id)) {$id=1;}
/* Проверяем, является ли переменная числом */
if (!preg_match("|^[\d]+$|", $id)) {
exit ("<p>Неверный формат запроса! Проверьте URL!");

теперь как написать для
id=149&tbl=snd

   
 
 автор: cheops   (15.03.2011 в 13:27)   письмо автору
 
   для: franko   (15.03.2011 в 13:26)
 

Есть такое дело, точки с запятой забыл.
if($_GET['tbl'] == "fst")  

$query = "SELECT DATE_FORMAT(date,'%d.%m.%Y') AS date, title, cat  from table1 WHERE id='$id'";

else 

$query = "SELECT DATE_FORMAT(date,'%d.%m.%Y') AS date, title, ege AS cat  from table2 WHERE id='$id'";

$result = mysql_query($query, $db);  
if (!$result)

   
 
 автор: franko   (15.03.2011 в 13:26)   письмо автору
 
   для: cheops   (15.03.2011 в 13:11)
 

if($_GET['tbl'] == "fst") 
{
$query = "SELECT DATE_FORMAT(date,'%d.%m.%Y') AS date, title, cat  from table1 WHERE id='$id'"
}
else
{
$query = "SELECT DATE_FORMAT(date,'%d.%m.%Y') AS date, title, ege AS cat  from table2 WHERE id='$id'"
}
$result = mysql_query($query, $db); 
if (!$result)


Parse error: syntax error, unexpected '}' in ...view_year.php on line 6

   
 
 автор: cheops   (15.03.2011 в 13:11)   письмо автору
 
   для: franko   (15.03.2011 в 13:08)
 

Тогда лучше переделать код следующим образом
<?php
  
...
  if(
$_GET['tbl'] == "fst")
  {
    
$query "SELECT DATE_FORMAT(date,'%d.%m.%Y') AS date, title, cat
                  FROM table1 WHERE id='
$id'"
  
}
  else
  {
    
$query "SELECT DATE_FORMAT(date,'%d.%m.%Y') AS date, title, ege AS cat
                  FROM table2 WHERE id='
$id'"
  
}
  
$result mysql_query($query$db); 
  ...
?>

   
 
 автор: franko   (15.03.2011 в 13:08)   письмо автору
 
   для: cheops   (15.03.2011 в 13:03)
 

только в одной таблице саt
a в другой table - ege

   
 
 автор: cheops   (15.03.2011 в 13:03)   письмо автору
 
   для: franko   (15.03.2011 в 12:54)
 

А столбец cat в обеих таблицах присутствует?

   

Сообщения:  [1-10]    [11-20]   [21-30]   [31-40]  [41-44] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования