Я в данный момент изучаю MySQL и вот решил написать простенький скрипт вывода афоризмов на страницу,с возможностью добавления афоризмов пользователями и гостями.после добавления афоризм отправляется на проверку админу и после подтверждения уже попадает в список выводимых.у меня возникли проблемы с выводом информации.создал вот такую таблицу create table `aforism` (
`id` int(6) not null auto_increment,
`time` int(11) not null,
`name` text not null,
`text` text not null,
`type` text not null,
primary key (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
вобщем во втором поле сохраняется время,в третьем имя того кто добавил его(если авторизованный пользователь,то сохраняется его ник) в четвертом текст а в пятом тип,при сохранении автоматически устанавливается значение no а после подтверждения админом изменится на yes. вот мне нужно вывести все это ввиде списка для просмотра и подтверждения админом. как это можно сделать?
Если занялся изучением мускула и пыха (соответственно), то в книгах всегда есть примеры различных простейших скриптов и кодов. Открой любой файл со списком (тех же юзеров) и посмотри пример кода, каким этот список создается и выводится.
Делаешь запрос
и выводишь циклом и все ну разумеется ставишь ссылку с подтверждением в цикле
Есть много вариантов.
Но предложу тебе самый простой, а главное понятный - это checkbox
Сейчас я с телефона и писать код не удобно.
Если ты знаком с данной функцией, то ты понял о чем я. Выбираешь нужные афоризмы и при нажатии на кнопку присваиваешь значение yes в поле type для афоризмов у которых ID совпадает с теми, что ты выберешь.
Я пробовал с помощью цикла все это делать,видно чтото сделал не так.работают только запросы которые подсчитывают общее количество и количество неподтвержденных.вобщем я потом напишу код,так понятнее будет.Янулов,спасибо за идею
я хотел возле каждого ссылку делать на подтверждение,а так можно будет массово это сделать.
А вот сам код
define('_IN_JOHNCMS', 1);
$rootpath = '../';
$title = 'Админка';
require_once ($rootpath."incfiles/core.php");
require_once ($rootpath."incfiles/head.php");
if (empty($user_id)) {
echo 'Ошибка!доступ только для зарегистрированных пользователей!';
require_once ($rootpath."incfiles/end.php");
exit;
}
if ($rights < 8) {
echo 'Ошибка!доступ разрешен только для администрации сайта!';
require_once ($rootpath."incfiles/end.php");
exit;
}
if (empty($_GET['act'])) { $act = ""; } else{ $act = $_GET['act']; }
switch($act) {
default:
echo '<div class="phdr">Админка</div>';
$total = mysql_result(mysql_query("SELECT COUNT(*) FROM `aforism` ;"), 0);
$new = mysql_result(mysql_query("SELECT COUNT(*) FROM `aforism` WHERE `type`='no' ;"), 0);
$col = $total;
if ($new>0) { $col .= '/<span class="red">' .$new. '</span>'; }
else { $col .= '<br />Новых нет'; }
echo '<div class="c">Всего записей: ' .$col. '<br /><hr />';
//На этом месте страница обрывается и нижняя часть вообще не отображается
if ($new>0) {
$q = mysql_query("SELECT(*) FROM `aforism` ;");
$lim = mysql_num_rows($q);
$res = mysql_query("select * from `aforism` order by id desc LIMIT $lim ;");
while ($res = mysql_fetch_array($req)) {
echo 'Автор ' .$res['name']. '<br />';
echo 'Текст ' .$res['text']. '<br /><hr />';
}
echo '</div>';
}
break;
}
require_once ($rootpatch."incfiles/end.php");
Часть кода в которая идет после комментария,я взял из другого скрипта и просто переделал.но там все работало а тут нет
Сейчас почитал учебник и переписал запрос вот так $q = mysql_query("SELECT(*) FROM `aforism` WHERE `type`='no' ORDER BY `id` DESC LIMIT $new");
while ($res = mysql_fetch_array($q)) {
и все равно нифига не работает
Вобщем с этим я разобрался,все работает теперь.но появилась другая проблема.в случайном выводе.я по началу думал это сделать так: получить общее количество записей,затем выбрать случайное число с помощью функции rand и использовать его в качестве id для выбора случайной записи.но так как у меня сделано удаление ненужных записей,вместе с ними уходят и их id номера.и если номер который выдаст функция и удаленный совпадут то будет ошибка наверное... что тут можно придумать?подскажите плиз