Автоматическое создание РНР кода для отображения результата выборки из базы.

Crazy

Developer
1. Идем в [ SQL ].
2. Вводим строку: select " from " as c from Contracts
3. Запрашиваем генерацию кода.
 

antonio

Moderator
Команда форума
Кол-во записей - это не баг, а фича МуСкуля :) попробуй у ся на любой таблице это провернуть :)

По поводу кода - забыл addslashes сделать для sql теперь пофиксено, сенькс
 

Кром

Новичок
Баг в dbclose.php
Открывается mysql
PHP:
<?
@mssql_close($db);
?>
А вообще кода слишком много.
 

Crazy

Developer
Тест номер раз:

1. Идем в раздел [ SQL ].
2. Вводим вот такой оператор:

Код:
select *
from
Contracts
3. Во всех расположенных справа закладках наблюдаем:

You must use SELECT operator only into SQL query!
Тест номер два:

1. Идем все в тот же [ SQL ].
2. Вводим оператор:

Код:
select "$foo" from Contracts
3. Скачиваем код и запускаем:

PHP Notice: Undefined variable: foo
 

Crazy

Developer
Еще тест:

Вот так -- работает:

Код:
select distinct ContractNumber from Contracts
И вот так -- тоже работает:

Код:
select SUBSTRING(ContractNumber,1,10) c from Contracts
А вот так -- уже дохнет:

Код:
select distinct SUBSTRING(ContractNumber,1,10) c from Contracts
 

Crazy

Developer
Проверяем запрос:

Код:
select distinct SUBSTRING(ContractNumber,1,10) c from Contracts
В разделе [ Pagination ] видим:

Records:__[ 1-20 ]___from 10
Видны 10 строк. Меняем запрос:

Код:
select distinct SUBSTRING(ContractNumber,1,8) c from Contracts
Меняется и ответ:

Records:__[ 1-20 ]___from 1
Видна одна строка.

Это "1-20" -- так и должно быть?
 

Crazy

Developer
Пробуем запустить скаченную версию. PHP 4.3.4:

PHP Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of [runtime function name](). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in C:\_\php\pagination.php on line 225

PHP Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of [runtime function name](). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in C:\_\php\pagination.php on line 245

PHP Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of [runtime function name](). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in C:\_\php\pagination.php on line 245

PHP Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of [runtime function name](). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in C:\_\php\pagination.php on line 265

PHP Notice: Undefined variable: error in C:\_\php\pagination.php on line 132
 

Crazy

Developer
1. Заказал "select * from Contracts".
2. Скачал исходники.

Ответ:

Ошибка, полагаю, вот здесь:

Код:
if (!$Fields=$rs->MoveNext()) {
  $this->error="Sql syntax error.";
  $this->content.= $rs->errstr;
  return;
}
Hint: таблицы бывают пустыми. :) И, кстати, не слишком ли жестоко посылать перед этим в базу запрос на извлечение всех записей?
 

Crazy

Developer
Вопрос: каково назначение атрибута sql1 класса Pagination, вокруг вычисления которого устроено столько танцев с бубном? :)
 

antonio

Moderator
Команда форума
Не обессудь :) класс писал даааавно, может и хотел для че-то заюзать :)
А это горе ща поправим.
 

antonio

Moderator
Команда форума
по поводу полей. А как я тебе их достану тадыть :) без посылки запроса в базу? Парсер SQL наворачивать не хоца. Можно правда limit 1 в конец добавить, но все равно запрос слать придется.
 

Crazy

Developer
Автор оригинала: antonio
Не обессудь :) класс писал даааавно, может и хотел для че-то заюзать :)
Есть мнение, :) что это остатки кода, который строил запрос с "select count....". IMHO, без этого кода все остальное особого смысла не имеет. Попробуй на примере:

Код:
select * from Contracts a, Contracts b, Contracts c

:)
 
Сверху