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

Форум MySQL

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

 

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

вид форума:
Линейный форум Структурный форум

тема: вопрос на засыпку: скрипты на php4 не работают на php5
 
 автор: ronin   (22.11.2007 в 15:26)   письмо автору
 
 

Здравствуйте!
при перестановке на локалхосте некоторые скрипты не работают в версии php5

<?php 
  $query 
"SELECT * FROM catalog"
  
$cat mysql_query($query); 
  echo 
"<table>"
  
$final 0
  while(
$catalog mysql_fetch_array($cat)) 
  { 
    if(
$final == 0) echo "<tr>"
    echo 
"<td>".$catalog['name']."</td>"
    
$final++; 
    if(
$final == 4
    { 
       echo 
"</tr>"
       
$final 0
    } 
  } 
  echo 
"</table>"
?> 

скрипт с темы: http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=366
и :

<? 
$flag
=false
echo 
"<table>"
$result=mysql_query("тело запроса"); 
while (
$data=mysql_fetch_array($result)) 

 if (!
$flag) echo "<tr>"
 echo 
"<td>".$data['имя столбца']."</td>"
 if (
$flag) echo "</tr>"
 
$flag=!$flag

echo 
"</table>"
?> 


http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=12006
Т.е. эти скриптыработают в php4 и не работают в пятой версии. Возможно я что-то не учел, или надо добавить какие-то определители? Может кто сталкивался и может объяснить? Заранее благодарен.

   
 
 автор: Trianon   (22.11.2007 в 20:09)   письмо автору
 
   для: ronin   (22.11.2007 в 15:26)
 

надо проверять независимо от версии, был ли успешно выполнен SQL-запрос, перед обращением к строкам результата.
$result=mysql_query("тело запроса");
if(!$result) exit( mysql_error() ); // или что-то вроде того

   
 
 автор: ronin   (23.11.2007 в 10:04)   письмо автору
 
   для: Trianon   (22.11.2007 в 20:09)
 

В этом и прикол, что if(!$result) exit( mysql_error() ); имееться, и про ошибки не заикается, вот у Вас Трианон, стоит php5? Вы можете проверить, на своем компе эти скрипты (у меня стоит и 4 и 5 версии, естественно работают неодновременно:)), так в 4 работают без проблем, а в пятой - вместо вывода - пустота. у меня был еще случай: в другом срипте вывода меню деревом, где рубрики лежали в одной таблице, а подрубрике - в другой, скрипт не работал, т.е клацаешь по рубрике и не раскрывался список подрубрик(в 4 версии собака работал, а в 5 нет).но стоило прописать в переменных $_GET - и все заработало, может и тут чего нехватает, или наоборот в настройках php5?

   
 
 автор: Trianon   (23.11.2007 в 21:59)   письмо автору
 
   для: ronin   (23.11.2007 в 10:04)
 

Стоит.
Но чтобы проверить чисто, нужен еще дамп таблиц и файл настройки соединения.
Но и без того могу сказать, что явного криминала в этом коде я не вижу. Неявный - отсутствие подключения и проверок - налицо.

   
 
 автор: Faraon   (24.11.2007 в 01:38)   письмо автору
 
   для: ronin   (23.11.2007 в 10:04)
 

> угом срипте вывода меню деревом, где рубрики лежали в одной таблице, а подрубрике - в другой, скрипт не работал, т.е клацаешь по рубрике и не раскрывался список подрубрик(в 4 версии собака работал, а в 5 нет).но стоило прописать в переменных $_GET - и все заработало, может и тут чего нехватает, или наоборот в настройках php5?

А вы все проверяли на своем компьютере или на хостинге?

   
 
 автор: ronin   (26.11.2007 в 11:08)   письмо автору
 
   для: Faraon   (24.11.2007 в 01:38)
 

Спасибо за помощь!!! Вы не поверите - снова этот гет, я в скрипте написал такой бред:

$_GET[rubrica] = $rubrica; 

и про эту строчку забыл!!!
А в SQL- запросе рубрику определял через

WHERE rubrica = '".$_GET['rubrica']."'

в четвертой версии это работала как на локальной машине так и на хостинге!!!
Видимо пятая версия более строгая и не прощает ошибок, что и правильно.

   
Rambler's Top100
вверх

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