PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (6): « 1 2 [3] 4 5 6 »

> Найдено сообщений: 77
igosja Отправлено: 29 Апреля, 2016 - 20:19:53 • Тема: MySQL. Вывод списка заказов покупателей • Форум: Работа с СУБД

Ответов: 11
Просмотров: 2903
На скрине из notepad++ в запросе пропущено 2 строки, скопируйте содержимое переменной $sql из последнего сообщения и вставьте к себе.
igosja Отправлено: 29 Апреля, 2016 - 19:33:43 • Тема: MySQL. Вывод списка заказов покупателей • Форум: Работа с СУБД

Ответов: 11
Просмотров: 2903
Тогда так:
PHP:
скопировать код в буфер обмена
  1. $sql = "SELECT `num_ord`,
  2.                `date_ord`,
  3.                SUM(`qwt_ord`*`price_pd`) AS `price`,
  4.                `name_stord`
  5.         FROM `shoppers`
  6.         LEFT JOIN `orders`
  7.         ON `id_sh`=`shr_ord`
  8.         LEFT JOIN `products`
  9.         ON `prod_ord`=`id_pd`
  10.         LEFT JOIN `status_orders`
  11.         ON `id_stord`=`stat_ord`
  12.         WHERE `login_sh`='$user_name'
  13.         AND `id_ord` IS NOT NULL
  14.         GROUP BY `num_ord`
  15.         ORDER BY `id_ord` ASC";
  16. $order_sql   = mysqli_query($db, $sql);
  17. $order_array = mysqli_fetch_all($order_sql, MYSQL_ASSOC);
  18.  
  19. print '<table>
  20.          <tbody class="tbody">
  21.            <tr>
  22.              <th>Номер</th>
  23.              <th>Дата</th>
  24.              <th>Сумма</th>
  25.              <th>Статус</th>
  26.            </tr>';
  27.  
  28. foreach ($order_array as $order)
  29. {
  30.     print '<tr>
  31.              <td>' . $order['num_ord'] . '</td>
  32.              <td>' . $order['date_ord'] . '</td>
  33.              <td>' . $order['price'] . ' ' . $val . '</td>
  34.              <td>' . $order['name_stord'] . '</td>
  35.            </tr>';
  36. }
  37.  
  38. print '<tr>
  39.         <th>Номер</th>
  40.         <th>Дата</th>
  41.         <th>Сумма</th>
  42.         <th>Статус</th>
  43.       </tr>
  44.     </tbody>
  45.   </table>';
igosja Отправлено: 29 Апреля, 2016 - 18:51:35 • Тема: MySQL. Вывод списка заказов покупателей • Форум: Работа с СУБД

Ответов: 11
Просмотров: 2903
Это выводится шапка 2 раза - в начале таблицы и в конце таблицы. Между ними должны быть данные. Если данных нет, значит у этого пользователя нет заказов. Попробуйте посмотреть этот код для пользователя у которого наверняка есть какие-то заказы, по вашим скринам это пользователи name10 и name11.
igosja Отправлено: 29 Апреля, 2016 - 18:17:39 • Тема: JSON • Форум: Вопросы новичков

Ответов: 6
Просмотров: 315
Тогда нужно json преобразовывать в массив, а не в объект.
PHP:
скопировать код в буфер обмена
  1. $json = '{"kniga":"Bulj bulj Karasik","avtor":"Y.Pisun","0":{"otzyv1":"horoho","otzyv2":"ploho"},"1":"idei","2":"zadumki"}';
  2. $json = json_decode($json, true);
  3.  
  4. print $json[0]['otzyv1'];//выведет horoho
igosja Отправлено: 29 Апреля, 2016 - 17:53:58 • Тема: количество данных передаваемых в $_POST • Форум: Хранение данных, их вывод и обработка

Ответов: 1
Просмотров: 729
Вставьте в .htaccess
PHP:
скопировать код в буфер обмена
  1. php_value upload_max_filesize 20M
  2. php_value post_max_size 20M

Цифру 20М поменяйте на ту, которая вам нужна.
igosja Отправлено: 29 Апреля, 2016 - 17:17:08 • Тема: MySQL. Вывод списка заказов покупателей • Форум: Работа с СУБД

Ответов: 11
Просмотров: 2903
Запросы к базе данных в цикле можно делать только в случае крайней необходимости, а здесь такой необходимости явно нет.
Я бы сделал так:
PHP:
скопировать код в буфер обмена
  1. $sql = "SELECT `num_ord`,
  2.                `date_ord`,
  3.                `qwt_ord`*`price_pd` AS `price`,
  4.                `stat_ord`
  5.         FROM `shoppers`
  6.         LEFT JOIN `orders`
  7.         ON `id_sh`=`shr_ord`
  8.         LEFT JOIN `products`
  9.         ON `prod_ord`=`id_pd`
  10.         WHERE `login_sh`='$user_name'
  11.         AND `id_ord` IS NOT NULL
  12.         ORDER BY `id_ord` ASC";
  13. $order_sql   = $mysqli->query($sql);
  14. $order_array = $order_sql->fetch_all(MYSQLI_ASSOC);
  15.  
  16. print '<table>
  17.          <tbody class="tbody">
  18.            <tr>
  19.              <th>Номер</th>
  20.              <th>Дата</th>
  21.              <th>Сумма</th>
  22.              <th>Статус</th>
  23.            </tr>';
  24.  
  25. foreach ($order_array as $order)
  26. {
  27.     print '<tr>
  28.              <td>' . $order['num_ord'] . '</td>
  29.              <td>' . $order['date_ord'] . '</td>
  30.              <td>' . $order['price'] . ' ' . $val . '</td>
  31.              <td>' . $order['stat_ord'] . '</td>
  32.            </tr>';
  33. }
  34.  
  35. print '<tr>
  36.         <th>Номер</th>
  37.         <th>Дата</th>
  38.         <th>Сумма</th>
  39.         <th>Статус</th>
  40.       </tr>
  41.     </tbody>
  42.   </table>';

И искать лучше по id покупателя, а не по логину.
igosja Отправлено: 29 Апреля, 2016 - 13:44:29 • Тема: Подскажите • Форум: Вопросы новичков

Ответов: 3
Просмотров: 181
Для сортировки по, скажем, 4 ключу массивов код может быть примерно таким:
PHP:
скопировать код в буфер обмена
  1. $NewY = array(49100, 21, 600, 12.5);
  2. $NewM = array(53200, 21, 640, 13.5);
  3. $NewC = array(50100, 21, 640, 16.1);
  4. $NevF = array(57100, 54.5, 740, 14.9);
  5.  
  6. $array = array('NewY' => $NewY, 'NewM' => $NewM, 'NewC' => $NewC, 'NevF' => $NevF);
  7.  
  8. usort($array, 'f_array_sort');
  9.  
  10. function f_array_sort($a, $b)
  11. {
  12.     return strcmp($a[3], $b[3]);
  13. }
  14.  
  15. print '<pre>';
  16. print_r($array);

Но, во-первых, это задача не для новичка, во-вторых, это довольно редкая операция, я применял такие вещи только в 2 проектах из где-то 30 сделанных.
igosja Отправлено: 29 Апреля, 2016 - 13:19:21 • Тема: JSON • Форум: Вопросы новичков

Ответов: 6
Просмотров: 315
Проблема в том, что свойства объекта не могут иметь числовые названия.
Сделайте json в виде
{"kniga":"Bulj bulj Karasik","avtor":"Y.Pisun","i0":{"otzyv1":"horoho","otzyv2":"ploho"},"i1":"idei","i2":"zadumki"}
PHP:
скопировать код в буфер обмена
  1. echo $json->i0->otzyv1; //Выведет horoho
  2. echo $json->i1; //Выведет idei

