Здравствуйте , я вот начал учить php , скачал хорошую книгу , поставил Денвер , и в книге дошел до создания таблиц . А где их создавать ? Куда писать ? Вот php коды я прописываю в блокнот и даю разрешение .php , а что делать с таблицами (прошу если что тему не удалять , новенький все таки )
Банзай, сдается мне, что товарищу для начала надо с самим MySQL разобраться. Что, собственно, и фигурирует в теме. А едят его с водкой, вестимо. Иногда с коньяком. И только особо просвещенные гуру совмещают мускул со слабоалкогольными напитками - то есть с пивом. Если серьезно - купите себе в любом книжном магазине в компьютерном отделе книгу по MySQL. Лучше - попроще. Если интересует электронный вариант - то вот - http://www.mysql.ru/docs/ Кладезь информации для неленивого ума. Читать - не перечитать.
Если в требованиях cms стоит mysql, то нужен. Если ты свою cms писать вознамеришься, то это уже сам решишь, нужны тебе базы данных или нет. Некоторые в них (таблицах баз данных) хранят новости, статьи и прочий контент сайта. Чтобы удобно было добавлять контент на сайт и пишется cms.
Всем привет. Не стал новую тему заводить, т.к. мой уровень познания в области mySQL пока +0. Вот пытаюсь разобраться. Я поставил сборщик статистики интернет посещений ipcad и прикрутил к нему Deus's Statistics (http://deus.softweb.ru/page.php?id=21). Интерфейс конечно никакой, вот я и пытаюсь его доработать не имея особого представления о PHP и MySQL. Пока вроде всё получается, но вот натолкнулся на одну проблему для себя. Есть функция, которая реализует запрос к базе и выводит отчёт статистики по пользователям (это уже я сам ваял):
// Вывод всех пользователей + трафик за месяц + общий трафик function print_month_inet_summ (&$y,&$m) { $last_day = date("Y-m-d", mktime(0, 0, 0, $m+1, 0, $y)); $query = "SELECT dst,sum(bytes) FROM `download` WHERE date between '$y-$m-1' and '$last_day' GROUP BY dst ORDER BY date DESC"; $result = mysql_query ($query); echo " <h4>Загрузка из Интернет по пользователям</h4> <table align=left border=1 cellpadding=10 cellspacing=0> <TR><TD align=center><strong>Пользователь</strong></TD> <td align=center><strong>Трафик, MBytes</strong></td>";> if ($result) { while ($a = mysql_fetch_array ($result)) { $sum= ceil($a[1]/1024/1024); echo " <tr> <td>$a[0]</td> <td align=right>$sum</td> </tr> ";}} } В текущем виде отчёт выводится так: Пользователь Трафик, Mbytes 25645667653 546 45646845646 789 44564564654 784 ... Мне же нужно выводить вместо dst(набор цифр) имена пользователей uname (норамльные имена соответствующие номеру dst). Подскажите как это можно реализовать. Надеюсь на ваш опыт. Заранее благодарю.
primadmin пишет: Мне же нужно выводить вместо dst(набор цифр) имена пользователей uname (норамльные имена соответствующие номеру dst).
Нужно - выводите. Лично я вообще не въехал, что такое в Вашем случае dst, который записан в базе. А из приведенного примера скрипта это совершенно непонятно. ПыСы: К теме MySQL это вообще никакого отношения не имеет.
$query = "SELECT dst,sum(bytes) FROM `download` WHERE date between '$y-$m-1' and '$last_day' GROUP BY dst ORDER BY date DESC"; $result = mysql_query ($query); ну не к мускулу а просто к SQL, сути не меняет: если у тебя все данные в одной таблице (проверишь через "SELECT * FROM `download`") то просто заменишь dst на подходящее поле, если у тебя где то есть согласование dst с пользователем в другой таблице, то SELECT dst.download,sum(bytes).download,user.table2 и читай про "LEFT JOIN"
[mad]Mega пишет: $query = "SELECT dst,sum(bytes) FROM `download`
WHERE date between '$y-$m-1' and '$last_day'
GROUP BY dst
ORDER BY date DESC";
$result = mysql_query ($query);
ну не к мускулу а просто к SQL, сути не меняет:
если у тебя все данные в одной таблице (проверишь через "SELECT * FROM `download`") то просто заменишь dst на подходящее поле,
если у тебя где то есть согласование dst с пользователем в другой таблице, то SELECT dst.download,sum(bytes).download,user.table2 и читай про "LEFT JOIN"
Я, конечно, понимаю, что метод научного тыка - наша национальная забава. Но книги умные тоже не мешало бы почитать. Если интересует мое мнение - то запрос вполне себе корректный. Лично я бы, чисто для порядка наоборот бы написал. WHERE dst.download=checkedip.users and date between '$y-$m-1' and '$last_day'
SOLDIER пишет: Я, конечно, понимаю, что метод научного тыка - наша национальная забава. Но книги умные тоже не мешало бы почитать. Если интересует мое мнение - то запрос вполне себе корректный. Лично я бы, чисто для порядка наоборот бы написал.
WHERE dst.download=checkedip.users and date between '$y-$m-1' and '$last_day'
Вопрос решаемый мной на данный момент критичен для меня. Книжки подобные я читаю с удовольствием. В данный момент нет времени читать подробно литературу. А форумы для того и существуют, что бы обсудить и оперативно решить конкретный вопрос. Уж извиняюсь за то что напряг, но книжку обязательно прочитаю.
Блин... Так и не удалось мне реализовать задуманное. Опять прошу у спецов помощи. Теперь подробно: вот так выглядят таблицы:
таблица 'download'
таблица 'users' вот так запрос: function print_month_inet_summ (&$y,&$m) { $last_day = date("Y-m-d", mktime(0, 0, 0, $m+1, 0, $y)); $query = "SELECT dst,sum(bytes) FROM `download` WHERE date between '$y-$m-1' and '$last_day' GROUP BY dst ORDER BY date DESC"; $result = mysql_query ($query); --------------------------------------------------------------------------------------------------------- Так выглядит отчёт:
Мне надо заменить в отчёте dst из таблицы download на uname из таблицы users в соответствии dst=checkedip. Пробовал и через WHERE и через LEFT JOIN. Отчёт вообще не выводится. PS.: и было бы здорово добавить сумму общую внизу отчёта по трафику.
Изменено: Николай - 08.04.2011 04:20:15(добавлено)