Наитупейшие вопросы по (да-да) PHP и MySQL внутри.

39 Responses to Наитупейшие вопросы по (да-да) PHP и MySQL внутри.

  1. Ycihlam:

    тонко. Тупых вопросов по ПХП и не найти, да?

  2. Xxxno:

    ответ нет.

  3. Rehwhite:

    1.1 PHP и foreach. Тут есть маленький пример, в котором какое-то содержимое массива распихивается в дополнительные элементы согласно проставленной дате. Но unset почему-то удаляет не только исходный, но и скопированный элемент. Объектов внутри элементов и передачи по ссылке обнаружено не было.
    1.2 Снова PHP, снова foreach. Есть у меня вывод из бд, в котором нужно навести порядок в данных. Для этого я использую следующую конструкцию (то что за цифрой 1, внутри куда больше кода, я просто засунул пару примеров, но всё работает с элементами $r), так вот, при этой конструкции последний элемент копируется из предпоследнего. WTF? При использовании конструкции 2 оттуда же все ок, но мне хотелось бы передавать все это говно по ссылке.
    2. SQL. Можно ли составить такой запрос, который всегда выводит N элементов, а тем из них, который удовлетворяют условию, прописывает дополнительные поля (например selected = true)?
    3. SQL. Предположим, есть табличка, в которой одно поле — категория. Так вот, можно ли одним запросом вывести по N записей каждой категории?

  4. IhsSport:

    2. Да.
    3. Да.

  5. Xinko:

    1.1 Цикл проходится и по новым элементам, удаляя их. Внутри цикла пиши не в $releases, а в какой-нибудь другой массив.
    1.2 хз, но может быть там что-то упарывается после цикла? попробуй поставить сразу после цикла unset($r);

    http://stackoverflow.com/ не пробовал?

  6. Rehwhite:

    только теперь дошло про 1.1. Спасибо.
    На стаковерфлоу не совался, здесь как-то подружественней казалось.

  7. LesYes:

    Какой смысл вообще несёт конструкция 1.2? Может попробывать sort?

  8. LesYes:

    Присваивания внутри foreach массива с которым ты сейчас работаешь запрещены.

  9. Xinko:

    не запрещены, просто стоит ожидать непредсказуемых результатов 🙂

  10. LesYes:

    да, но у меня такое чувство что в ранних версиях было таки нельзя.

  11. Rehwhite:

    там на месте многоточия те же вещи, что и в первой — данные приводятся к удобоваримому виду.

  12. Yksin:

    В пэхапе нет почти никаких «нельзя».

  13. Yksin:

    Stackoverflow, кстати, охуенный сайт. Благодаря их высоким требованиям к чёткости вопроса, я раз двадцать уже начинал там нормально формулировать вопрос и находил ответ самостоятельно.

  14. Rehwhite:

    я даже читал статью codinghorror про это

  15. SkoLt:

    ответ на третий вопрос либо с юнионами, либо тут. либо можешь попробовать что-то еще изобрести

  16. ZehLt:

    если использовать такую конструкцию
    foreach($data as $k=>&$v)
    то можно сразу изменять $v в цикле

  17. SkoLt:

    не путай теплое, мягкое и третье.

  18. Rerodin:

    А у меня вот какой затык.
    Из текстового поля (textarea) данные отправляются в базу, все переводы строки меняются на теги параграфов, для вывода на страницу.
    Но как мне эти переводы строк возвращать на место, когда мне нужно текст обратно в поле толкать, при минимальном зоопарке в /n и /r/n?

    Возможно, лучше не заниматься таким делом и замены производить не заранее, а по факту запроса страницы исключительно?

  19. Rerodin:

    проблема надуманная, ибо вместо «зоопарка» нужен исключительно <br/&rt;

  20. Rehwhite:

    у тебя проблемы именно с обратной заменой, или с выбором решения?

  21. NidApp:

    функция nl2br() или я не правильно понял?

  22. NidApp:

    о, нет, прости

  23. Rerodin:

    были с обратной заменой, оттуда рос выбор решения
    но первая проблема решена, вторая самоустранилась.

  24. 01pSpb:

    неправильно менять текст, который ввел пользователь перед сохранением. Только перед выводом той же функцией nl2br или простейшей регуляркой

  25. Rerodin:

    смешаю яичницу и кирпичи, но, в таком случае, и менять апострофы и прочие рисковые символы на мнемоники неправильно.
    Если оценить, что будет происходить чаще — редактирование или вывод — я считаю, обработка при сохранении более разумна, чем при выводе заниматься чем-то больше, чем просто выводом.

  26. 01pSpb:

    неразумна обработка перед сохранинием, ты сам только что себе это доказал. Это аксиома, которой уже миллион лет. И не путай HTML-entities (которые и в хтмле у тебя будут невалидны в исходном виде) и преобразование пользовательских данных. Сегодня ты хочешь переводы строк менять, завтра пробелы, а потом все слова после точки с пробелом писать с заглавной буквы. Или что-то в таком духе. И, не дай бог, придётся тебе откатиться на предыдущую версию данных (плавали, знаем).
    Ну и да, сегодня у тебя этими данными пользуется сайт (читай, клиент с представлением в виду HTML), а завтра — мобильное устройство, которое показывает форматирование текста своими способами и о br-ах ничего и не знает.

  27. Rerodin:

    «HTML–entities (которые и в хтмле у тебя будут невалидны в исходном виде)» — где-то тут порылась неувязочка.
    Что будет завтра, что будет завтра… Принимаемые с мобильного устройства данные будут проходить свойственную для его особенностей обработку с целью приведения к унифицированному виду (в данном отдельно взятом случае — удалению его собственных переносов строк и обёртке в <p></p> (в этих, дополнительно вложенных скобках, предложу посмотреть в исходный код у увидеть, что там оно записано как «&lt;p&gt;&lt;/p&gt;», отсылка к началу комментария)). И этот вид представляет собой фрагмент xml, формата универсального. Теоретизирования о ненасущных проблемах портирования закончены.
    Целюлю.

  28. XivZero:

    либо хранить обработанную версию рядом, если обработка тяжеловата.

  29. 01pSpb:

    угу. Версионированную, да? расскажи это нашим пацанам с почтовых стораджей на петабайты

  30. Rehwhite:

    конечно же работает с петабайтами, как иначе.

  31. 01pSpb:

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

  32. Rehwhite:

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

  33. 01pSpb:

    всё так. В чем проблема-то? или у тебя пердак рвёт от осознания того, что ты — говноед и говноедом и помрёшь? Тут как бы не мерянье хуями, а вполне себе четкие критерии этого говноедства. Скиллы, мозги и, как следствие, зарплаты, позволяют четко разделить программистов на эти две категории.

  34. Rehwhite:

    да, тут не мерянье хуями, тут вполне себе девические терки на тему охуенности.

  35. 01pSpb:

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

  36. Rehwhite:

    ох, всё равно

  37. Rerodin:

    Это проблема любого сообщества.
    Товарищ потеоретизировал, а задача была узко-практическая. Его советы уместны не в этом посте, а там, где архитектуры закладываются.

Добавить комментарий