За последние 24 часа нас посетили 16693 программиста и 1604 робота. Сейчас ищут 1303 программиста ...

Отображение   в таблице

Тема в разделе "PHP для новичков", создана пользователем Puk, 3 сен 2013.

  1. Puk

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

    С нами с:
    17 июн 2011
    Сообщения:
    20
    Симпатии:
    0
    Всем доброго дня.
    Следующая ситуация. Информация из базы данных выводится в таблицу. Иногда попадаются места, где в ячейках нет данных. И в этом случае долбанный IE эту самую ячейку не отображает. Что ни есть гуд. Ситуацию спасает помещение беспрерывного пробела   в пустую ячейку.

    Вопрос. Как выглядит запроc, который можно сформулировать так: Если в конкретной ячейке нету информации (она пуста) то туда автоматически вставлять  

    Или, упрощённый вариант вопроса, чем необходимо дополнить следующий код:

    Код (Text):
    1.  
    2. <?
    3. if (isset($_GET['id'])) {$id=$_GET['id'];}
    4. if (!isset($id)) {$id=1;}
    5. $sql_select = mysql_query("SELECT * FROM tg WHERE id='$id'",$db);
    6. $arr = mysql_fetch_array($sql_select);
    7. ?>
    8. <font size="2" face="Times New Roman">
    9. <?
    10. do {
    11. printf ("<div id=kbp_t_p>
    12. <table width=372 border=1 bordercolor=#F15A41>
    13.   <tr align=center bgcolor=#F15A41>
    14.     <td ><font color=#FFFFFF>KL <br> (UIPN atskaitēm)</font></td>
    15.  
    16.   </tr>
    17.   <tr>
    18.     <td align=center>%s</td>
    19.   </tr>
    20. </table>
    21. </div>
    22. "
    23. ,$arr["kluipn"]);          
    24. }
    25.  
    26. while ($arr=mysql_fetch_array($sql_select));
    27. ?>
    Заранее премного благодарен.
     
  2. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Какая версия?
    Запрос в базу чтоли? Бросьте. Ставьте в ячейки таблицы некую переменную $temp вместо данных из бд. В переменную пишем неразрывный пробел, если с базы пришло пустое значение для ячейки, либо, если значение не пустое, пишем в переменную его.
     
  3. Puk

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

    С нами с:
    17 июн 2011
    Сообщения:
    20
    Симпатии:
    0
    IE7. Не спрашивайте, почему нельзя обновить до последней, не знаю. В данном случае это корпоративная среда, в некоторых вещах логики нет.

    Поэтому сюда и написал. Не знаю как это физически реализовать. Т.е. мне нужен конкретный пример запроса, который я смогу поставить, проверить и разобраться как он работает и написан. Я ещё только учусь этому делу. И такие, как я понял, примитивные вещи, для меня пока, что сложны для понимания.
     
  4. Roman_che

    Roman_che Новичок

    С нами с:
    3 сен 2013
    Сообщения:
    13
    Симпатии:
    0
    Попробуй так
    Код (Text):
    1. $sql_select = mysql_query("SELECT *, if(field = '', '&nbsp;', field) as anyfield FROM tg WHERE id='$id'",$db);
    где field - заполненное/пустое поле, anyfield - "новое поле"
     
  5. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    а в пхп не проще пройтись по массиву и расставить эти &nbsp; без спец-запроса.
     
  6. Roman_che

    Roman_che Новичок

    С нами с:
    3 сен 2013
    Сообщения:
    13
    Симпатии:
    0
    Мы не ищем легких путей :)
     
  7. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Ох, ё...не, так дело не пойдет.
    Вот есть запрос:
    Код (Text):
    1. $sql_select = mysql_query("SELECT * FROM tg WHERE id='$id'",$db);
    2. $arr = mysql_fetch_array($sql_select);
    И отлично, он что-то там возвращает.

    Потом, при выводе инфы, просто в php проверяйте значение ячейки. Если пришла пустая, то выводите неразрывный пробел, если не пустая, то значение ячейки. Не надо смешивать данные с их обработкой и выводом. Сделали запрос? Ок, пусть он вернет ровно то, что есть в базе. Один-в-один. Иначе потом потеряете контроль над происходящим.

    эхехе...ситуация довольно распространенная, к сожалению. Причем независимо от страны, из которой корпорация тянется. Сименс, вон, прогрессируют, недавно на IE8 перешли :)

    Добавлено спустя 1 минуту 41 секунду:
    Один мой знакомый стоматолог с похожими взглядами очень любит работать с пациентами через задний проход. Дергать зубы через задницу, ставить пломбы, наращивать протезы. Когда делает рентген, прислоняет пациента к аппарату тоже задницей и просит сделать излучение такой силы, чтобы было видно зубы. Не хотите записаться к нему на прием, чтобы оценить всю трагедию такого мировоззения? :)
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ну просто не факт что надо везде-везде делать это. выборка из бд может сожержать данные, которые влияют на цвет, оформление, и прочую служебную при отрисовке херотень. Нельзя же неглядя забивать все нуллы пробелами.
     
  9. Puk

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

    С нами с:
    17 июн 2011
    Сообщения:
    20
    Симпатии:
    0
    Не прошло.Выдаёт ошибку Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in

    Добавлено спустя 3 минуты 5 секунд:
    Пол дня протыркался, не получилось. Видать ещё не дорос:)
    В любом случае, все спасибо за отзывчивость. Большая редкость в наше время:)
     
  10. Roman_che

    Roman_che Новичок

    С нами с:
    3 сен 2013
    Сообщения:
    13
    Симпатии:
    0
    Странно - проверьте строку. Попробовал у себя в ПМА такую строчку - работает.
    Код (Text):
    1. SELECT *, if(user_company = '', '&nbsp;', user_company) as anyfield FROM users WHERE user_id = 1
    человек задал конкретный вопрос
    Я дал ему конкретный ответ. А в остальном - ему предложили вариант, как можно сделать. Пусть думает как для него удобно/правильно.
     
  11. Puk

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

    С нами с:
    17 июн 2011
    Сообщения:
    20
    Симпатии:
    0
    Не ссорьтесь. Моя проблема того не стоит. Ещё раз всем спасибо:)