SHAKUR » 2010.02.08 13:44

Как вывести количество новостей:
1. число всех новостей в бд,
2. число новых новостей за сутки.
3. вывести на главную одну последнюю новость.


ВОТ ТАБЛИЦА:

CREATE TABLE `news` (
`id` int(11) NOT NULL auto_increment,
`data` date NOT NULL default '0000-00-00',
`title` varchar(255) NOT NULL default '',
`content` text NOT NULL,
PRIMARY KEY  (`id`)) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=22;

КАК СДЕЛАТЬ 1, 2, 3 ?
Добавлено спустя   2 минуты  47 секунд:
Например надо вот так

---
<b>Новость:</b>
такая там такая..
---
<a href=>все новости..</a>[9/+1]

Gemorroj » 2010.02.08 19:57

во первых, CHARSET=cp125 - это страшная мерзость. заменить на utf8
1) SELECT COUNT(*) FROM news
2) SELECT COUNT(*) FROM news WHERE data = CURRENT_DATE()
3) SELECT * FROM news ORDER BY id DESC LIMIT 1

SHAKUR » 2010.02.09 08:30

Gemorroj, приведи пожалуйста пример записи счетчика новостей в странице.php
первый этот-
select count(*) from news.
А то у меня чёт не так. Низнаю как вписать.

SHAKUR » 2010.02.09 12:32

Вот я пишу так:

function ncnt() {
$mq = mysql_query("SELECT COUNT(*) from news ORDER BY id DESC LIMIT 1");

print "$mq";
}
ncnt();

мне показует resourse id #38. мож что то не дописал?

Gemorroj » 2010.02.09 13:01

Сохраняй правильный регистр комманд. И переменные выноси за кавычки.

Код:

1
2
3
function ncnt() {
return mysql_result(mysql_query('SELECT COUNT(*) FROM news ORDER BY id DESC LIMIT 1'), 0);
}
SHAKUR » 2010.02.09 14:10

Спасибо. Дальше сам разберусь. За регистр запомню.
Добавлено спустя   2 минуты  49 секунд:
Переменные можно и в кавычках print "". $переменная . "";

Gemorroj » 2010.02.09 14:39

print $var;
тут кавычки вообще не нужны.

SHAKUR » 2010.02.09 19:01

Вот смотри Гемарой:

mconnect();
$nc = mysql_query('SELECT COUNT(*) FROM `news`');
$ncount = mysql_result($nc, 0);
print $ncount;

вот - при помощи такой записи я получил результат: 2 что означает две новости в базе. всё нормал. Я просто Structured Query Language плохо знаю да и учил я его двно но в работе не применял не разу я только знаю PHP, Java Script и ещё. А на счет переменных их и в ява скрипте надо за кавычки выносить. ну я думаю можно и так написать:
print ($var + "<br/>");
print $var + "<br/>";

Fuelen » 2010.02.09 19:16

Вместо + ставь точку

SHAKUR » 2010.02.09 19:40

Ну да то в ява скрипте просто +.

document.write("<br>" + var);

лично я не нуб и пишу скрипты по своему. mysql да я плохо знаю. Но как видишь всё запомнить тоже время надо. if, do while, for, switch, работа с файлами и т.д. всё умею на ура. как видишь mysql меня побеждает. надо учить.

SHAKUR » 2010.02.10 09:02

Гемарой, у меня проблема с выводом одной новости
я пишу так:

1)
$n1 = mysql_query('SELECT * FROM `news` ORDER BY id DECS LIMIT 1, 0);
if (mysql_num_rows($n1) > 0) {
return $n1;
}

2)
$n1 = mysql_query('SELECT * FROM `news` ORDER BY id DECS LIMIT 1);
$n2 = mysql_result($n1, 0);
if (mysql_num_rows($n1)) {
return $n1;
}

то есть второй вариант не верный но я перепробывал всё возможное что знал.
Счетчик всех и новых новостей у меня котов.
А вот вывод одной нет. Не подскажишь старику ?

Gemorroj » 2010.02.10 15:49

DECS -> DESC

SHAKUR » 2010.02.10 16:19

HET у меня стоит DESC. Это я тут писал в ручную и неверно написал. в общем как вывожу эту новость так у меня либо написано 24, либо resoure id 38. в чём проблема?

Gemorroj » 2010.02.10 17:32

Код:

1
2
$q = mysql_query('SELECT * FROM `news` ORDER BY id DESC LIMIT 1');
print_r(mysql_fetch_assoc($q));
SHAKUR » 2010.02.10 19:29

Спасибо Гемарой! Я использовал функцию так:

$m1 = mysql_query('SELECT * FROM `news`');
$m2 = mysql_fetch_array($m1);
print $m2[title];
print $m2[data];
print $m2[contents];

---
можно и mysql fetch array, и  mysql fetch assоc. Я увидил увидил что мне вибыло ввиде массива и написал $m2[content]. то есть контент это текст новости.