<MyRusakov.ru />

Финансовая грамотность от А до Я

Финансовая грамотность от А до Я

Данный курс в кратчайшие сроки обучит Вас финансовой грамотности. Эти знания позволят Вам получить, как минимум, серьёзную финансовую стабильность, а, как максимум, финансовую независимость.

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

Помимо самого курса Вас ждёт ещё бесплатный ценный Бонус: «Ранний выход на пенсию». В рамках этого Бонуса Вы узнаете, какой должен быть капитал конкретно в Вашем случае, варианты его получения, а также какие есть стратегии вывода капитала на пенсии и где их можно протестировать.

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

Форум сайта MyRusakov.ru

Вывод количества заметок в категории
14.07.2012 08:44:04 Вывод количества заметок в категории Сообщение #1
ac-40-6.0

ac-40-6.0

Эксперт

Эксперт

Дата регистрации:
29.06.2012 02:02:06

Сообщений: 88

Создал таблицы, написал код.
Итог: рановато Вам такое писать.
Причина такого итога: уже третий раз пишу рабочий код.

Этот полностью проверен на все возможные ошибки с перебором запросов до сотни.

[listn]<?php
error_reporting(E_ALL);
$bd = mysql_connect('localhost', 'root', '');//эти параметры заданы по умолчанию, их можно не менять
$basa = 'mybase';//имя базы данных, а не таблицы, вводить по буквам под диктовку
mysql_select_db($basa, $bd);
echo '<p><b>Меню</b></p>';
for($cat=1; $cat<=4; $cat++){
$row = mysql_query("SELECT `id` FROM `data` WHERE `cat`='$cat'", $bd);//выбираемые значения вводить также по символам сверяясь с PhpMyAdmin
$con = mysql_num_rows($row);//эта переменная отвечает за количество категорий
$sel = mysql_query("SELECT `value` FROM `categories` WHERE `cat`='$cat'",$bd);//выбираем значения по ЧИСЛОВОМУ индексу
$c = mysql_fetch_assoc($sel);//эта в ответе за значение категории
echo $c['value'], ' - ', $con, '<br/>';
}
?>[/listn]


Как сказал наш сенсей:
Если не поняли, значит, изучайте SQL, похоже, что Вы основ ещё не знаете даже. Здесь помогают учиться, а не пишут готовые функции и скрипты.

Учитесь.
Профиль
15.07.2012 13:13:43 Вывод количества заметок в категории Сообщение #2
Default

Default

Эксперт

Эксперт

Дата регистрации:
12.06.2012 15:20:27

Сообщений: 102

Начнем с таблиц, чтобы было все понятно: 1 - я таблица categories, хранит в себе id - уникальный индефикатор и title - название категории

id_||_title_____|
_1_||_Авто______|
_2_||_Мото______|
_3_||Марки авто_|

Вторая таблица data, хранит в себе id - уникальный индефикатор, id_title - хранит в себе id заметки(по умолчанию в этом поле выставите 0, чтобы если для данной ктегори не было заметок, то выводилось бы 0 а не пустота)и comm - собственно сама заметка

id_||id_title||.comm................|
.1.||..2.....||Мото_дня.............|
.2.||..2.....||Красный_байк.........|
.3.||..1.....||Авто_года............|
.4.||..3.....||toyota...............|
.5.||..2.....||Мото на лето.........|
.6.||..3.....||Волга................|
.7.||..3.....||BMW_.................|
.8.||..1.....||км\ч у УАЗа..........|
.9.||..1.....||Проходимость у камаза|
10.||..2.....||.Цены на мото........|

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

<?php
// устанавливаем соединение в БД
include_once "conf.php";
// запрос на выборку из таблици categories
$sql = mysql_query ("Select id, title, num_comm From categories";
// проверка
if(!$sql)exit(mysql_error());
// добавляем выбранное в ассосционный массив и выводим пока есть записи в БД
while ($result = mysql_fetch_assoc($sql)){
echo "<p><a href = 'cat.php?id=".$result['id']."'>";
echo $result['title'];
echo "</a>";
echo " - ";
// подключаемся к таблицне data, где лежат заметки к категориям где номер заметки равен текушей id категории
$sql_2 = mysql_query("Select count(id) From data WHERE id_title = '".$result['id']."'";
// проверяем подключение, если нет, то выводим ошибку
if(!$sql_2)exit(mysql_error());
// получаем число записей
$total = mysql_result($sql_2,0);
// выводим число
echo $total['id'];
echo "</p>";
// увеличиваем счетчик на 1 после каждого раза
$i++;
}
?>

не уверен, что хороший вариант в цикле подключаться к БД и делать какую-то выборку, но все же код работает, потому что полностью его у себя проверил. Код написан грубо, без проверок, так что хотя бы по минимум при выводе из таблице записи пропустите через функцию strip_tags() или htmlspecialchars(), проверок много не бывает.
P.S. можно сделать по другому, например, в таблице categories добавить еще одно поле в которое будет изменяться на +1 к текушей записи при добавлении новой заметки и выберать уже все с одной таблице, но нужно менять код в админской панели, но не заостряйте на этом внимание, вам этого будет достаточно, а когда уже поймете, то сможете "вертеть" код так, как вам будет удобно.
Профиль
15.07.2012 14:01:15 Вывод количества заметок в категории Сообщение #3
Default

Default

Эксперт

Эксперт

Дата регистрации:
12.06.2012 15:20:27

Сообщений: 102

Михаил, выше в моем коде, а именно в цикле идет каждый раз запрос в таблицу, ладно записей всего 3-ри, а если их 100, то не упадет ли скорость вывода?
Профиль
15.07.2012 14:04:18 Вывод количества заметок в категории Сообщение #4
Default

Default

Эксперт

Эксперт

Дата регистрации:
12.06.2012 15:20:27

Сообщений: 102

ac-40-6.0, а если у Вас записей в таблице с категориями не 4, а 10, то Вы каждый раз будете менять число в цикле?
Профиль
15.07.2012 17:42:44 Вывод количества заметок в категории Сообщение #5
ac-40-6.0

ac-40-6.0

Эксперт

Эксперт

Дата регистрации:
29.06.2012 02:02:06

Сообщений: 88

Нафига?
Перед запуском цикла прописываем:

$number = mysql_query("SELECT max(`cat`) FROM `categories`", $db);
$numb = mysql_fetch_assoc($number);
$num = $numb['max(`cat`)'];


В условии цикла даём $cat <= $num.
Всё!
Можно через while, но с ним я ещё путём не работал.
P.S. ко мне на Вы не надо. Я не страдаю ни манией величия, ни раздвоением личности на личности страдающие раздвоением личности вкупе с шизофренией.
Профиль
16.07.2012 01:08:56 Вывод количества заметок в категории Сообщение #6
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Да, при большом количестве записей быстродействие может упасть.
Профиль
16.07.2012 13:20:53 Вывод количества заметок в категории Сообщение #7
Default

Default

Эксперт

Эксперт

Дата регистрации:
12.06.2012 15:20:27

Сообщений: 102

но а для вот таких малых задач код себя оправдывает?
Профиль
16.07.2012 15:42:08 Вывод количества заметок в категории Сообщение #8
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Конечно, для подобных задач можно не беспокоится о таких вещах.
Профиль