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

Форум PHP

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Снова про новостной скрипт
 
 автор: Squadron   (22.06.2006 в 12:30)   письмо автору
 
 

вообщем скрипт с этого сайта, как сделать, что бы выводил только новости за текущий день к примеру за сегодня?

   
 
 автор: cheops (из файла)   (22.06.2006 в 13:08)
 
   для: Squadron   (22.06.2006 в 12:30)
 

Это не сложно сделать, если никто до вечера меня не опередит - поднимите тему, чтобы она не ускользнула от моего внимания.

   
 
 автор: Squadron   (22.06.2006 в 13:32)   письмо автору
 
   для: cheops (из файла)   (22.06.2006 в 13:08)
 

обязательно! буду ждать!

   
 
 автор: Squadron   (22.06.2006 в 16:11)   письмо автору
 
   для: cheops (из файла)   (22.06.2006 в 13:08)
 

кстати, еще вопрос!
Как вывести счетчик с кол-вом всех новостей?

   
 
 автор: cheops (из кафе)   (22.06.2006 в 16:19)
 
   для: Squadron   (22.06.2006 в 16:11)
 

Графический или просто цифру?

   
 
 автор: Squadron   (22.06.2006 в 16:38)   письмо автору
 
   для: cheops (из кафе)   (22.06.2006 в 16:19)
 

да простую!
и как насчет моего первого вопроса?

   
 
 автор: valenok   (22.06.2006 в 20:02)   письмо автору
 
   для: Squadron   (22.06.2006 в 16:38)
 

Надо в базу записывать посетителей.
Для того чтобы дважды не записывать посетителей - нужно хранить информацию как та что этот посетитель уже был тут. Тоесть его ip в базе / тексте - или пихать ему куку (которую он может удалить).

А для того чтобы записывать новых следует также держать дату посещения и считать только за последний день / неделю / месяц / год

   
 
 автор: Squadron   (22.06.2006 в 20:38)   письмо автору
 
   для: valenok   (22.06.2006 в 20:02)
 

Ты посты читал??????????????
Речь вообще не отом идет!!!!!!!

   
 
 автор: valenok   (22.06.2006 в 20:55)   письмо автору
 
   для: Squadron   (22.06.2006 в 20:38)
 

топом ошибся чтоли..

   
 
 автор: valenok   (22.06.2006 в 20:57)   письмо автору
 
   для: Squadron   (22.06.2006 в 20:38)
 

Счётчик всех новостей..
У тебя по строке на новсть:
Тоесть там id | text | ...

Тогда просто подсчётом колва строк.


<?
$q
=mysql_query("SELECT * FROM news",$link);
$num=mysql_num_rows($q);
echo 
$q;

   
 
 автор: Squadron   (22.06.2006 в 21:05)   письмо автору
 
   для: valenok   (22.06.2006 в 20:57)
 

где же cheops он так понятно всегда пишит ?! )

   
 
 автор: valenok   (22.06.2006 в 21:07)   письмо автору
 
   для: Squadron   (22.06.2006 в 21:05)
 

Пишет..

Что не понятного в том что я написал?
Как выглядит ваша таблица новостей?

   
 
 автор: valenok   (22.06.2006 в 21:08)   письмо автору
 
   для: valenok   (22.06.2006 в 21:07)
 

Поправка:

<? 
$q
=mysql_query("SELECT * FROM news",$link); 
$num=mysql_num_rows($q); 
echo 
$num;

   
 
 автор: CrazyAngel   (22.06.2006 в 21:09)   письмо автору
 
   для: Squadron   (22.06.2006 в 21:05)
 

Помоему где то так =)))

select * from news where date = date(Y-m-d) ;

+)
Может ошибаюсь =)

   
 
 автор: kasmanaft   (22.06.2006 в 22:41)   письмо автору
 
   для: Squadron   (22.06.2006 в 21:05)
 

насчет показа только нужных сообщений... нужно отредактировать запрос в базу даннх, например так выбирем новости за сегодняшний день...

**** AND putdate > '2006-06-23 00:00:00' AND putdate < '2006-06-23 24:59:59'

так можно подсчитать новости (те, которые "можно" смотреть.. где hide='show' )

  $nc = mysql_query ("SELECT count(*) FROM news WHERE hide='show'");
  $news_count = mysql_result ($nc, 0);


PS: решился все-таки и скачал скрипт =)) ... надеюсь то что надо качал..

   
 
 автор: cheops   (22.06.2006 в 23:22)   письмо автору
 
   для: Squadron   (22.06.2006 в 12:30)
 

Для вывода новостей за сегодняшний день можно воспользоваться запросом вида
<?php
    $query 
"SELECT id_news,
                   name,
                   body,
                   DATE_FORMAT(putdate,'%d.%m.%Y') as putdate_format,
                   url,
                   url_text,
                   url_pict,
                   hide
              FROM news 
              WHERE hide='show' AND 
                              DAYOFMONTH(putdate) = DAYOFMONTH(NOW()) AND 
                              MONTH(putdate) = MONTH(NOW()) AND
                              YEAR(putdate) = YEAR(NOW())
              ORDER BY putdate DESC "
;
  
$new mysql_query($query);
  if (!
$newputerror("Ошибка при обращении к блоку новостей");
  if(
mysql_num_rows($new) > 0)
  {
    while(
$news mysql_fetch_array($new))
    {
        
// Выводим заголовок новости
        
echo "<p class='zagnews'>".$news['name']."&nbsp;&nbsp;<em class=datanews>".$news['putdate_format']."</em></p>";    // Выводим тело новости перводя символы         

        // Выводим тело новости переводя символы 
        // переноса строки в тег <br>
        
echo "<p class='text'>";
        
// Выводим изображение
        
if(trim($news['url_pict']) != "" && trim($news['url_pict']) != "-")
        echo 
"<img align=right class=img src=".$news['url_pict'].">";
        
        echo 
nl2br($news['body'])."</p>";
        
        
// Выводим URL
        
if(trim($news['url']) != "" && trim($news['url']) != "-")
        echo 
"<p class='linkr'><a class='link' href=".$news['url'].">".$news['url_text']."</a></p>";        
    }
  }
?>

   
 
 автор: Squadron   (23.06.2006 в 09:59)   письмо автору
 
   для: cheops   (22.06.2006 в 23:22)
 

cheops вот грамотно всегда расписывает!
Но вот тока че то не работает (
Просто пусто и все (

   
 
 автор: Squadron   (23.06.2006 в 10:03)   письмо автору
 
   для: cheops   (22.06.2006 в 23:22)
 

Ага, он не считает за сегодня, те новости, которые были до этого, тоесть добавляет те, которые в данный момент я ввел!

   
 
 автор: margol   (23.06.2006 в 10:14)   письмо автору
 
   для: cheops   (22.06.2006 в 23:22)
 

класс! все понятно!

   
 
 автор: Squadron   (23.06.2006 в 10:23)   письмо автору
 
   для: margol   (23.06.2006 в 10:14)
 

Да, согласен!
а вот как нсчет вывода кол-ва новостей всего?

   
 
 автор: valenok   (23.06.2006 в 10:31)   письмо автору
 
   для: Squadron   (23.06.2006 в 10:23)
 

Добавь к тому коду:

$num_of_news=mysql_num_rows($query);

   
 
 автор: Squadron   (23.06.2006 в 10:35)   письмо автору
 
   для: valenok   (23.06.2006 в 10:31)
 

НЕРАБОТАЕТ !!!!!!!!!!!!!!!!!!

   
 
 автор: valenok   (23.06.2006 в 10:37)   письмо автору
 
   для: Squadron   (23.06.2006 в 10:35)
 

Ссори, согласен - не внимательность..

$num_of_news=mysql_num_rows($new);

   
 
 автор: Squadron   (23.06.2006 в 11:06)   письмо автору
 
   для: valenok   (23.06.2006 в 10:37)
 

0 эффекта, не выводит ничего!

   
 
 автор: valenok   (23.06.2006 в 11:16)   письмо автору
 
   для: Squadron   (23.06.2006 в 11:06)
 

Умник. Это потому что то что написал чеопс выбирает ни чего из базы.

   
 
 автор: valenok   (23.06.2006 в 11:17)   письмо автору
 
   для: Squadron   (23.06.2006 в 11:06)
 

И кроме того, ты написал чтото в стиле: echo $num_of_news
или это тоже надо за тебя писать?

   
 
 автор: Squadron   (23.06.2006 в 11:36)   письмо автору
 
   для: valenok   (23.06.2006 в 11:17)
 

да я писал, но мож че пропустил (

   
 
 автор: valenok   (23.06.2006 в 11:39)   письмо автору
 
   для: Squadron   (23.06.2006 в 11:36)
 

Помойму так чтоб выводились только за сегодня:


<?php 
    $query 
"SELECT id_news, 
                   name, 
                   body, 
                   DATE_FORMAT(putdate,'%d.%m.%Y') as putdate_format, 
                   url, 
                   url_text, 
                   url_pict, 
                   hide 
              FROM news 
              WHERE hide='show' AND putdate=."
date("Y-m-d")".
              ORDER BY putdate DESC "
;

   
 
 автор: Squadron   (23.06.2006 в 11:58)   письмо автору
 
   для: valenok   (23.06.2006 в 11:39)
 

Не работает опять!
Ты хотя бы проверял что ли, прежде чем постить!

   
 
 автор: CrazyAngel   (23.06.2006 в 12:05)   письмо автору
 
   для: Squadron   (23.06.2006 в 11:58)
 

Думаю тут ошибка
putdate=."date("Y-m-d")".

Может так???

putdate=".date("Y-m-d")."

   
 
 автор: cheops   (23.06.2006 в 12:13)   письмо автору
 
   для: cheops   (22.06.2006 в 23:22)
 

У меня ошибка была в SQL-запросе, вместо
 MONTH(putdate) = MONTH(NOW())

было
 MONTH(putdate) = WEEK(NOW())

скорее всего новости не выводятся из-за этого. Для того, чтобы подсчитать новости за текущий день можно воспользоваться кодом вида
<?php
 $query 
"SELECT COUNT(*)
              FROM news 
              WHERE hide='show' AND 
                              DAYOFMONTH(putdate) = DAYOFMONTH(NOW()) AND 
                              MONTH(putdate) = MONTH(NOW()) AND 
                              YEAR(putdate) = YEAR(NOW())"

  
$new mysql_query($query); 
  if (!
$newputerror("Ошибка при обращении к блоку новостей"); 
  
$total mysql_result($new,0);
  echo 
$total;
?>

   
 
 автор: Squadron   (23.06.2006 в 13:35)   письмо автору
 
   для: cheops   (23.06.2006 в 12:13)
 

кол-во то показывает, но с выводом так и не получилось!
а как кол-во вообще всех новостей вывести?

   
 
 автор: valenok   (23.06.2006 в 13:52)   письмо автору
 
   для: Squadron   (23.06.2006 в 13:35)
 

Старй запрос + мой скрипт.

   
 
 автор: cheops   (23.06.2006 в 15:12)   письмо автору
 
   для: Squadron   (23.06.2006 в 13:35)
 

Количество всех новостей можно вывести при помощи скрипта
<?php 
$query 
"SELECT COUNT(*) 
              FROM news 
              WHERE hide='show'"

  
$new mysql_query($query); 
  if (!
$newputerror("Ошибка при обращении к блоку новостей"); 
  
$total mysql_result($new,0); 
  echo 
$total
?>

   
 
 автор: Squadron   (23.06.2006 в 16:08)   письмо автору
 
   для: cheops   (23.06.2006 в 15:12)
 

Все ок, спасиб!

   
 
 автор: Ignat   (23.06.2006 в 15:29)   письмо автору
 
   для: Squadron   (22.06.2006 в 12:30)
 

where putdate=CURDATE()

   
Rambler's Top100
вверх

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