Абстрактный класс - это шаблон проектировщика, если вы наследуете от него класс, то он ОБЯЗАН иметь реализацию всех абстрактных методов какие перечислены в абстракции. Если Вася наследует от базовой абстракции MultiMedia класс Video, а Коля класс Audio, то для них будет "подсказка" что в их классе обязательно должен быть метод getPlayTime(), который есть в абстрактном классе, и Федя может смело его вызывать в любом классе наследуемом от абстрактного. Хотя в video и audio они реализованы по разному.
Кнопка не "делает магию", кнопка вызывает скрипт, результатом которого будет аякс запрос к серверу, в ответ на который сервер пришлет ответ - в данном случае скорее всего урл картинки. Если вам необходимо получить этот урл без всяких нажатий - открываете запросы - в инструментах разработчика любого популярного браузера и смотрите куда был отправлен запрос после нажатия кнопки и с какими параметрами. Далее дело техники - curl или file_get_contenet - вытаскиваете ответ сервера.
Оох, такой каша вариться, моя не смотреть! (с) Jar Jar Binks.
1) Каша внатуре, ну да ладно, это пол беды.
2) Используйте prepared statements и PDO.
3) Формируйте запросы в переменные, только потом передавайте запрос на исполнение, так хоть можно дебаггить что там в запрос попадает.
4) Если нифига не ясно(как тут) - через строчку ставим print_r(), и так для всего что шевелится.
5) Profit
0) Использовать более современные методы работы с бд (PDO, prepared statments)
1) Убедиться что $_POST содержит нужные строки, для этого есть print_r() и vardump();
2) SQL строки сначала формируются в переменную, затем передаются на исполнение, т.о. их можно посмотреть до отправки в запрос, и понять где косяк, например вручную потом вставив запрос в какой-нибудь phpmyadmin.
Я люблю пхп, но замечательно понимаю что для определенного круга задач он не подходит, есть более другие языки, подходящие для этого, ищите что-то на питоне или яве, просто передавайте из пхп параметры скрипту на другом языке.
Можно, но плохо.
Во первых - какое удобство?
Во вторых - вы же должны как-то работать с этими файлами, например обрезать аватарку, для этого нужно знать тип файла. Без расширения вы слегка запаритесь колупать что это за файл, да и браузеры не все еще могут определить что вы им подсовываете.
В третьих - не по христиански это, плодить бардак на собственном сервере.
это зависит. Если у вас 1 000 000 юзеров то будет чета дофига инсертов. А так - цикл, больше ничего собственно не придумаешь, выбираем все id(у вас же id в to вставляется?) select id from users where 1
результат в цикле делаем инсертами, чотбы не повисло - памяти побольше выделить и время выполнения увеличить. Можно разбить на куски по 1000 и обернуть в транзакцию.
Попробуйте иначе - при создании N элементов далее писать в другую переменную, тогда во первых будете видеть количество введенных записей, во вторых будет понятен лимит на 1 строку(узнаете сколько можно напихать), думаю дело во времени исполнения, или памяти на процесс мало, обычно при этом падает фатал, но тут хз, возможно сбой какой-то, кроме того - думаю не везде будет одинаково выполняться, от настроек зависит.
А куда должны попасть эти поля?
Как сказали в коментарии - завернуть в жсон обратно.
и глядя на код - вроде так нихрена не должно работать, у вас $a принимает значения строковые, а вы их потом как объект используете, или я не вижу большой отсутствующий кусок кода? Уберите форич, если данные всегда приходят в таком виде - проще захардкорить преобразование $json->dat->par = json_encode($json->dat->par). Я бы так не делал, но при том что вы используете деприкатед код - вам подойдет.
А в чем проблема? У вас есть скрипт, он работает, но 100 фоток сразу он не может обработать, скорости работы не хватает чтобы уложиться в 30 секунд. Либо заливайте меньшими порциями, либо увеличьте max_execution_time, собсно это 2 наиболее очевидных пути. Есть еще варианты вынести отдельно работу с загрузкой и работу с ресайзом, или вынести обработку и кэширование превью на nginx(тут на тостере обсуждалось уже, была ветка похожая).
[offtop] * сОртировать [/offtop].
Вроде и буквами написано, а все равно как на китайском.
Сортировка в бд происходит не по значению, а по полю таблицы, вообще слабо понимаю что значит "отсортировать по этому значению". Объясните задачу четче, думаю сформулировав ЧЕТКИЕ требования к задаче вы или сами поймете что делать, или тут вам помочь смогут.
Но тогда надо делать либо список исключений что бы роутер не искал их как юзеров + сделать эти имена запрещёнными для регистрации, либо всё же изменить адреса на:
site.com/info/intro
Второй вариант не исключает проблемы первого ) В любом случае придется вносить исключение на info хотя бы, так что чего уж там - делайте статические роуты на все служебные странички, плюс проверка на имя совпадающее со списком роутов.
Из этих обрывков ничего понять нельзя, ставьте вардамп через строчку, возможно какой-то массив пустой, или все пустые, или еще какие-то данные не попадают в скрипт.