Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.04.2013, 13:12   #1
bizarre86
Пользователь
 
Регистрация: 06.08.2012
Сообщений: 21
Вопрос Вывод пустых ячеек вместо 0000-00-00

Доброго всем дня! Помогите чайнику....
Есть таблица в которой есть поля с датой: 'datainet', 'datamail', 'datarereg';
там, где дата не заполнена при выводе отображается 0000-00-00..
Как избавиться от этого и вместо 0000-00-00 выводить пустую ячейку таблицы или прочерк??
PHP код:
session_start();
include (
"bd.php");
if (!empty(
$_SESSION['login']) and !empty($_SESSION['password']))
 {
   
$login $_SESSION['login'];
   
$password $_SESSION['password'];
   
$result2 mysql_query("SELECT id FROM users 
                                    WHERE login='
$login' AND password='$password'",$db); 
   
$myrow2 mysql_fetch_array($result2); 
     if (empty(
$myrow2['id']))
       {
         exit(
"Вход на эту страницу разрешен только зарегистрированным пользователям!");
        }
   }
else {
        exit(
"Вход на эту страницу разрешен только зарегистрированным пользователям!<a href=\"../index.php\">Зарегистрироваться</a></div>"); }

$table "Journal";
$query "SELECT journal.lastname, 
                 journal.firstname, 
          journal.middlename, 
          journal.position, 
          journal.corp, 
          journal.office, 
          journal.phone, 
          journal.privity, 
          DATE_FORMAT(`datainet`,'%d.%m.%Y') AS `datainet`,
          DATE_FORMAT(`datamail`,'%d.%m.%Y') AS `datamail`,
          DATE_FORMAT(`datarereg`,'%d.%m.%Y') AS `datarereg`,
          journal.email, 
          journal.num,
                        journal.comment
           FROM `journal`
           WHERE journal.divis = '8' order by journal.lastname"
;
$res mysql_query($query) or die(mysql_error());
echo (
"
<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html xmlns=\"http://www.w3.org/1999/xhtml\">
 
<head>
    <meta http-equiv=\"Content-Type\" content=\"text/html;          charset=windows-1251\" />
 
    <title>Вывод данных</title>
 
<style type=\"text/css\">
body { font: 12px Georgia; color: #666666; }
h3 { font-size: 16px; text-align: center; }
table { width: 700px; border-collapse: collapse; margin: 0px auto; background: #E6E6E6; }
td { padding: 3px; text-align: center; vertical-align: middle; }
.buttons { width: auto; border: double 1px #666666; background: #D6D6D6; }
</style>
</head>
  <body>
 
    <h3>Сотрудники цеха 8</h3>
<table border=\"1\" cellpadding=\"0\" cellspacing=\"0\">
 <tr style=\"border: solid 1px #000\">
  <td><b>#</b></td>
  <td align=\"center\"><b>Фамилия пользователя</b></td>
  <td align=\"center\"><b>Имя пользователя</b></td>
  <td align=\"center\"><b>Отчество пользователя</b></td>
  <td align=\"center\"><b>Должность</b></td>
  <td align=\"center\"><b>Корпус</b></td>
  <td align=\"center\"><b>Кабинет</b></td>
  <td align=\"center\"><b>Телефон</b></td>
  <td align=\"center\"><b>Осведомленность</b></td>
  <td align=\"center\"><b>Дата рег.интернета</b></td>
  <td align=\"center\"><b>Дата рег.почты</b></td>
  <td align=\"center\"><b>Дата перерегистрации</b></td>
  <td align=\"center\"><b>E-Mail пользователя</b></td>
  <td align=\"center\"><b>№ записи в журнале</b></td>
  <td align=\"center\"><b>Комментарий</b></td>
 </tr>
"
);
 
while (
$row mysql_fetch_array($res)) {
    echo 
"<tr>\n";
    echo 
"<td>".$row['id']."</td>\n";
    echo 
"<td>".$row['lastname']."</td>\n";
    echo 
"<td>".$row['firstname']."</td>\n";
    echo 
"<td>".$row['middlename']."</td>\n";
    echo 
"<td>".$row['position']."</td>\n";
    echo 
"<td>".$row['corp']."</td>\n";
    echo 
"<td>".$row['office']."</td>\n";
    echo 
"<td>".$row['phone']."</td>\n";
    echo 
"<td>".$row['privity']."</td>\n";
    echo 
"<td>".$row['datainet']."</td>\n";
    echo 
"<td>".$row['datamail']."</td>\n";
    echo 
"<td>".$row['datarereg']."</td>\n";
    echo 
"<td>".$row['email']."</td>\n";
    echo 
"<td>".$row['num']."</td>\n";
    echo 
"<td>".$row['comment']."</td>\n";
}
 
echo (
"</table>\n");
 
mysql_close();
echo (
"<div style=\"text-align: center; margin-top: 10px;\"><a href=\"../work.php\">Вернуться назад</a></div>"); 
Как переписать код, чтоб добиться желаемого?
Была такая попытка, но не работает:
PHP код:
while ($row mysql_fetch_array($res)) {
$datainet = empty($row['datainet'])?' - ' $row['datainet'];
    echo 
"<tr>\n";
    echo 
"<td>".$row['id']."</td>\n";
    echo 
"<td>".$row['lastname']."</td>\n";
    echo 
"<td>".$row['firstname']."</td>\n";
    echo 
"<td>".$row['middlename']."</td>\n";
    echo 
"<td>".$row['position']."</td>\n";
    echo 
"<td>".$row['corp']."</td>\n";
    echo 
"<td>".$row['office']."</td>\n";
    echo 
"<td>".$row['phone']."</td>\n";
    echo 
"<td>".$row['privity']."</td>\n";
    echo 
"<td>$datainet</td>\n";
    echo 
"<td>".$row['datamail']."</td>\n";
    echo 
"<td>".$row['datarereg']."</td>\n";
    echo 
"<td>".$row['email']."</td>\n";
    echo 
"<td>".$row['num']."</td>\n";
    echo 
"<td>".$row['comment']."</td>\n";

p.s. не бейте)

Последний раз редактировалось bizarre86; 12.04.2013 в 07:31.
bizarre86 вне форума Ответить с цитированием
Старый 11.04.2013, 13:17   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

а что - if использовать религия не позволяет?
можно в самом запросе
Код:
IF(datamail="0000-00-00","",datamail) AS datamail
можно в php выводе
Код:
 if ($row['datamail']=="0000-00-00") echo "<td>&nbsp;</td>" else echo "<td>".$row['datamail']."</td>";
для чего вы в таблице после завершения ячеек ставите \n осталось загадкой
ADSoft вне форума Ответить с цитированием
Старый 12.04.2013, 04:29   #3
bizarre86
Пользователь
 
Регистрация: 06.08.2012
Сообщений: 21
По умолчанию

ADSoft, спасибо за ответ!
А где в запросе правильно применить IF? не приходилось им пользоваться..
Были попытки вставить в select где выборка строк идет и после where, но,видимо, не так делаю.
В выводе тоже не получилось
Помогите разобраться..
bizarre86 вне форума Ответить с цитированием
Старый 12.04.2013, 07:53   #4
bizarre86
Пользователь
 
Регистрация: 06.08.2012
Сообщений: 21
По умолчанию

ADSoft, получилось!
PHP код:
$query "SELECT journal.lastname, 
                       journal.firstname, 
                         journal.middlename, 
                         journal.position, 
                         journal.corp, 
                         journal.office, 
                         journal.phone, 
                         journal.privity,
                 IF(`datainet`='0000-00-00','',`datainet`) AS `datainet`,
                 IF(`datamail`='0000-00-00','',`datamail`) AS `datamail`,
                 IF(`datarereg`='0000-00-00','',`datarereg`) AS `datarereg`,
                         journal.email, 
                         journal.num,
                 journal.comment
           FROM `journal`
           WHERE journal.divis = '8' order by journal.lastname"

НО в таком случае дата выводится в формате "0000-00-00"..
Можно ли как-то объединить это с DATE_FORMAT(`datainet`,'%d.%m.%Y') AS `datainet` ?

Заранее спасибо!
bizarre86 вне форума Ответить с цитированием
Старый 12.04.2013, 09:04   #5
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

как то так
Код:
 IF(`datainet`='0000-00-00','',DATE_FORMAT(`datainet`,'%d.%m.%Y')) AS `datainet`,
почитайте про синтаксис IF в SQL ... многое прояснит
ADSoft вне форума Ответить с цитированием
Старый 15.04.2013, 06:29   #6
bizarre86
Пользователь
 
Регистрация: 06.08.2012
Сообщений: 21
По умолчанию

ADSoft, Огромное человеческое Спасибо!!!!

Про синтаксис обязательно прочту!
bizarre86 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подсчет пустых ячеек Easyway Microsoft Office Excel 2 20.07.2012 01:05
подсчёт пустых ячеек в дбгрид DataBase213 БД в Delphi 7 28.04.2012 11:24
Подсчет пустых ячеек Artem_85 Microsoft Office Excel 2 24.02.2012 14:49
поиск пустых ячеек и вывод результата alexander_l Microsoft Office Excel 7 17.06.2010 16:50