За последние 24 часа нас посетил 17581 программист и 1281 робот. Сейчас ищут 1587 программистов ...

Отображение информации из БД при значении NULL

Тема в разделе "PHP и базы данных", создана пользователем Chudik, 13 ноя 2006.

  1. Chudik

    Chudik Активный пользователь

    С нами с:
    7 ноя 2006
    Сообщения:
    61
    Симпатии:
    0
    Адрес:
    Ukraine, Dnepropetrovsk
    Выбираю данные из БД, потом их вывожу с помощью "printf", но выводятся все значения, даже если значение ячейки в таблице NULL, а хотелось бы если пустое поле, то чтобы оно упускалось. Как это сделать, подскажите?
     
  2. vasa_c

    vasa_c Активный пользователь

    С нами с:
    22 мар 2006
    Сообщения:
    1.760
    Симпатии:
    0
    Адрес:
    гор.Ленинград
  3. Chudik

    Chudik Активный пользователь

    С нами с:
    7 ноя 2006
    Сообщения:
    61
    Симпатии:
    0
    Адрес:
    Ukraine, Dnepropetrovsk
    Код (Text):
    1. printf ("имя: $name");
    2. printf ("тел: $tel");
    3. printf ("адрес: $mail");
    Но если нет в абонента номера тел., то все равно оно показывает:
    Имя: Коля
    Тел:
    Адрес: email@email.ru
     
  4. Mavir

    Mavir Guest

    PHP:
    1. <?
    2. if ($tel){
    3.   printf ("тел: $tel");
    4. }
    5. ?>
    А почему используешь printf?
     
  5. simpson

    simpson Активный пользователь

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Chudik
    а что вы ожидали от этого кода? что он сам начнет за вас решать, что нужно выводить, а что не нужно? проверяйте переменные на присутствие значений.

    P.S. зачем использовать функцию, форматирующую строку, если это форматирование не используется? используйте echo.
     
  6. Chudik

    Chudik Активный пользователь

    С нами с:
    7 ноя 2006
    Сообщения:
    61
    Симпатии:
    0
    Адрес:
    Ukraine, Dnepropetrovsk
    да я примерно привел код, echo <TABLE> выводит?
     
  7. simpson

    simpson Активный пользователь

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    ?
     
  8. Davil

    Davil Guest

    if($tel!=="null"){
    echo "Что надо";
    }
    Бессмыслица.
     
  9. NIKO

    NIKO Активный пользователь

    С нами с:
    10 фев 2006
    Сообщения:
    655
    Симпатии:
    0
    Адрес:
    Armenia
    Кажется вы друг-друга не понимаете! :)
     
  10. DarkElf

    DarkElf Активный пользователь

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    Chudik

    нууу, тут два варианта:
    1) проверять сами переменные
    2) поставить условия в запросе, чтоб пустых не было
     
  11. Anonymous

    Anonymous Guest

    Перечитай еще раз вопрос. И как ты это себе представляешь?
     
  12. topas

    topas Активный пользователь

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    разве null нужно заковычивать?
     
  13. начнём с того, что здесь путают null в базе и null в пхп
     
  14. topas

    topas Активный пользователь

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    а в запросе никак поставить // AND `phone` is not null
     
  15. У кого не получается?
     
  16. DarkElf

    DarkElf Активный пользователь

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    м, структура таблицы допустим:

    id
    name
    tel
    mail.

    Нужны только непустые значения name tel и mail

    Код (Text):
    1. SELECT name, mail, tel
    2. FROM ****
    3. WHERE name != '' AND tel != '' AND mail != '' LIMIT 0 , 30)
     
  17. topas

    topas Активный пользователь

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    DarkElf и что возвращает этот запрос?
     
  18. DarkElf

    DarkElf Активный пользователь

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    Показывает записи 0 - 0 (1 всего, Запрос занял 0.0005 сек)
    SQL-запрос : [Правка] [Описать SQL] [Создать PHP-код]
    SELECT *
    FROM `test_table`
    WHERE name != '' AND tel != '' AND mail != '' LIMIT 0 , 30

    в таблице 3 записи, из них в одной заполнены все три поля.
     
  19. я думаю, автору нужны все записи.
    а не только те, в которых заполнены все поля.
    в это случае в запросе действительно нечего делать, а код для пхп написали уже сто раз.
     
  20. DarkElf

    DarkElf Активный пользователь

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    Чебурген

    из вопроса этого однозначно не следует=)
     
  21. topas

    topas Активный пользователь

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    Код (Text):
    1. WHERE 1
    2. AND ((name != '') OR (name is not null))
    3. AND ((tel != '') OR (tel is not null))
    4. AND ((mail != '') OR (mail is not null))
    5. LIMIT 0 , 30
    может так? если поможет, значит надо почитать литературу, так как этот запрос содержит все-таки избыточную информацию с логической точки зрения.
    НАДО ЗНАТЬ ЧТО У ВАС ЛЕЖИТ В БД!
     
  22. Anonymous

    Anonymous Guest

    topas, DarkElf, неверно. Перед ответом внимательно читайте вопрос.
     
  23. topas

    topas Активный пользователь

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    извините, действительно вопрос и ответ не по теме.
    Это все DarkElf виноват :))
     
  24. Anonymous

    Anonymous Guest

    topas, виноват тот, кто поленился прочитать. ;)
     
  25. Chudik

    Chudik Активный пользователь

    С нами с:
    7 ноя 2006
    Сообщения:
    61
    Симпатии:
    0
    Адрес:
    Ukraine, Dnepropetrovsk
    Код (Text):
    1.  
    2. while($myrow=mysql_fetch_row($result))
    3.  
    4. {
    5.  
    6.  
    7. printf("<table border=1 bordercolor=#009900 cellSpacing=1 cellpadding=0 width=580><tr class=name><td align=left height=25 class=firm><b>%s</b>\n<br>",$myrow[1]);
    8. printf("</tr></td><tr><td><table class=bakfon><tr class=row1 align=left><td width=150>Види діяльності:</td><td width=425>%s\n<br>",$myrow[5]);
    9.  
    10.  
    11. if ("$myrow[11]") {
    12. printf("<tr class=row1 align=left><td></td><td>%s\n<br>",$myrow[11]);
    13. }
    14. if ("$myrow[10]") {
    15. printf("<tr class=row1 align=left><td></td><td>%s\n<br>",$myrow[10]);
    16. }
    17.  
    18. printf("<tr class=row1 align=left><td>Адреса:</td><td>%s, %s, %s\n<br>",$myrow[4], $myrow[2] ,$myrow[3]);
    19.  
    20.  
    21. if ("$myrow[8]") {
    22. printf("<tr class=row1 align=left><td>Телефон:</td><td>%s\n<br>",$myrow[8]);
    23. }
    24. if ("$myrow[9]") {
    25. printf("<tr class=row1 align=left><td>Факс:</td><td>%s\n<br>",$myrow[9]);
    26. }
    27. if ("$myrow[6]") {
    28. printf("<tr class=row1 align=left><td>e-mail:</td><td>%s\n<br>",$myrow[6]);
    29. }
    30. if ("$myrow[7]") {
    31. printf("<tr class=row1 align=left><td>http://</td><td>%s</tr>\n",$myrow[7]);
    32. }
    33. echo "</td></table></tr></td></table>";
    34.  
    35.  
    36.  
    37.  
    38. }
    вот так сделал, как считаете нормально будет, выводит вроде то что и хотелось добится