Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Вопрос по циклу

Сообщения:  [1-6] 

 
 автор: coras_exe   (06.01.2009 в 20:07)   письмо автору
 
   для: Николай2357   (06.01.2009 в 19:48)
 

Благодарю Николай2357.
Спасибо SportSoft за корректировку.

Буду пробовать. Нужно работать и работать.

  Ответить  
 
 автор: Николай2357   (06.01.2009 в 19:48)   письмо автору
 
   для: SportSoft   (06.01.2009 в 19:40)
 

Действительно...
<?php 
$db 
mysql_connect ("localhost""root""root"); 
mysql_select_db ("vesty"$db); 

$result mysql_query ("SELECT * FROM news ORDER BY id DESC LIMIT 24"$db); 
if (
mysql_num_rows($result)>0
 {
echo 
"<table>";
    while (
$myrow mysql_fetch_array ($result)) 
    { 
    
$color = ($myrow['author'])?"red":"blue";
    
$autor = ($myrow['author'])?"
          <tr> 
            <td><b style='color:red'>"
.$myrow['author']."</b></td> 
          </tr>"
:null;
    echo 
$autor."
            <tr> 
            <td><b style='color:"
.$color."'>".$myrow['name']."</b></td> 
          </tr> 
          <tr> 
            <td><i><b>"
.$myrow['date']."</b></i></td> 
          </tr> 
          <tr> 
            <td><i><b> просмотров: "
.$myrow['view']."</b></i></td> 
          </tr> 
          <tr> 
            <td><p>"
.$myrow['m'].$myrow['description']."</p></td> 
          </tr> 
          <tr> 
            <td><a href='news.view.php?id="
.$myrow['id']."'><i>подробнее</i></a></td> 
          </tr>"

               
     } 
echo 
"</table>";
  
 } 
else 
 { 
    echo 
"информация отсутствует."
    exit(); 
 } 
?>
Можно еще компактней, но не так наглядно.

  Ответить  
 
 автор: SportSoft   (06.01.2009 в 19:40)   письмо автору
 
   для: Николай2357   (06.01.2009 в 19:34)
 

$myrow['author'] еще нужно куда-нибудь вставить в Ваш код, тогда будет результат тот же и более компактный код.

  Ответить  
 
 автор: Николай2357   (06.01.2009 в 19:34)   письмо автору
 
   для: coras_exe   (06.01.2009 в 18:52)
 

Вот так попробуйте. Это более правильно:
<?php 
$db 
mysql_connect ("localhost""root""root"); 
mysql_select_db ("vesty"$db); 

$result mysql_query ("SELECT * FROM news ORDER BY id DESC LIMIT 24"$db); 
if (
mysql_num_rows($result)>0
 {
echo 
"<table>";
    while (
$myrow mysql_fetch_array ($result)) 
    { 
    
$color = ($myrow['author'])?"red":"blue";
    echo 
"<tr> 
            <td><b style='color:"
.$color."'>".$myrow['name']."</b></td> 
          </tr> 
          <tr> 
            <td><i><b>"
.$myrow['date']."</b></i></td> 
          </tr> 
          <tr> 
            <td><i><b> просмотров: "
.$myrow['view']."</b></i></td> 
          </tr> 
          <tr> 
            <td><p>"
.$myrow['m'].$myrow['description']."</p></td> 
          </tr> 
          <tr> 
            <td><a href='news.view.php?id="
.$myrow['id']."'><i>подробнее</i></a></td> 
          </tr>"

               
     } 
echo 
"</table>";
  
 } 
else 
 { 
    echo 
"информация отсутствует."
    exit(); 
 } 
?>
Еще один момент - при отсутствии информации в базе, Вы можете получить нотис.

  Ответить  
 
 автор: SportSoft   (06.01.2009 в 19:04)   письмо автору
 
   для: coras_exe   (06.01.2009 в 18:52)
 

Практически одно и тоже в коде встречается то, что выводится в браузер. Можно сделать и покороче.
И я бы предпочтительнее использовал цикл while вместо do-while.

  Ответить  
 
 автор: coras_exe   (06.01.2009 в 18:52)   письмо автору
 
 

Уважаемые форумчане!
У меня вопрос.

Существует таблица news.
С полями:
-id (Здесь содержится номер статьи)
-name (Здесь содержится название статьи)
-author (Здесь содержится автор статьи)
-date (Здесь дата выхода статьи)
-description (Текст статьи)
-m (Содержит ссылку на изображение)
-view (Количество посещении)

Как правило в этой таблице, иногда не заполняется одно поле. Поле автора. Допустим печатают народный слух.
Необходимо выводить циклически новость с синим заголовком, если нет автора и красным заголовком новость с автором.


<? php
$db 
mysql_connect ("localhost""root""root");
mysql_select_db ("vesty"$db);

$result mysql_query ("SELECT * FROM news ORDER BY id DESC LIMIT 24"$db);
if (
mysql_num_rows($result)>0)
 {
    
$myrow mysql_fetch_array ($result);
    do
     {
        
$avatar=$myrow['author'];
    if (empty(
$avatar))
     { 
        
printf ("
        <table>
          <tr>
            <td><font color='blue'><b> %s </b></font></td>
          </tr>
          <tr>
            <td><i><b> %s </b></i></td>
          </tr>
          <tr>
            <td><i><b> просмотров: %s </b></i></td>
          </tr>
          <tr>
            <td><p> %s%s </p></td>
          </tr>
          <tr>
            <td><a href='news.view.php?id= %s '><i>подробнее</i></a></td>
          </tr>
            </table>"
$myrow['name'],$myrow['date'],$myrow['view'],$myrow['m'],$myrow['description'],$myrow['id']);  
     }
        else 
     {
        
printf ("
        <table>
          <tr>
            <td><font color='red'><b> %s </b></font></td>
          </tr>
          <tr>
            <td><i><b> %s </b></i></td>
          </tr>
          <tr>
            <td><i><b> %s </b></i></td>
          </tr>
          <tr>
            <td><i><b> просмотров: %s </b></i></td>
          </tr>
          <tr>
            <td><p> %s%s </p></td>
          </tr>
          <tr>
            <td><a href='news.view.php?id= %s '><i>подробнее</i></a></td>
          </tr>
            </table>"
$myrow['name'],$myrow['author'],$myrow['date'],$myrow['view'],$myrow['m'],$myrow['description'],$myrow['id']);      
         }
     }
    while (
$myrow mysql_fetch_array ($result));
 }
else
 {
    echo 
"информация отсутствует.";
    exit();
 }
?>


Работает стабильно. Ошибок не выдает. Код проверял.
Но вот в чем вопрос. Стойка ли такая конструкция в цикле.
Или может быть лучше использовать switch.
Дело в том, что у меня опыт не совсем большой в этом деле.

Да и как-то создал скрипт. Используя конструкцию if .... else, Принцип скрипта был основан на генерации html кода при определенных условиях.
Вроде все варианты поведения и наличия данных в базе на условия положил. Проверил что находится в переменных. Логическое значение, или число.
А скрипт всеже через какое-то время умер. Мне кажется, где-то глубоко я все же допустил ошибку.

Теперь фобия берет свое над логикой. :)

Подскажите...
Мне очень интересно ваше мнение и опыт.

  Ответить  

Сообщения:  [1-6] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования