А есть ли файл? if (file_exists(......

Статус
В этой теме нельзя размещать новые ответы.

Mark&Ameli

Новичок
А есть ли файл? if (file_exists(......

Выводятся данные из БД:
PHP:
while ($ar=mysql_fetch_array($result))
        {
         echo"<table>";
         echo "<tr>";
         echo "<td>";
         echo "<strong><p align='justify'>$ar[title]</p></strong>";
         echo "</td>";
         echo "</tr>";
         echo "<tr>";
         echo "<td>";
         if (file_exists (IMG/$ar[img]))
         {
         echo "<img src='http://localhost/IMG/$ar[img]' align='left'>";
         }
         echo "<p align='justify'>$ar[text]</p>";
         echo "</td>";
         echo "</tr>";
         echo "</table><br>";
        };
Оно та и работает как надо, тоесть если файл найден, то он его выводит, если нет - то игнорирует условие if.
И все бы ничего, но выдается ошибка "Warning: Division by zero in c:\fireserv\www\test.php on line 84".
В чем тут дело?
Идея такова: надо дабы скрипт этим условием проверил существование файла (файл jpg), и если

он существует, то выводит его, а если нет - то не выводит :). Можна проверку и убрать, тада если

файл есть, он его выводит, а если нет, то выводит рамку, вместо картинки, которая мне не нужна,

так как в $ar хранится название файла и его расширение.

Вот и спрашиваю умных людей, что это за беда, и как с ней бороться? Как избавиться он этого

Warning: Division by zero in c:\fireserv\www\test\.php on line 84, и как сделать, что бы усе работало нормально? :-)

P.S. Да я вот заметил, что и не всегда он выводит рисунок, даже если он есть. Но и ошибки в этом

случае не выдает. Так что спасайте советом...
 

Andreika

"PHP for nubies" reader
Mark&Ameli
кто. тебя. учил. так. работать. со строками. и массивами. ?
 

kamatoz

Новичок
Division by zero как переводится?
Почувствуй разницу ).
if (file_exists (IMG/$ar))
if (file_exists (IMG[b].'/'.[/b]$ar['img']))

upd: это в случае, если IMG у тебя константа... )
 

Mark&Ameli

Новичок
kamatoz
Незнаю я как Division by zero переводится.
А по поводу if (file_exists (IMG.'/'.$ar['img'])) - тоже не вариант. Оно и ошибку не выдает, и картинку не показывает, хотя файл существует...
Andreika
Да никто, сам учился я....
 

Dreammaker

***=Ф=***
file_exists использует кэш системы, но скорее проблема не в этом, потому что проблема может возникнуть только при очень больших скоростях при множестве удаления-создания файлов при множестве запросов.

Что говорит броузер об адресе "потерянной" картинки?
 

Mark&Ameli

Новичок
Dreammaker
Да ничего не говорит. Просто выдает сначала title затем text. Даже рамки под картинку нету.

-~{}~ 27.03.06 06:06:

Понял в чем дело. Он паку img ищен в C:\www\, а она находится в C:\www\admin\include\, тоесть тамже где и сам скрипт. А как путь поменять? Он admin/include/img.'/'.$ar
 

Mark&Ameli

Новичок
Dreammaker
тоесть? define - это константа. Она та тут причем?

Andreika
Ну вот а я лично ничего веселого не вижу...
 

Mark&Ameli

Новичок
Все, уже разобрался:
PHP:
define ('PUT', 'admin/include/img/');
а в условии тада будет
PHP:
if (file_exists(PUT.$ar[img]))
Нда, тяжелый у меня случай. Пора в люлю... Ща тока добью этот скрипт :))
 

Dreammaker

***=Ф=***
Mark&Ameli,
а дык это ещё и не константа.. :))

Тодга всё реашется очень просто..
if (file_exists ('IMG/'.$ar['img']))

и всё должно заработать. и переведи названия папок в нижний регистр, потом разместив на никсовом хостинге опять будешь на форуме спрашивать почему скрипт не работает..

update: не успел.. :)
update2: а ссылочки, которые Andreika дал, почитай, особенно о массивах и синтаксисе.
Так же сделай себе вывод всех ошибок, ворнинго и нотайсов.. Кажется мне, что они отключены..
 

Mark&Ameli

Новичок
Dreammaker
Спасибо за помощь. Теперь все работает... И первый и второй вариант :)
Ура-ура-ура форуму...

Почитаю, и особенно о массивах. Не люблю я их... Как в турбо паскале ненавидел, так и тут ненавижу... Но это уже завтра, так сказать, на свежую голову...
Еще один не скромный вопрос: ворнинго и нотайсов - это кто такие и зачем они нужны?
 

Dreammaker

***=Ф=***
ворнинго - это я хотел сказать "ворнингов" :)
warnings & notice - недоошибки так сказать.. :)
То есть, то что явно ошибкой не считается, но сообщение об этом выводится (когда это разрешено, а разрешать вывод нужно всегда) в большинстве своём они не опасны, но с другой стороны из такой мелочи отладка может затянутся надолго.

Пример твой случай..

в общем поищи в мануале об уровне вывода ошибок.
А также глянь сюда phpfaq.ru/debug
Что-то мне кажется тебя туда посылать будут часто (ну пока не прочувствуешь всё что там на писано).. и конкретно на эту страницу и вообще на сайт ФАКа :)

update: А не любить массивы в пхп нельзя.. На них же почти всё держится.
Тем более, что почти всё что нужно для работы с массивами (ну процентов 80) решается через стандартные функции (сенкс разработчикам.. ).
Но для того, чтобы ими пользоваться нужно вначале вникнуть в саму фишку..

Просто представь себе шахматную доску или морской бой. Вот и массив. И на основе этого работай с ними.. :)
update3: Много смайликов насовал не пустил форум сообщение.. :)
 

Mark&Ameli

Новичок
:)
Спасибо за совет.
Нда, надо бы засесть за учение ПХП, но начинать надо с самого начала, а не так как я, чего припрет, то и учу, а остальное можна и пропустить...
 

Dreammaker

***=Ф=***
Mark&Ameli,
деление :)
"деление на нуль", что в принципе, правилами математики запрещено..
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху