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 |
Сохраняй правильный регистр комманд. И переменные выноси за кавычки.
|
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 |
|
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]. то есть контент это текст новости. |