PHP.SU

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

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

> Найдено сообщений: 103
zapatronen Отправлено: 04 Августа, 2017 - 17:22:45 • Тема: С этим товаром так же покупают • Форум: Вопросы новичков

Ответов: 4
Просмотров: 368
Помоигите постигнуть логику выбора товара для корзины покупок, который будет советовать товар, который часто встречается с покупаемым.

В базу заказы я записываю закодированым массивом $basket, который содержит в себе as $tovar =>$kolichestvo

Например в корзине человек покупает стиральную машину, со стиралкой некоторые покупают еще порошек.
Мне нужно скриптом пройтись по всем заказам и вывести товар циклом товар которые встречается со стиралкой?
можно ли это сделать запросом в базу данных?
zapatronen Отправлено: 04 Августа, 2017 - 16:39:38 • Тема: Защита авторизации. • Форум: Вопросы новичков

Ответов: 8
Просмотров: 552
1 минута = 60 сек, ищи в коде 60 сек пробуй менять на больше
(Добавление)
или меньше
zapatronen Отправлено: 28 Июля, 2017 - 18:46:28 • Тема: Как массово стандартизировать записи в mysql • Форум: Вопросы новичков

Ответов: 31
Просмотров: 1253
Сразу не прислушивался к Строителю привязывать к айдишнику от этого и страдал, конечно переписать код понятное дело если знаешь как, но, когда-нибудь я точно изучу весь пхп если он не станет мертвым языком, но пока получилось все поменять вот так:


CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. while($row=mysqli_fetch_array($result)){
  3.     $user_id=$row['user_id'];
  4.     $string=$row['telefon'];
  5.    $pattern = [
  6.         '~(?:[^\d\s]+|(?<=\d)\s(?=\d))~',
  7.        '~(?<=\b)(?=\d)~',
  8.        '~\b80(\d+\b)~'
  9.    ];
  10.    $replace = ['', '+', '37$1'];
  11.    $masiv[$user_id] = preg_replace($pattern, $replace, $string);
  12.  }
  13.  foreach($masiv as $id => $telefon){
  14.  
  15.     $query1 = "UPDATE user SET telefon = '$telefon' WHERE user_id='$id'";
  16.     $data = mysqli_query($dbc, $query1) or die('asas');
  17.    }



Спасибо ребята, пойду разбираться с патернами Ниндзя
zapatronen Отправлено: 28 Июля, 2017 - 12:20:52 • Тема: Как массово стандартизировать записи в mysql • Форум: Вопросы новичков

Ответов: 31
Просмотров: 1253
MouseZver пишет:
а теперь пишем

и фиксим код


да, добавил. но не могу запустить страницу, что-то пошло не так и теперь сайт бесконечно грузится с моего компа, с других все нормально открывается
получаю ошибку
Сайт sub.easycraft.by не отправил данных.
ERR_EMPTY_RESPONSE

горе программист я одно делаю другое ломаю
(Добавление)
zapatronen пишет:
MouseZver пишет:
а теперь пишем

и фиксим код


да, добавил. но не могу запустить страницу, что-то пошло не так и теперь сайт бесконечно грузится с моего компа, с других все нормально открывается
получаю ошибку
Сайт sub.easycraft.by не отправил данных.
ERR_EMPTY_RESPONSE

горе программист я одно делаю другое ломаю



алл репортинг ничего не показывает
zapatronen Отправлено: 27 Июля, 2017 - 23:49:14 • Тема: Как массово стандартизировать записи в mysql • Форум: Вопросы новичков

Ответов: 31
Просмотров: 1253
Вообщем все меняется все обновляется и по своим полям без удаления коротких номеров, они пускай остаются так как не мешают. Если ассоциировать свой каждый номер к айдишнику - это как я понимаю указывать в sql запросе WHERE user_id=$id

Ничерта не понимаю как mysqli_query из цикла достать чтобы вызывать один раз.
Все перезаписывается по своим местам без проблем, единственное о чем я бы хотел покляньчить - это подкоректировать регулярное выражение, чтобы формат телефона 8029 8033 8044 8025
заменялся на +37529, +37533, +37544,+37525


Сейчас тоже меняет, но остается ноль, например, 80447616539 меняется на +370447616539
я как открыл почитать про синтаксис регулярок, так и понял что это отдельный том программирования

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.  while($row=mysqli_fetch_array($result)){
  3.     $user_id=$row['user_id'];
  4.     $string=$row['telefon'];
  5.     $pattern = [
  6.     '~(?:[^\d\s]+|(?<=\d)\s(?=\d))~',
  7.    '~(?<=\b)(?=\d)~',
  8.    '~\b[8](\d+\b)~'
  9. ];
  10. $replace = ['', '+', '37$1'];
  11. $string = preg_replace($pattern, $replace, $string);
  12. $masiv[]=$string;
  13.   }
  14.   foreach($masiv as $tel){
  15.       echo $tel.'<br>';
  16.        $query="UPDATE user SET telefon='$tel'";
  17.        $data=mysqli_query($dbc, $query) or die('asas');
  18.    }
zapatronen Отправлено: 27 Июля, 2017 - 20:39:28 • Тема: Как массово стандартизировать записи в mysql • Форум: Вопросы новичков

Ответов: 31
Просмотров: 1253
Строитель пишет:
zapatronen пишет:
готов нажать на интер
Не торопитесь (писал только что много текста, и всё сбросилось... сейчас напишу ещё раз по-короче)
(Добавление)
У вас все номера сейчас лежат в массиве
Спойлер (Отобразить)
Верно? После удаления из массива коротких номеров (2830215) Количество записей в массиве станет меньше количества записей в базе - как вы будете соотносить данные из массива с данными в базе? Вероятно, никак. Вам надо из базы получать ещё и поля id, чтобы результирующий массив имел ассоциативную связь с конкретным номером.

После изменения массива (удаление лишних символов и коротких номеров) вам надо в цикле собрать строку sql-запроса, и потом передать эту строку в функцию mysqli_query(). Т.е., функция mysqli_query() будет вызвана один раз.


примерно понятно, щас попробую это все на практике применить
(Добавление)
Строитель пишет:
zapatronen пишет:
готов нажать на интер
Не торопитесь (писал только что много текста, и всё сбросилось... сейчас напишу ещё раз по-короче)
(Добавление)
У вас все номера сейчас лежат в массиве
Спойлер (Отобразить)
Верно? После удаления из массива коротких номеров (2830215) Количество записей в массиве станет меньше количества записей в базе - как вы будете соотносить данные из массива с данными в базе? Вероятно, никак. Вам надо из базы получать ещё и поля id, чтобы результирующий массив имел ассоциативную связь с конкретным номером.

После изменения массива (удаление лишних символов и коротких номеров) вам надо в цикле собрать строку sql-запроса, и потом передать эту строку в функцию mysqli_query(). Т.е., функция mysqli_query() будет вызвана один раз.



Все верно, только короткие останутся, но суть я уловил, что все сместиться и я так поменяю, чт омама не горюй, все данные сместяться и будет беда
Приступлю тогда к изучениям, отпишу как буду готов
zapatronen Отправлено: 27 Июля, 2017 - 20:12:47 • Тема: Как массово стандартизировать записи в mysql • Форум: Вопросы новичков

Ответов: 31
Просмотров: 1253
MouseZver пишет:
это что за говнокод ?
насиловать Мускуль в цикле обоими
zapatronen пишет:
3000+ руками

(Добавление)
zapatronen пишет:
$masiv[]=$string;

что за бред Киркорова ? Нотис в лицо
(Добавление)
работа с циклом не логический абуз с выполнением в 1 циклический обход, Не оправданное говнокодство


в плане не заработает?
zapatronen Отправлено: 27 Июля, 2017 - 18:36:32 • Тема: Как массово стандартизировать записи в mysql • Форум: Вопросы новичков

Ответов: 31
Просмотров: 1253
Строитель пишет:
zapatronen, вручную переписывать не нужно. Я вчера написал пример для строки со списком телефонов, но у вас этот список хранится в массиве же? Если да, то надо обработать этот массив регуляркой, и после этого перезаписать номера телефонов в бд.


да руками глупо и долго, сейчас базу востановлю буду опять пробовать, как получится я выложу сюда код
(Добавление)
Строитель пишет:
zapatronen, вручную переписывать не нужно. Я вчера написал пример для строки со списком телефонов, но у вас этот список хранится в массиве же? Если да, то надо обработать этот массив регуляркой, и после этого перезаписать номера телефонов в бд.

и да в массиве, только что-то пошло не так
(Добавление)
Строитель пишет:
zapatronen, вручную переписывать не нужно. Я вчера написал пример для строки со списком телефонов, но у вас этот список хранится в массиве же? Если да, то надо обработать этот массив регуляркой, и после этого перезаписать номера телефонов в бд.


Пожалуйста проинспектируйт меня, готов нажать на интер)))


PHP:
скопировать код в буфер обмена
  1.  while($row=mysqli_fetch_array($result)){
  2.    
  3.     $string=$row['telefon'];
  4.     $pattern = [
  5.     '~(?:[^\d\s]+|(?<=\d)\s(?=\d))~',
  6.     '~(?<=\b)(?=\d)~',
  7.     '~\b[8](\d+\b)~'
  8. ];
  9. $replace = ['', '+', '37$1'];
  10. $string = preg_replace($pattern, $replace, $string);
  11. $masiv[]=$string;
  12.    }
  13.   foreach ($masiv as &$value){
  14.     $query="UPDATE orders SET telefon='$value'";
  15.     $data=mysqli_query($dbc, $query) or die('error');
  16.   }
  17. ?>


по-моему вроде все должно заработать
zapatronen Отправлено: 27 Июля, 2017 - 18:04:41 • Тема: Как массово стандартизировать записи в mysql • Форум: Вопросы новичков

Ответов: 31
Просмотров: 1253
Строитель пишет:
zapatronen, в этом примере из строки удаляются плюсы, пробелы между цифрами, скобки и тире. А так же происходит замена цифр тех номеров, которые начинаются с цифры "8" - замена на +37. Остался только один вопрос - к какому формату приводить короткие номера "2830215"? Или их просто удалять?
Спойлер (Отобразить)

С короткими я просто удаляю их, нужен единый формат номера, чтобы связать заказы вместе одного клиента по номеру, короткие номера я записывал для людей которые приезжали забирали самовывозом товар


Попробовал добавить код
$query="UPDATE orders SET telefon='$string' ";
$data=mysqli_query($dbc, $query) or die('error');

Все телефоны заменились на один и тот же из первой строки, начал делать востановление таблицы, сломал хостинг, терь ошибка 500 выскакивает уже подумываю руками все переделать))))
zapatronen Отправлено: 26 Июля, 2017 - 21:35:08 • Тема: Как массово стандартизировать записи в mysql • Форум: Вопросы новичков

Ответов: 31
Просмотров: 1253
Строитель пишет:
zapatronen пишет:
mysql, php либо exel?
Скорее, regex. Написать пример?


если не затруднит, то буду признателен
zapatronen Отправлено: 26 Июля, 2017 - 21:20:49 • Тема: Как массово стандартизировать записи в mysql • Форум: Вопросы новичков

Ответов: 31
Просмотров: 1253
Добрый вечер. Есть таблица с киентами, в ней ячейка " телефон"
При оформлении заказа я не ставил в инпуты стандарт ввода телефона и по этому каждый клиент свой телефон записывал как ему вздумается, а именно в международном формате, либо с си мволами скобочками, либо в городском формате или пробелмы ставят и так далее
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. +375 29 935-03-40
  3. +375 29 935-03-40
  4. 375295304869
  5. +375 29 7169154
  6. 80293443739
  7. 80293443739
  8. 375293685925
  9. +375 33 6821840
  10. 375(29)3210756
  11. 375447250215
  12. 375295304869
  13. 375293210756
  14. 80291616442
  15. 375445642694
  16. 375257281420
  17. +375 29 264 49 24
  18. 375257281420
  19. 375291437891
  20. 2830215
  21. 375447250215