Вместо $json вставьте свою переменную с данными из json
igosja Отправлено: 17 Октября, 2015 - 15:00:05 • Тема: Прошу оценить набросок сайта • Форум: Прочее

Ответов: 1
Просмотров: 31
По сути дела, в программировании я полный профан, поэтому пишу на профильный форум. Прошу оценить мои труды - igosja.bget.ru.
Дабы не захламлять тему кучей текста, в пару кликов мышки сделал блог с более детальным описание ситуации - igosja.blogspot.com
igosja Отправлено: 07 Марта, 2015 - 16:00:31 • Тема: двойное условие • Форум: Вопросы новичков

Ответов: 3
Просмотров: 234
Проблема в $n++.
У вас срабатывают первые два условия через один $n, поэтому if(isset($rata[$n]) and (isset($gata[$n]))) постоянно дает false.
igosja Отправлено: 07 Марта, 2015 - 15:49:01 • Тема: Проблема с формой отправки • Форум: Напишите за меня, пожалуйста

Ответов: 2
Просмотров: 23
Для того, чтобы убрать проблему с кодировкой, нужно ее задать прямо при отправке:
PHP:
скопировать код в буфер обмена
  1. $result = mail(
  2. info@earlymiddleages.ru,
  3. '=?UTF-8?B?' . base64_encode('Обращение с сайта Early Middle Ages') . '?=',
  4. "Текст обращения: \nИмя: $_POST[name] \nMail: $_POST[email] \nИгровая платформа: \nАндройд $_POST[android] \niPad $_POST[ipad] \niPhone $_POST[iphone] \nPC $_POST[pc] \nДругое $_POST[another] \nСообщение отправителя: $_POST[text] \nОценка сайта: $_POST[rating]",
  5. 'Content-type: text/html; charset=utf-8'
  6. );
igosja Отправлено: 07 Марта, 2015 - 15:41:02 • Тема: Потребление памяти против читабельности • Форум: Вопросы новичков

Ответов: 5
Просмотров: 283
Мелкий пишет:
С.Макконнелл со своим совершенным кодом неплохо вправляет мозг, почитайте.
Спасибо, скачал книгу. Пробежался глазами - действительно вправляет мозг. Буду читать ее основательно.
igosja Отправлено: 07 Марта, 2015 - 15:38:41 • Тема: Выборка данных из двух таблиц • Форум: SQL и Архитектура БД

Ответов: 2
Просмотров: 20
LIME пишет:
первый вариант приведется к второму оптимизатором...

Спасибо, не знал.
igosja Отправлено: 07 Марта, 2015 - 10:24:51 • Тема: Выборка данных из двух таблиц • Форум: SQL и Архитектура БД

Ответов: 2
Просмотров: 20
Есть две таблицы: скажем, города и страны.
Какой вариант предпочтительней для объединения этих таблиц?
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT `city_name`, `country_name`
  2. FROM `city`, `country`
  3. WHERE `city_country_id`=`country_id`

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT `city_name`, `counrty_name`
  2. FROM `city`
  3. LEFT JOIN `country`
  4. ON `city_country_id`=`country_id`

Пример тестовый, реально таблиц больше и они сложнее. Объединяется по 5-7 таблиц и все слияния идут по "индексам".
igosja Отправлено: 05 Марта, 2015 - 10:26:26 • Тема: Потребление памяти против читабельности • Форум: Вопросы новичков

Ответов: 5
Просмотров: 283
RickMan пишет:
Что мешает первый вариант разбить на пару строк и добавить пробелы (особенно после запятых)? Это добавит ему читабельности, но создавать 100500 переменных не придется...

Я специально вдался в крайности, чтобы вопрос был наглядней. Я так понимаю, что лучше держаться "золотой середины"?

Страниц (6): « 1 2 [3] 4 5 6 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB