#1 2010.02.08 13:44

SHAKUR
Гость

MySQL - table news.

Как вывести количество новостей:
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]

#2 2010.02.08 19:57

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6543
Карма: 108
Профиль Веб-сайт

Re: MySQL - table news.

во первых, 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

Отредактировано Gemorroj (2010.02.09 10:01)

Неактивен

#3 2010.02.09 08:30

SHAKUR
Гость

Re: MySQL - table news.

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

#4 2010.02.09 12:32

SHAKUR
Гость

Re: MySQL - table news.

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

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

print "$mq";
}
ncnt();

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

#5 2010.02.09 13:01

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6543
Карма: 108
Профиль Веб-сайт

Re: MySQL - table news.

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

Код:

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

Неактивен

#6 2010.02.09 14:10

SHAKUR
Гость

Re: MySQL - table news.

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

#7 2010.02.09 14:39

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6543
Карма: 108
Профиль Веб-сайт

Re: MySQL - table news.

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

Неактивен

#8 2010.02.09 19:01

SHAKUR
Гость

Re: MySQL - table news.

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

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/>";

#9 2010.02.09 19:16

Fuelen
Участник
Откуда: Украина
Зарегистрирован: 2009.06.22
Сообщений: 229
Карма: 5
Профиль

Re: MySQL - table news.

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

Неактивен

#10 2010.02.09 19:40

SHAKUR
Гость

Re: MySQL - table news.

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

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

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

#11 2010.02.10 09:02

SHAKUR
Гость

Re: MySQL - table news.

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

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;
}

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

#12 2010.02.10 15:49

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6543
Карма: 108
Профиль Веб-сайт

Re: MySQL - table news.

DECS -> DESC

Неактивен

#13 2010.02.10 16:19

SHAKUR
Гость

Re: MySQL - table news.

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

#14 2010.02.10 17:32

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6543
Карма: 108
Профиль Веб-сайт

Re: MySQL - table news.

Код:

1
2
$q = mysql_query('SELECT * FROM `news` ORDER BY id DESC LIMIT 1');
print_r(mysql_fetch_assoc($q));

Неактивен

#15 2010.02.10 19:29

SHAKUR
Гость

Re: MySQL - table news.

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

$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]. то есть контент это текст новости.

Дополнительно

forum.wapinet.ru

PunBB Mod v0.6.1
0.010 s