|
На страницу « 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 » |
|
|
|
|
Возраст: 38 C нами с 25.01.2005 Репутация: 133
|
|
Язык программирования, разработанный специально для динамической генерации веб-страниц. Намного превосходит возможности SSI. Имеет функции работы с базами данных (MySQL), создания графических файлов Jpeg и PNG (библиотека GD), обработки XML-документов и многие другие.
|
|
|
|
|
|
|
|
Возраст: 45 C нами с 27.03.2005 Репутация: 205.2
|
|
Павлин, когда элемент ассоциативного массива встречается внутри текстовой строки - ключ пишется без кавычек, такой вот причудливый syntax.
Т.е. вместо echo "<td>$row['ids']</td>\n"; | писать так: echo "<td>$row[ids]</td>\n"; | И в последующих строках так же.
|
_____________________________ Уточняйте значение слов, и вы избавите человечество от половины своих заблуждений. Рене Декарт
|
|
|
|
|
|
|
Возраст: 45 C нами с 27.03.2005 Репутация: 205.2
|
|
Павлин, прочитал описания полей. Уже лучше, чем ничего, но, по-моему, есть в них какая-то путаница.
Во-первых, осталось неясным содержимое некоторых таблиц (не отдельных полей, а записей в целом). Каждая запись должна по идее соответствовать какому-то объекту (сущности). Каким объектам соответствуют записи таблиц `ceti` и `distrib`, и в чём между ними разница (список полей идентичен)? Судя по наличию полей `idtov` и `kollich`, можно предположить, что каждая запись хранит сведения о продаже (передаче?) некоторого количества некоторого товара? Если да, то кем и кому (пользователем магазину? наоборот?..)?
С пользователями более-менее понятно (исключая загадочный "период"), идём дальше.
С товарами тоже было бы понятно, если бы не ссылка на некого "пользователя". Если каждая запись соответствует абстрактному наименованию товара (например, "Snickers"), то оно не может быть связано с конкретным пользователем; если же каждая строчка — партия товара, находящаяся у конкретного пользователя, то среди полей должен быть его (пользователя) идентификатор.
Загадочная таблица `periods`, судя по списку полей, сопоставляет дню (например, "23 февраля 2005") некое наименование периода. Что бы это значило?
|
_____________________________ Уточняйте значение слов, и вы избавите человечество от половины своих заблуждений. Рене Декарт
|
|
|
|
|
|
|
Возраст: 38 C нами с 08.05.2009 Репутация: 5.6
|
|
|
Последний раз редактировалось: Павлин (02 Июл 2009, 13:32), всего редактировалось 1 раз
_____________________________ Прошу не тыкать в мануал его и так предостаточно!!!
|
|
|
|
|
|
|
Возраст: 45 C нами с 27.03.2005 Репутация: 205.2
|
|
Павлин, давайте по порядку. Если структура БД будет адекватно отражать описываемые процессы — отчёты можно будет делать, какие угодно. Итак, какова схема описываемого процесса? Например, какой путь проделывают товары? Куда попадают, кому передаются, куда идут дальше и т.д.?
Что касается периодов — если они всегда по 28 дней — можно вообще не делать с ними таблиц, а генерировать диапазоны в PHP. Впрочем, если хочется иметь таблицу — не стоит хранить в ней данные с такой избыточностью. Достаточно трёх полей: `period_id`, `start` и `end` (первый и последний день периода).
Добавлено спустя 4 минуты 32 секунды:
Да, и про разницу между двумя первыми таблицами не забудьте.
|
_____________________________ Уточняйте значение слов, и вы избавите человечество от половины своих заблуждений. Рене Декарт
|
|
|
|
|
|
|
Возраст: 38 C нами с 08.05.2009 Репутация: 5.6
|
|
Олег, Я только за!
Цитата: |
Например, какой путь проделывают товары? Куда попадают, кому передаются, куда идут дальше и т.д.?
|
1.Наша компания->Дистрибюторы (Пользователи)->Конечный магазин.
2.Мы даём товар->Дистрибюторам они находят магазины и продают-> магазинам.
3.Дистрибюторы для отчётности раньше лепили XLS файлики и присылали по почте, а именно отчет содержал наименование тов. магазины, в какой период продано, количество и т.д.
4.К концу периода по предоставлению этого отчета им начисляются бонусы в зависимости от продаж и они получали свои кровные.
5.Магазины в отчете по сути ни какой роли не несут. Пример: Я (Пользователь)вася, продал в первом периоде (Магазину)Пете 25 коробок мороженного не имея гроша за душой и прошу расчитать мне зарплату из расчета проделанной работы.
Наша компания(Работодатель) отпускает товар Васе не берёт за товар денег у Васи, Вася товар реалезует, делает отчет, товар отвозят агенты и отдают счета на оплату (Магазину) Но Вася же не будет ждать когда Петя расплатится и он вынужден делать отчет чтоб вовремя получить своё бабло.
Цитата: |
Что касается периодов — если они всегда по 28 дней — можно вообще не делать с ними таблиц, а генерировать диапазоны в PHP. Впрочем, если хочется иметь таблицу — не стоит хранить в ней данные с такой избыточностью. Достаточно трёх полей: `period_id`, `start` и `end` (первый и последний день периода).
|
Ну тут надо подумать
В году 365 дней, а 13 периодов* на 28 дней это равно шас калькулятор достану это равно 364 дня В итоге мы получаем по вашему уже не 13 периодов а 13 и один день, а комп поймет что уже 14 период начался, а тупой вася не глянув какой период отобразился начнет забивать отчет и он упадет в 14 период итог Вася не доволен почему у него за один день не досчитали к его зарплате пару тыщ
Ну а если я тупо назначу каждому дню свой период то можно исходя из текущей даты сверив с таблицей и вывести точный период.
|
_____________________________ Прошу не тыкать в мануал его и так предостаточно!!!
|
|
|
|
|
|
|
Возраст: 45 C нами с 27.03.2005 Репутация: 205.2
|
|
Павлин, хорошо, движемся в нужном направлении. Однако Вы таки забыли ответить на вопрос: в чём разница между таблицами `ceti` и `distrib`?
|
_____________________________ Уточняйте значение слов, и вы избавите человечество от половины своих заблуждений. Рене Декарт
|
|
|
|
|
|
|
Возраст: 38 C нами с 08.05.2009 Репутация: 5.6
|
|
А как понять когда MYSQL а когда PHP ругается? Я убрал ковычки с кода теперь следущая ошибка
Цитата: |
Fatal error: Call to undefined function mysql_fetchrow() in Z:\home\test1.ru\www\index3.php on line 16
|
$userz="3";
$sql2 = "SELECT users*, d.idk, d.idtov AS idtov_d,
d. klientd, d.kollich2, d.ids AS d.ids_d, d.idtov AS idtov_d,
c.idc, c.idtov AS idtov_c, c.clientc, c.kollich, c.ids AS ids_c
FROM `users` m,
LEFT JOIN distrib AS d ON u.ids = d.ids
LEFT JOIN ceti AS c ON u.ids = c.ids
WHERE u.period='" . $userz . "'
GROUP BY u.ids";
@$result = mysql_query($sql2);
echo "<table>";
while($row = mysql_fetchrow($sql2 , $result))
{
echo "<tr>";
echo "<td>$row[ids]</td>\n";
echo "<td>$row[Names]</td>\n";
echo "<td>$row[LogName]</td>\n";
echo "<td>$row[yearsid]</td>\n";
echo "<td>$row[period]</td>\n";
echo "</tr>";
}
echo "</table>";
echo "<table>";
while($row = mysql_fetch_row($sql2 , $result))
{
echo "<tr>";
echo "<td>$row[idk]</td>\n";
echo "<td>$row[idtov_d]</td>\n";
echo "<td>$row[klientd]</td>\n";
echo "<td>$row[kollich2]</td>\n";
echo "<td>$row[ids]</td>\n";
echo "</tr>";
}
echo "</table>";
echo "<table>";
while($row = mysql_fetch_row($sql2 , $result))
{
echo "<tr>";
echo "<td>$row[idc]</td>\n";
echo "<td>$row[idtov]</td>\n";
echo "<td>$row[kollich]</td>\n";
echo "<td>$row[ids]</td>\n";
echo "</tr>";
}
echo "</table>";
// Запрос позволит сделать также и Сводную табл. по ids
// Например
echo "<table>";
while($row = mysql_fetch_row($sql2 , $result))
{
echo "<tr>";
echo "<td>$row[ids]</td>\n";
echo "<td>$row[Names]</td>\n";
echo "<td>$row[LogName]</td>\n";
echo "<td>$row[yearsid]</td>\n";
echo "<td>$row[period]</td>\n";
echo "<td>$row[idk]</td>\n";
echo "<td>$row[idtov]</td>\n";
echo "<td>$row[klientd]</td>\n";
echo "<td>$row[kollich2]</td>\n";
echo "<td>$row[idc]</td>\n";
echo "<td>$row[idtov]</td>\n";
echo "<td>$row[kollich]</td>\n";
echo "</tr>";
}
echo "</table>";
|
mysql_close($db);
?>
|
_____________________________ Прошу не тыкать в мануал его и так предостаточно!!!
|
|
|
|
|
|
|
Возраст: 45 C нами с 27.03.2005 Репутация: 205.2
|
|
Павлин писал(а): |
А как понять когда MYSQL а когда PHP ругается?
|
MySQL сам по себе ругаться не умеет (некуда ему ругаться кроме логов собственных). Для того, чтобы услышать его мольбы, нужно самому спросить у функции mysql_error(), в чём проблема. Также PHP может по доброте душевной выводить некоторые сообщения о неудачах в функциях, работающих с MySQL, например, так:
Цитата: |
PHP Warning: mysql_connect(): Access denied for user 'root'@'localhost' (using password: NO) in C:\temp\test.php on line 1
|
Павлин писал(а): |
Я убрал ковычки с кода теперь следущая ошибка
Цитата: |
Fatal error: Call to undefined function mysql_fetchrow() in Z:\home\test1.ru\www\index3.php on line 16
|
|
Очепятка (пропущен подчерк): mysql_fetch_row().
Добавлено спустя 25 секунд:
И ответьте на вопрос выше, пожалуйста.
|
_____________________________ Уточняйте значение слов, и вы избавите человечество от половины своих заблуждений. Рене Декарт
|
|
|
|
|
|
|
Возраст: 38 C нами с 08.05.2009 Репутация: 5.6
|
|
|
Последний раз редактировалось: Павлин (02 Июл 2009, 13:36), всего редактировалось 1 раз
_____________________________ Прошу не тыкать в мануал его и так предостаточно!!!
|
|
|
|
|
|
|
Возраст: 45 C нами с 27.03.2005 Репутация: 205.2
|
|
Павлин, не флудите, по чём зря. http://ru.php.net/manual/ru/function.mysql-fetch-row.php Текст запроса ей совсем не нужен, только результат ($result).
Вы вопрос про таблицы (выше) игнорируете из каких-нибудь соображений?
|
_____________________________ Уточняйте значение слов, и вы избавите человечество от половины своих заблуждений. Рене Декарт
|
|
|
|
|
|
|
Возраст: 39 C нами с 21.02.2005 Репутация: 132.4
|
|
Олег, имхо вы зря тратите свое время
Moderation by Рыся @ 18 Июн 2009, 12:19: |
Предупреждение: флуд. |
|
|
|
|
|
|
|
|
Возраст: 38 C нами с 08.05.2009 Репутация: 5.6
|
|
Олег, Я его просто не заметил
Цитата: |
чём разница между таблицами `ceti` и `distrib`?
|
Я вообще думаю их обединить в одну и сбавиться от лишних полей, это как я их создал изначально так и остались. Они одинаковы только в них разница в том что есть прямые продажи и сетевые вот и фсё
Добавлено спустя 5 минут 42 секунды:
Suber, А вот и не флуд это а просьба о помощи кто то может разбираться а кому то надо и помочь!
Добавлено спустя 4 минуты 51 секунду:
Suber, Для того чтоб объяснить надо много терпения у Олега оно есть и я за это уважаю, а у вас походу его нет и что из за этого надо влезть в разговор и объявить о флуде, хотя можно было проигнорировать, а от оповещения по этой теме на время отказаться!
|
_____________________________ Прошу не тыкать в мануал его и так предостаточно!!!
|
|
|
|
|
|
|
Возраст: 39 C нами с 21.02.2005 Репутация: 132.4
|
|
Павлин, а че не объединить их в 1 таблицу добавив столбец "ТипПродаж" ?
про нормальные формы слышали? советую почитать книжку какую-нить по БД.
|
|
|
|
|
|
|
|
Возраст: 38 C нами с 08.05.2009 Репутация: 5.6
|
|
|
Последний раз редактировалось: Павлин (02 Июл 2009, 13:23), всего редактировалось 1 раз
_____________________________ Прошу не тыкать в мануал его и так предостаточно!!!
|
|
|
|
|
|
|
Возраст: 45 C нами с 27.03.2005 Репутация: 205.2
|
|
Павлин писал(а): |
Я вообще думаю их обединить в одну
|
Вот-вот, я как раз к этому и подводил.
Тогда я бы предложил так и назвать таблицу: `Sales` (продажи); и поля тоже как-то попонятней для удобства обозвать, скажем, так:
`S_ID` (Sale ID) — уник. ид-тор продажи (порядковый номер);
`S_UID` (User ID) — ид-тор продавшего пользователя (из таблицы пользователей);
`S_AID` (Article ID) — ид-тор проданного товара (из таблицы товаров);
`S_Amount` — количество проданного товара (число);
`S_Client` — название (и т.п.) купившего магазина (можно сделать таблицу с магазами, тогда здесь тоже будет только ид-тор);
`S_Date` — дата продажи (она ведь важна? или номер периода);
`S_Type` — тип продажи: (прямая/сетевая, что бы это ни значило))).
Далее, таблица `Users` (пользователи):
`U_ID` (User ID) — уник. ид-р пользователя;
`U_Name` — имя пользователя (ФИО);
`U_Login` — логин пользователя;
`U_Year` — год рождения (возраст апдейтить устанете!).
Таблица `Articles` (товары):
`A_ID` (Article ID) — уник. ид-р товара;
`A_Name` — наименование товара;
`A_Package` — вид упаковки;
`A_Volume` — объём (если Вы имели в виду тот объём, о котором я подумал... ну или здесь и далее другие свойства товара, но никак не остатки на складах!).
Ну и таблица `Periods` (периоды):
`P_ID` (Period ID) — уник. ид-р периода;
`P_Start` — дата начала периода;
`P_End` — дата окончания периода.
Похоже на правду? Какие ещё данные нужно хранить? Если, например, нужно знать количество каждого товара на складе у каждого пользователя — лучше делать это в отдельной таблице с полями UID, AID и Amount. (Если известно, сколько товара было передано пользователю, и сколько он продал — количество товара на складе можно вычислять автоматически, но с ростом объёма базы эта операция может стать довольно долгой, т.ч. отдельная таблица, вероятно, не помешает).
Ну и, если с тем, что выше, всё в порядке — можно, наверно, вернуться к основному вопросу. Что там нужно было вывести в таблицу? Сформулируйте, пожалуйста, аккуратно, а-то "period=$userz" — не понятно.
Ситуация с начальством знакома "до боли"... Очень любят у нас взять в штат такого замечательного "админа", чтобы он и сеть поднял, и сервером рулил, и секретаршам с почтой помогал, и компы чинил, и провода тянул, и мини-АТС ещё желательно настраивал... Ну да в Вашем случае это на пользу: навыки пригодятся по-любому.
|
_____________________________ Уточняйте значение слов, и вы избавите человечество от половины своих заблуждений. Рене Декарт
|
|
|
|
|
|
|
На страницу « 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 »
|
|