Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > class


Автор: Miracl 3.8.2007, 13:55
собственно решил создать у себя на сайте одну замуту на что денвер ужасно материться Divizion by zero

код программы в общем то простой:


Код

$res=mysql_query("SELECT * FROM userlist WHERE user='$login'");
$Result=mysql_fetch_array($res);
$this->array    = $Result;
$this->city    = $Result["city"];
$this->real_name    = $Result["real_name"];



вот затем сюда далее захотел далее добавить одну вещь:


Код

if ($Result["city"]=="МОСКВА") {
$res2=mysql_query("SELECT * FROM email WHERE user='$login'");
$Result2=mysql_fetch_array($res2);
$this->array    = $Result2;
$this->email    = $Result2["email"];
}

else {
$this->email    = $Result["email"];
}




скажем если: пользователь родом из москвы берём информацию о переменной XXX из  userlist, в противном случае нужно взять информацию о переменной XXX из бд email.
при этом записать значение переменно нужно именно в один и тот же $this->email




ЭТО В КРАТЦЕ, просьба не спрашивать зачем это надо, идея совсем другая этот пример привёл чтобы пол-года не обьяснять всё с нуля. class рабочий на 100% но вот изза этой добавки материться, очень нужно как то обойти или сделать по умному.


icq: 352-417-768

Автор: pento 3.8.2007, 14:02
Miracl, было бы замечательно увидеть сообщение об ошибке полностью.

Автор: Oflashp 3.8.2007, 14:23
Цитата(pento @ 3.8.2007,  14:02)
Miracl, было бы замечательно увидеть сообщение об ошибке полностью.

+1
Division by zero - деление на ноль. Недопустимая операция.

Автор: Miracl 3.8.2007, 14:45
Warning: Division by zero in z:\home\localhost\www\func.php on line 372


ссылаеться на:

Код

$xxx=new My_class($username);
echo "$xxx->email";


тоесть туда где вызываю тот самый email. при чём если вот как писал город москва то тогда материться в другом случае всё норм.



если убрать вон тот второй кусок кода который я дописал то всё норм. либо же если закоментить:

Код

$this->email    = $Result2["email"];

Автор: pento 3.8.2007, 15:09
Miracl, а на нормальной связке апач + пхп проверял?

Автор: Miracl 3.8.2007, 16:40
апачь не древний и нормальный, я уж за этим слежу.

Автор: Oflashp 3.8.2007, 16:49
Блин как бы ты мог полностью выложить 400-500 строк, мб у тебя ошибка где-то выше.
P.S: Что такое не древний и нормальный. Любой апач нормальный, всё зависит от рук разработчика

Автор: Miracl 3.8.2007, 17:21
кусок будет по длиней чем 400-500

да и в куске всё норм скрипт старый ужасс, но мне туда нужно добавить вот эту фигню.

если сделать как по старому то всё норм:

Код

$res=mysql_query("SELECT * FROM userlist WHERE user='$login'");
$Result=mysql_fetch_array($res);
$this->array    = $Result;
$this->city    = $Result["city"];
$this->real_name    = $Result["real_name"]; 
$this->email    = $Result["email"];



а вот по новому не фурычит, 4 день сижу по форумам шляюсь не кто не может как его сделать на подобие:

Код

$res=mysql_query("SELECT * FROM userlist WHERE user='$login'");
$Result=mysql_fetch_array($res);
$this->array    = $Result;
$this->city    = $Result["city"];
$this->real_name    = $Result["real_name"]; 

if ($Result["city"]=="МОСКВА") {// если город = Москва, то берём инфу о email из $res2
$res2=mysql_query("SELECT * FROM email WHERE user='$login'");
$Result2=mysql_fetch_array($res2);
$this->array    = $Result2;
$this->email    = $Result2["email"];
}

else {// иначе берём инфу из $res
$this->email    = $Result["email"];
}

Автор: Glip 4.8.2007, 11:19
Miracl, ну попробуйте проверить $res2 после mysql_query() на false и mysql_num_rows($res) на 0 что-ли. вдруг да поможет.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)