[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Заставили перейти на 5 php
Воитель
Здравствуйте.
Как я не пытался оттянуть переход на пхп 5 - всё равно пришлось.

С английским у меня совсем плохо.
А в русском инете что-то не нашёл нужного мне материала, кроме
http://www.php.su/php/?migration53
и
http://www.php.su/php/?php5

Прочитав данный материал этот код по прежнему должен работать, но это не так:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<
title>Подбиралка диаметров</title>
<
style type="text/css">
<!--

#Layer1 {
position:absolute;
left:75px;
top:114px;
width:728px;
height:236px;
z-index:1;
}
-->
</
style>
</
head>

<
body>
<
div id="Layer1">
Подбиралка создана Медведевым С.А. ("Воитель") <br>
Респектная уважуха моей маме (Марина Ильинична), которая помогала вбивать табличку. <br>
О недочётах таблицы пишите на Medvedi1@yandex.ru <br>
<
p><a href="dobavpodbor.php">Добавить данные</a></p>
<?
if (empty($diametrv)) { $diametrv=0; }
?>
<form id="form1" name="form1" method="post" action="">
<
p> </p>
<
table width="200" border="1">
<
tr><th scope="col">Расход</th>
<
th scope="col">Диаметр</th></tr>
<
tr><th scope="row"><input type="text" name="rashodv" /></th>
<
td><select name="diametrv">
<
option value="0" <? if ($diametrv==0) { print 'selected="selected"'; } ?> >Любой</option>
<
option value="15" <? if ($diametrv==15) { print 'selected="selected"'; } ?> >15</option>
<
option value="20" <? if ($diametrv==20) { print 'selected="selected"'; } ?> >20</option>
<
option value="25" <? if ($diametrv==25) { print 'selected="selected"'; } ?> >25</option>
<
option value="32" <? if ($diametrv==32) { print 'selected="selected"'; } ?> >32</option>
<
option value="40" <? if ($diametrv==40) { print 'selected="selected"'; } ?> >40</option>
<
option value="50" <? if ($diametrv==50) { print 'selected="selected"'; } ?> >50</option>
</
select></td></tr></table>
<
p><input type="submit" name="Submit" value="Найти" /></p></form>



<?
// Соединяемся с базой даннных
$conn=mysql_connect("localhost", "melmak", "aF4KprVq"); //
mysql_select_db("melmak", $conn);

if (!empty($Submit)) {
//print "$diametrv<br>";
$diametrv==$diametrv+0;
//------------------------Диаметр не определён-------------------------------
if ($diametrv==0) {
$sql="SELECT * FROM podbord"; //запрос ответом к которуму приходит вся таблица
$result=mysql_query($sql, $conn);
$raznica15=1000000000; $raznica20=1000000000; $raznica25=1000000000; $raznica32=1000000000; $raznica40=1000000000;
$raznica50=1000000000;

while ($tow=mysql_fetch_object($result)) {
if ($tow->diametr==15) {
if ( abs($tow->rashod - $rashodv) <= $raznica15 ) { $raznica15=abs($tow->rashod - $rashodv);
$tablrashod15=$tow->rashod; $diametr15=$tow->diametr; $skorost15=$tow->skorost; $rf15=$tow->rf; }}
if ($tow->diametr==20) {
if ( abs($tow->rashod - $rashodv) <= $raznica20 ) { $raznica20=abs($tow->rashod - $rashodv);
$tablrashod20=$tow->rashod; $diametr20=$tow->diametr; $skorost20=$tow->skorost; $rf20=$tow->rf; }}
if ($tow->diametr==25) {
if ( abs($tow->rashod - $rashodv) <= $raznica25 ) { $raznica25=abs($tow->rashod - $rashodv);
$tablrashod25=$tow->rashod; $diametr25=$tow->diametr; $skorost25=$tow->skorost; $rf25=$tow->rf; }}
if ($tow->diametr==32) {
if ( abs($tow->rashod - $rashodv) <= $raznica32 ) { $raznica32=abs($tow->rashod - $rashodv);
$tablrashod32=$tow->rashod; $diametr32=$tow->diametr; $skorost32=$tow->skorost; $rf32=$tow->rf; }}
if ($tow->diametr==40) {
if ( abs($tow->rashod - $rashodv) <= $raznica40 ) { $raznica40=abs($tow->rashod - $rashodv);
$tablrashod40=$tow->rashod; $diametr40=$tow->diametr; $skorost40=$tow->skorost; $rf40=$tow->rf; }}
if ($tow->diametr==50) {
if ( abs($tow->rashod - $rashodv) <= $raznica50 ) { $raznica50=abs($tow->rashod - $rashodv);
$tablrashod50=$tow->rashod; $diametr50=$tow->diametr; $skorost50=$tow->skorost; $rf50=$tow->rf; }}
}

print <<< RERE
<table width="200" border="1">
<
tr> <th scope="col">Расход</th> <th scope="col">Ближайший табличный расход</th> <th scope="col">Диаметр</th>
<
th scope="col">Скорость</th> <th scope="col"></th> </tr>
<
tr> <th scope="row">$rashodv</th> <td>$tablrashod15</td> <td>$diametr15</td> <td>$skorost15</td> <td>$rf15</td> </tr>
<
tr> <th scope="row">$rashodv</th> <td>$tablrashod20</td> <td>$diametr20</td> <td>$skorost20</td> <td>$rf20</td> </tr>
<
tr> <th scope="row">$rashodv</th> <td>$tablrashod25</td> <td>$diametr25</td> <td>$skorost25</td> <td>$rf25</td> </tr>
<
tr> <th scope="row">$rashodv</th> <td>$tablrashod32</td> <td>$diametr32</td> <td>$skorost32</td> <td>$rf32</td> </tr>
<
tr> <th scope="row">$rashodv</th> <td>$tablrashod40</td> <td>$diametr40</td> <td>$skorost40</td> <td>$rf40</td> </tr>
<
tr> <th scope="row">$rashodv</th> <td>$tablrashod50</td> <td>$diametr50</td> <td>$skorost50</td> <td>$rf50</td> </tr>
</
table>
RERE;


}
//-----------------------Конец диаметр не определён
//-----------------------Диаметр определён------------------

else {
$sql="SELECT * FROM podbord WHERE diametr='$diametrv'";
$result=mysql_query($sql, $conn);

$raznica=1000000000;
while ($tow=mysql_fetch_object($result)) {

if ( abs($tow->rashod - $rashodv) <= $raznica ) { $raznica=abs($tow->rashod - $rashodv);
//print "$raznica<br>";
$tablrashod=$tow->rashod;
$diametr=$tow->diametr;
$skorost=$tow->skorost;
$rf=$tow->rf; }
//----------------------Конец Диаметр определён------------------
}

print <<< RERE
<table width="200" border="1">
<
tr>
<
th scope="col">Расход</th>
<
th scope="col">Ближайший табличный расход</th>
<
th scope="col">Диаметр</th>
<
th scope="col">Скорость</th>
<
th scope="col"></th>
</
tr>
<
tr>
<
th scope="row">$rashodv</th>
<
td>$tablrashod</td>
<
td>$diametr</td>
<
td>$skorost</td>
<
td>$rf</td>
</
tr>
</
table>
RERE;
}}
?>
Таблица вбита как Приложение 11 <br>
Таблица для гидравлического расчёта систем отопления трубопроводов водяного отопления при перепадах температуры воды в системе 95-70, 105-70 и Кш=0,2мм <br>

Справочник проектировщика стр 212-216(до потери давления на трение на 1 м =500 Па) <br>
</
div>
</
body>
</
html>




И ещё вопросик переход на пхп 6 скоро намечается?



Спустя 3 минуты, 43 секунды (16.08.2010 - 11:10) Воитель написал(а):

Спустя 43 минуты, 22 секунды (16.08.2010 - 11:53) waldicom написал(а):
Цитата (Воитель @ 16.08.2010 - 10:06)
Прочитав данный материал этот код по прежнему должен работать, но это не так:

Если Вы думаете, что кто-то будет разбирать код без указания конкретной ошибки (а не просто "но это не так"), то Вы ошибаетесь.
Что конкретно не работет?

Спустя 14 минут, 27 секунд (16.08.2010 - 12:08) linker написал(а):
Что это?
$diametrv==$diametrv+0;
Не понятно, где определяется переменная $rashodv, причем вы пытаетесь ее время от времени вычитать из других значений, смысл? Дальше неформатированая каша, уж извините.

Спустя 3 минуты, 46 секунд (16.08.2010 - 12:11) waldicom написал(а):
Цитата (linker @ 16.08.2010 - 11:08)
Что это?
$diametrv==$diametrv+0;
Не понятно, где определяется переменная $rashodv, причем вы пытаетесь ее время от времени вычитать из других значений, смысл? Дальше неформатированая каша, уж извините.

Ну здесь-то все понятно, просто повнимательнее посмотреть: используются глобальные переменные...

Спустя 3 минуты, 48 секунд (16.08.2010 - 12:15) linker написал(а):
В топку глобальные переменные, видимо пых настроен с отключенным register_globals оно и правильно. Но первый вопрос остался в силе, что вы этим
$diametrv==$diametrv+0;
хотели сказать?

Спустя 2 минуты, 9 секунд (16.08.2010 - 12:17) waldicom написал(а):
Цитата (linker @ 16.08.2010 - 11:15)
В топку глобальные переменные.

Э неее, не в топку... Из-за них все и не работает, ибо нефих... Но автор должен был сам ответить на этот вопрос...

Спустя 39 секунд (16.08.2010 - 12:18) Воитель написал(а):
Нет ни ошибок не желаемого результата, как будто пхп вообще нет.
Посижу ещё сам, может разберусь.
Вообщем, можете сказать насколько трудно переводить проект с пхп 4 на пхп 5 ?
Просто у меня много всякой тягомутины, всё хотел в сапу их закинуть, но руки не доходили, а вот если теперь ещё и код менять придётся, вообще есть ли смысл этим заниматься?

На пхп 4 работало всё на отлично. То что код не совсем грамотен согласен - делал это второпях - исключительно для использования подбора диаметров труб в одном своём курсаче. Но время от времени к скрипту и потом обращался, поэтому и хочется сохранить его работоспособность.

Спустя 1 минута, 28 секунд (16.08.2010 - 12:19) linker написал(а):
Не трудно, если делать не второпях.

Спустя 26 секунд (16.08.2010 - 12:20) Воитель написал(а):
Цитата (linker @ 16.08.2010 - 14:15)
Но первый вопрос остался в силе, что вы этим
$diametrv==$diametrv+0;
хотели сказать?

Перевод из строки в число

Спустя 3 минуты, 2 секунды (16.08.2010 - 12:23) linker написал(а):
Воитель
Оригинально, ну во-первых, присвоение делается '=', а '==' - это равно в условиях. Во-вторых, делайте уж тогда
$diametrv = (integer)$diametrv;

Спустя 4 минуты, 2 секунды (16.08.2010 - 12:27) waldicom написал(а):
Все будет работать, если изменить одну настройку в файле php.ini
Но не рекомендуется этого делать. Тем более что в пхп6 её вообще не будет.
Курить мануалы по словам php register globals

Спустя 4 минуты, 48 секунд (16.08.2010 - 12:32) Воитель написал(а):
Со знаками равно, я конечно косячнул.
Но прибавить 0 более экономично с точки зрения нагрузки на процессор чем, какая либо другая функция.

Сейчас сижу устанавливаю денвер с 5 пхп, и тут пришло в голову.
А как я буду изменять код, если в моей голове только пхп 4 есть?
Где знаний то о пхп 5 набраться?

Спустя 4 минуты, 12 секунд (16.08.2010 - 12:36) Воитель написал(а):
А все общая глоболизация пхп 6 скоро намечается, может мне удасться перешагнуть пхп 5 ?
Ведь на ближайшие пол года с пхп буду мало работать.
Или там перешагивать даже не чего.
Просто я ещё не впонятках что такое php 5 кроме того что в пхп 4 добавили новых функций, которые я не использовал в своих скриптах и без которых легко обходился.

Спустя 8 минут, 39 секунд (16.08.2010 - 12:45) linker написал(а):
Цитата
Но прибавить 0 более экономично с точки зрения нагрузки на процессор чем, какая либо другая функция.
Кто вам это сказал? Посчитайте сами, первое, что сделает PHP это приведет переменную $diametrv к целочисленному типу, а уж потом прибавит 0. В моем варианте, только приведение к типу.

Спустя 26 минут, 32 секунды (16.08.2010 - 13:11) Воитель написал(а):
Я с этим не согласен.
Сам процесс перевода мне кажется будет разным.
Как правило функции учитывают многие нюансы, например вами предложеная фнкция как-то да умеет наверно разбираться буквами внутри строки которую переводим в число.

Спустя 2 минуты, 50 секунд (16.08.2010 - 13:14) linker написал(а):
А в чем разница между явным и неявным приведением типов? Вы думаете, что при неявном используются какие-то иные мегабыстрые алгоритмы?

Спустя 5 минут, 59 секунд (16.08.2010 - 13:20) Воитель написал(а):
Я считаю что наш спор с обеих сторон безоснователен.
Ни кто из нас не видел кода асемблера на тот и другой случай.

Спустя 8 минут, 24 секунды (16.08.2010 - 13:28) linker написал(а):
smile.gif Действительно без основателен. Для того, чтобы понять что работает быстрее, вовсе не обязательно смотреть код PHP (кстати, не ассемблерный, а сишный). Поэтому предлагаю вам, чтобы вы убедились в своей не правоте, сделать замеры скорости. Думаю, после этого, всякие домыслы отпадут сами собой.

Спустя 4 минуты, 57 секунд (16.08.2010 - 13:33) Воитель написал(а):
Дружище ты мне лучше скажи как сам переходил с 4 на 5

Спустя 5 минут, 45 секунд (16.08.2010 - 13:39) linker написал(а):
Да как-то спокойно перешел, также спокойно перешел на 5.3 Главное почитать, а что же изменилось от версии к версии, какие новшества, какие деприкейты и пр. При грамотном коде, проблем быть не должно. Еще как вариант, облегчающий переход, это настроить пых на вывод всех ошибок без исключения.

Спустя 6 минут, 55 секунд (16.08.2010 - 13:46) Воитель написал(а):
Одну страничку отредактировал )
Просто с глобальными были проблемы

Дело в том что есть и те сайты где я ещё только начинал и там даже я ногу сломаю.
Их я переделывать прям боюсь. На сколько я знаю себя - мне захочется весь код впорядок привести -а вот это уже долго.

В общем с большом я растройстве.

Спустя 13 минут, 53 секунды (16.08.2010 - 14:00) linker написал(а):
НУ что тут тебе посоветовать, рефакторинг - это составная часть работы программиста.

Спустя 2 часа, 12 минут, 14 секунд (16.08.2010 - 16:12) Guest написал(а):
Мнеб ваши проблемы.
Заставьте меня перейти на пхп5.3! Я поддержку ужой замучил


_____________
Вечно учусь.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.