Как я не пытался оттянуть переход на пхп 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">Rф</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">Rф</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 работало всё на отлично. То что код не совсем грамотен согласен - делал это второпях - исключительно для использования подбора диаметров труб в одном своём курсаче. Но время от времени к скрипту и потом обращался, поэтому и хочется сохранить его работоспособность.
Посижу ещё сам, может разберусь.
Вообщем, можете сказать насколько трудно переводить проект с пхп 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
Но не рекомендуется этого делать. Тем более что в пхп6 её вообще не будет.
Курить мануалы по словам php register globals
Спустя 4 минуты, 48 секунд (16.08.2010 - 12:32) Воитель написал(а):
Со знаками равно, я конечно косячнул.
Но прибавить 0 более экономично с точки зрения нагрузки на процессор чем, какая либо другая функция.
Сейчас сижу устанавливаю денвер с 5 пхп, и тут пришло в голову.
А как я буду изменять код, если в моей голове только пхп 4 есть?
Где знаний то о пхп 5 набраться?
Но прибавить 0 более экономично с точки зрения нагрузки на процессор чем, какая либо другая функция.
Сейчас сижу устанавливаю денвер с 5 пхп, и тут пришло в голову.
А как я буду изменять код, если в моей голове только пхп 4 есть?
Где знаний то о пхп 5 набраться?
Спустя 4 минуты, 12 секунд (16.08.2010 - 12:36) Воитель написал(а):
А все общая глоболизация пхп 6 скоро намечается, может мне удасться перешагнуть пхп 5 ?
Ведь на ближайшие пол года с пхп буду мало работать.
Или там перешагивать даже не чего.
Просто я ещё не впонятках что такое php 5 кроме того что в пхп 4 добавили новых функций, которые я не использовал в своих скриптах и без которых легко обходился.
Ведь на ближайшие пол года с пхп буду мало работать.
Или там перешагивать даже не чего.
Просто я ещё не впонятках что такое 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 написал(а):

Спустя 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! Я поддержку ужой замучил
Заставьте меня перейти на пхп5.3! Я поддержку ужой замучил
_____________
Вечно учусь.