Записей 3000+ руками очень долго менять все это, каким методом проще привести все телефоны к формату +37529XXXXXXX ?

mysql, php либо exel?


C уважением, Павел
zapatronen Отправлено: 18 Июля, 2017 - 07:14:06 • Тема: Как сохранить post в переменную и не очищать ее при обновление страницы • Форум: Вопросы новичков

Ответов: 4
Просмотров: 303
Все работает как часы добавил просто строку по совету Строителя

if(empty($_SESSION['promo'])){

}
zapatronen Отправлено: 17 Июля, 2017 - 18:26:24 • Тема: Как сохранить post в переменную и не очищать ее при обновление страницы • Форум: Вопросы новичков

Ответов: 4
Просмотров: 303
Так я в сессию и записываю
$_SESSION['promo']=mysqli_real_escape_string($dbc, trim($_POST['promo']));

Просто, когда жму перейти на сл. страницу, куда должна перенестись сессия поле в форме, которое обрабатывается постом очищается и сесси присваевается нулевое значение и все херится
или вы говорите, что проверка сесси на пустоту ключ к решению?
zapatronen Отправлено: 17 Июля, 2017 - 17:14:59 • Тема: Как сохранить post в переменную и не очищать ее при обновление страницы • Форум: Вопросы новичков

Ответов: 4
Просмотров: 303
Есть в корзине покупок поле " промо". Код который дает скидку.
Поле обрабатывается постом, цена меняется, но при переходе на другую страницу, пост очищается и скидка не получается.
Помогите понять логику как обхитрить пост и зафиксировать его при активации

CODE (html):
скопировать код в буфер обмена
  1.  
  2. <?
  3. $_SESSION['promo']=mysqli_real_escape_string($dbc, trim($_POST['promo']));
  4. $promo=$_SESSION['promo'];
  5.     switch ($promo) {
  6.        case '':
  7.           echo "<form method='post'><input size='11' type='text' name='promo' pattern='^[a-zA-Z0-9\s]+$' value='' placeholder='код'>
  8.            <input type='submit' name='submit5' value='+'></input>
  9.            </form>";
  10.             $_SESSION['summa']=$summa;
  11.             break;
  12.             case 'blackfreeday':
  13.             echo "промо активирован";
  14.                 $_SESSION['summa']=$summa*30/100;
  15.                 echo "<form  method='post'><input size='11' type='text' name='promo' pattern='^[a-zA-Z0-9\s]+$' value='' placeholder='код'>
  16.            <input type='submit' name='submit5' value='+'></input>
  17.            </form>";              
  18.             break;
  19.             case ($promo != blackfreeday):
  20.                 $error="такого нет";
  21.                 echo "<form method='post'><input size='11' type='text' name='promo' pattern='^[a-zA-Z0-9\s]+$' value='$error' placeholder='код'>
  22.                 <input type='submit' name='submit5' value='+'></input>
  23.                 </form>";
  24.             break;
  25.     }
  26. ?>
  27.  
  28.  


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

Подскажите логику или костыль, чтобы промо код сохранялся и не обнулялся, желательно без базы данных

С уважением, Павел
zapatronen Отправлено: 27 Июня, 2017 - 14:01:15 • Тема: Как перенаравить динамиечкую страницу на страницу 404 в случае ошибки? • Форум: Вопросы новичков

Ответов: 1
Просмотров: 205
Привет!
Настроит через htpaccess редирект если страница не существует на страницу 404.php

Если ввожу site.by/contact.php, то открывается существуюущая страница contact.php.
Если сделать ошибку в название страницы, например, site.by/contactввввв.php, то редиректит на страницу 404.php. Тут все ок


НО

Сраницы, которые сформированы гет запросом, например существуюущая
http://site[dot]by/product.php?article=FZ0024 открывается

если я вручную изменю название ссылки, например на
http://sub.easycraft.by/product.php?article=FZ00243333333333333, то 404.php не открывается, а открывается картчока товара без полученной информации так как товара с таким артикулом, который получен из GET не существует

Подскажите простой метод редиректит динамические страницы в случает неудачи на страницу 404.php


Или нужно подключать ЧПУ?

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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB