Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » MySql/PHP: общие вопросы

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Открыть новую тему     Написать ответ в эту тему

Ghosting4469



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii

Цитата:
Скорее вы что то делаете не так  

 
Спасибо, вы правы

Всего записей: 42 | Зарегистр. 21-03-2017 | Отправлено: 08:33 04-03-2018
Dj BoBo



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В базе есть такой код  

Код:
<img class="alignleft" src="https://.....png" alt="Некий текст, всегда разный" width="200" height="133">

Ссылка на картинку может быть ещё и jpg, указанная ширина всегда 200 пикселей, а вот высота может быть прописана разной, в диапазоне от 125, до 135 пикселей.
 
А есть вот такие строки  

Код:
<img width="200" height="133" class="alignleft" alt="Некий текст, всегда разный" src="https://....png">

 
В отношении них применяется всё то, что и выше, но здесь очерёдность тегов иная.  
Можно ли теги привести к единой теговой последовательности эти варианты, как в первой приведённой строке кода?  
Т.е. открывающий тег имг, далее класс алиджен лефт, далее ссылка на картинку, далее альт и ширина с высотой.

----------
mAtrix Reloaded...

Всего записей: 1566 | Зарегистр. 20-02-2007 | Отправлено: 01:20 14-03-2018
Mavrikii

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dj BoBo

Цитата:
но здесь очерёдность тегов иная.  

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

Всего записей: 6817 | Зарегистр. 20-09-2014 | Отправлено: 01:22 14-03-2018 | Исправлено: Mavrikii, 01:23 14-03-2018
Dj BoBo



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
Вот оно что. А я думал, что можно как то через PhpMyAdmin сделать в пакетном режиме.

----------
mAtrix Reloaded...

Всего записей: 1566 | Зарегистр. 20-02-2007 | Отправлено: 23:19 14-03-2018
SergioEmpasaDeParado

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подробнее...

Всего записей: 27 | Зарегистр. 13-04-2018 | Отправлено: 07:46 13-04-2018
Mavrikii

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SergioEmpasaDeParado
зачем вам тут onclick вообще??

Код:
<div onClick=\"document.location='print.php?id=" . $result['id'] . "'\"id='st' target='_blank'>  

у дива нет атрибута target

Код:
<a href='print.php?id=" . $result['id'] . "' id='st' target='_blank'> <img src=\"data/print.png\" width=\"12\" height=\"12\" title=\"Печать `".$result['family']." ".$result['dr']."`\"> </a>

Всего записей: 6817 | Зарегистр. 20-09-2014 | Отправлено: 08:00 13-04-2018 | Исправлено: Mavrikii, 08:01 13-04-2018
SergioEmpasaDeParado

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
Что бы при нажатии на этот див перекидывало на другую страницу.  
Дргова варианта пока не знаю, 2 курс же. Только, только начали изучать)
 

Всего записей: 27 | Зарегистр. 13-04-2018 | Отправлено: 08:14 13-04-2018
Mavrikii

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SergioEmpasaDeParado

Цитата:
Что бы при нажатии на этот див перекидывало на другую страницу.  

я вам показал что нужно - используйте ссылку, а не div и onclick.

Всего записей: 6817 | Зарегистр. 20-09-2014 | Отправлено: 08:21 13-04-2018
SergioEmpasaDeParado

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
да, спасибо)

Всего записей: 27 | Зарегистр. 13-04-2018 | Отправлено: 08:25 13-04-2018
vs6262



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
как с пом. PHP лучше записывать большие файлы , пакетами при file uploading , так чтобы на сервере как только можно сберечь RAM сервера ?
 
спасибо

Всего записей: 1623 | Зарегистр. 25-02-2013 | Отправлено: 18:21 17-05-2018
Mavrikii

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vs6262
память отшибло?
How could I upload a large file in chunks using Java?
и
Загрузка файла на сервер средствами XMLHttpRequest

Всего записей: 6817 | Зарегистр. 20-09-2014 | Отправлено: 20:09 17-05-2018
sem88

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопрос:
 
$fl = "./nom.txt";
 $nom = file_get_contents($fl, LOCK_EX);
 $nom++;
 $fp = fopen($fl,"w+");
 $fw = fwrite($fp,$nom);
 fclose($fp);  
 
 
 в nom.txt у нас есть только одна запись - u00000009901. Код выше обращается к данному файлу берет значение и добавляет +1 к номеру. Все работает 1-2 недели нормально потом внезапно затирается и начинается отсчет с нуля (как я полагаю с нуля, т.к. когда это обнаруживаю цифры уже 202, 203, и далее). Почему это происходит и как этого избежать?

Всего записей: 55 | Зарегистр. 13-04-2007 | Отправлено: 17:08 22-05-2018
Mavrikii

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sem88

Цитата:
LOCK_EX

Зачем эксклюзивный лок, если идёт чтение? К тому же у get_contents нет такого аргумента

Цитата:
$fl = "./nom.txt";  
 $nom = file_get_contents($fl);  
 file_put_contents($fl, ++$nom, LOCK_EX);

 

Цитата:
u00000009901

Прибавление единицы преобразует строку в целое число, поэтому подобная запись бессмысленна. Первое увеличение счётчика получит 0 из этого и прибавит 1, сохранив 1, а не в подобной записи

Всего записей: 6817 | Зарегистр. 20-09-2014 | Отправлено: 18:26 22-05-2018 | Исправлено: Mavrikii, 18:29 22-05-2018
sem88

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
>Зачем эксклюзивный лок, если идёт чтение?  
 
Кроме чтения, мы же еще и записываем новые изменения? Разве не так?  
 
>К тому же у get_contents нет такого аргумента
Тогда как нам поставить лок за запись?
 
 
>Первое увеличение счётчика получит 0 из этого и прибавит 1, сохранив 1, а не в подобной записи
проблема в букве? или при достижении какого уровня, (например 1000) он в любом случае скинет на 0 и придет к 1?

Всего записей: 55 | Зарегистр. 13-04-2007 | Отправлено: 18:51 22-05-2018
Mavrikii

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sem88
используйте, пожалуйста, стандартный тег цитирования.
 

Цитата:
Кроме чтения, мы же еще и записываем новые изменения?

LOCK_EX ставится только при записи.
 

Цитата:
Тогда как нам поставить лок за запись?  

вы код смотрите выше?
 

Цитата:
проблема в букве?

нет.. я протестировал, ошибся. привык, что (int) убивает все строчное, а тут нормально прибавляет, оставляя строкой.
 
и

Код:
$str = 'u00000009909';
for($i = 0; $i < 1000; $i++)
echo ++$str . "\n";

показывает, что с нумерацией проблем нет.  
проблема была, возможно в том, что пишите вы без лока, а читать пытаетесь с ним (хотя у функции file_get_contents нет LOCK_EX аргумента). используйте лок при записи, как написал выше в предыд посте
 

Всего записей: 6817 | Зарегистр. 20-09-2014 | Отправлено: 19:23 22-05-2018 | Исправлено: Mavrikii, 19:26 22-05-2018
sem88

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
вы код смотрите выше?

 
Да извините, почему-то прошло мимо сознания. Я  тоже думал, что сбивается запись поэтому и мыслил в направлении лока, но получилось криво, спасибо, что направили в нужно русло.
 
т.е. код теперь должен быть так:
 
  $fl = "./nom.txt";  
  $nom = file_get_contents($fl);  
  file_put_contents($fl, ++$nom, LOCK_EX);
  $fp = fopen($fl,"w+");  
  $fw = fwrite($fp,$nom);  
  fclose($fp);  

Всего записей: 55 | Зарегистр. 13-04-2007 | Отправлено: 07:57 23-05-2018
Mavrikii

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sem88

Цитата:
$fp = fopen($fl,"w+");  
  $fw = fwrite($fp,$nom);  
  fclose($fp);  

зачем???

Цитата:
file_put_contents($fl, ++$nom, LOCK_EX);  

выполняет именно это

Всего записей: 6817 | Зарегистр. 20-09-2014 | Отправлено: 09:01 23-05-2018
sem88

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
зачем???

И действительно!!
 
т.е.    
 
$fl = "./nom.txt";    
$nom = file_get_contents($fl);    
file_put_contents($fl, ++$nom, LOCK_EX);
 
лаконично!
 

Всего записей: 55 | Зарегистр. 13-04-2007 | Отправлено: 11:31 23-05-2018
sem88

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите решить такую задачу.
 
У нас есть заявки от пользователей. Каждый пользователь получает свой номер (например АВ-0203) и сколько бы раз пользователь нам не написал, они все идут под одним номером будь то   -  mashа@mmm.ru  (или она ошиблась и написала  mash@mmm.ru)  
 
и через запрос:
    $zapros = mysqli_query($link, "SELECT DISTINCT id FROM zapros");    
         echo " "  .  mysqli_num_rows($zapros)."<br>";    
 
// получаем список заявок  и перечень всех  номеров заявок  
 
   while (  $name  =  mysqli_fetch_row($zaprosl)  )
   {   echo "<a href=con.php?a=$name[0]>$name[0]</a><br />";
}
 
Проблема  в следующем, начальство недовольно, что выводятся только обезличенные АВ-0203, АВ-0222, АВ-025.  И требует выводить и группировать по   email.  
Если  идти по предыдущему варианту, но заменить id на emal  - mysqli_query($link, "SELECT DISTINCT  email  FROM zapros");    
 
Мы получаем список email-ов, но  если пользователь ошибся в место  mashа@mmm.ru  написал-  mash@mmm.ru. Выведутся оба варианта.
 
Как сортировать по id, но при этом еще и email вывести?

Всего записей: 55 | Зарегистр. 13-04-2007 | Отправлено: 18:36 23-05-2018 | Исправлено: sem88, 18:40 23-05-2018
Mavrikii

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sem88
select id, group_concat(distinct email) as emails from zapros group by id;
 
если id и запись для пользователя, то нужно хранить email в профиле, а не просить его указывать (с возможной ошибкой) каждый раз.
 
ps: ограничение group_concat - собирает в строку длиной не более 1024 символов, ограничение можно изменить - https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_group_concat_max_len

Всего записей: 6817 | Зарегистр. 20-09-2014 | Отправлено: 20:17 23-05-2018 | Исправлено: Mavrikii, 21:29 23-05-2018
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Компьютерный форум Ru.Board » Интернет » Web-программирование » MySql/PHP: общие вопросы

Имя:
Пароль:
Сообщение

Для вставки имени, кликните на нем.

Опции сообщенияДобавить свою подпись
Подписаться на получение ответов по e-mail
Добавить тему в личные закладки
Разрешить смайлики?
Запретить коды


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2018

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru