Всем доброго времени суток! Суть такова: если введённая мною дата в переменную $sdata еще не прошла (включительно) - выводить рисунок ok.png. Если прошла - выводить рисунок no.png есть несложный код для реализайии идеи: файл 1.php: PHP: <? include '2.php'; img(20110209); ?> файл 2.php: PHP: <?php function img($sdata) { $date = date("Ymd"); if ($date <= $sdata) { print '<img src=images/ok.png>'; } else { print '<img src=images/no.png>'; } } ?> НО! вводить вручную давно уже никому не интерестно(тем более что это быдет цикл DO WHILE), будем вытаскивать значение переменной $sdata из БД. Итак, вытаскиваем значение переменной $sdata из БД: Изменяем файл 1.php: PHP: <?php include("bd.php"); $result = mysql_query("SELECT date FROM tablica",$db); $myrow = mysql_fetch_array($result); do { printf (" include '2.php'; img(%s); ",$myrow["date"]); } while ($myrow = mysql_fetch_array($result)); ?> И тут я сталкиваюсь с проблемой и нуждаюсь в Вашей помощи! Почему все данные в цикле DO WHILE выводятся как текст, а не идет подключение к файлу 2.php (include '2.php'), не срабатывает функция ??? (П.С. переменные из БД вытаскиваются правельно в формате '20010215','20010205','20010210' и т.д.) Помогите разобраться или предложите альтернативный вариант!
Логику такого вывода не понял, но ошибки у тебя такие 1) файл 2.php нужно включать один раз 2) вызов функции img должен быть как в файле 1.php 3) выборку записей нужно в цикле while В итоге твой код должен быть примерно таким PHP: <?php include("bd.php"); include '2.php'; $result = mysql_query("SELECT date FROM tablica",$db); if(result) { while ($myrow = mysql_fetch_array($result,MYSQL_ASSOC)) { echo img($myrow["date"]); } }
PHP: <?php include("bd.php"); include ("2.php"); $result = mysql_query("SELECT date FROM tablica",$db); if(result) { while ($myrow = mysql_fetch_array($result,MYSQL_ASSOC)) { echo img($myrow["date"]); } } Да, этот вариант работает, но в одиночном случае (у меня значений $myrow["date"] будет около ста)
Я пришел к варианту который мне подходит, вот он: PHP: <?php include("bd.php"); include ("2.php"); $result = mysql_query("SELECT * FROM tablica",$db); $myrow = mysql_fetch_array($result); do { $date = date("Ymd"); echo("дата сегодня: $date<br>"); echo $myrow['date']; echo '<br>'; if ($date <= $myrow['date']) { print '<img src=images/ok.png>'; } else { print '<img src=images/no.png>'; } } while ($myrow = mysql_fetch_array($result)); ?> все работает в отдельном случае, но когда вствляю в основной код где надо выводить большое кол-во текста проблема вывода как текст остаётся: PHP: <?php include("bd.php"); $result = mysql_query("SELECT date FROM tablica",$db); $myrow = mysql_fetch_array($result); do { printf (" /*МНОГО-МНОГО ТЕКСТА, форм и т.д*/ $date = date("Ymd"); echo("дата сегодня: $date<br>"); $sdata = %s; echo $sdata; if ($date <= $sdata) { print '<img src=images/ok.png>'; } else { print '<img src=images/no.png>'; } /*МНОГО-МНОГО ТЕКСТА, форм и т.д*/ ",$myrow["date"]); /*и куча значений кот. вытаскиваются из БД*/ } while ($myrow = mysql_fetch_array($result)); ?>
YuZi 1) почитай про использование функции printf 2) напиши четко последовательность вывода данных для каждого значения $myrow["date"] Пояснения 1) такое впечатление, что ты думаешь, что функция printf рассматривает переданную строку как PHP код 2) в цикле ты каждый раз выводишь echo("дата сегодня: $date<br>"); что для меня кажется совершенно бессмысленным - 100 раз вывести сегодняшную дату
2) в цикле ты каждый раз выводишь echo("дата сегодня: $date<br>"); что для меня кажется совершенно бессмысленным - 100 раз вывести сегодняшную дату ____________________________________________________________________________ Runner выводил дату для наглядности... конечно же в основном коде этой строки вообще не будет. П.С. с функцией printf что-то я неправельно подошёл вообще к поставленой задаче... в данный момент пробую другой вариант