[Ответить в тред] Ответить в тред


[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 16 | 1 | 5
Назад Вниз Каталог Обновить

Аноним 01/06/17 Чтв 19:59:52  154254769  
-gkeZyYcuyY.jpg (36Кб, 560x390)
Есть страница, на ней разные тексты, хранящиеся в БД.
Хочу допилить в админку возможность редактировать эти тексты.

Хранятся они там просто: id записи и столбец text с текстом. Записи могут добавляться или удаляться.

Делаю так: foreach'ем перебираю все записи и текст каждой запихую в textarea. В конце кнопка "Сохранить", хочу чтобы по нажатию на сию кнопку все записи апдейтились в БД пусть все сразу обновляются, даже если там не было изменений, похуй. Передаю методом post.

Вопрос: как реализовать сие? Что писать в name текстареи и что потом отлавливать? Чет вообще не могу додуматься. Необходимо, чтобы была только одна кнопка "сохранить" для всех записей.

Как альтернативный вариант думаю сделать тупо аяксом, чтобы по событию набора текста он автоматом сейвился в базу, это норма вообще?
Аноним 01/06/17 Чтв 20:03:52  154255027
бамп
Аноним 01/06/17 Чтв 20:04:33  154255073
>>154254769 (OP)
Так в чём проблема? запрос составить не можешь?
UPDATE `pages` SET `text` = $_POST['text']
Обновит все страницы в базе, возможно в синтаксисе запроса ошибся
Аноним 01/06/17 Чтв 20:09:17  154255375
>>154255073
>$_POST['text']
Количество записей в БД не фиксировано (они могут удаляться или добавляться), соответственно я не могу записать к каждой записи уникальный name <textarea name="text"> они должны генериться автоматически в момент перебора foreach'ем. Могу сделать name равным id записи, но как потом ловить его, он ведь может быть любым
Аноним 01/06/17 Чтв 20:11:24  154255516
выводи <input type=hidden name='ids[]' value='33'>
потом у тебя в $_POST['ids'] будет массив айдишников, и потом через foreach будешь делать
UPDATE `pages` SET `text` = $_POST['text'] WHERE id = 'x'
Аноним 01/06/17 Чтв 20:12:01  154255552
>>154255516
Запросы в цикле, грех.
Аноним 01/06/17 Чтв 20:12:51  154255605
>>154255516
в текстэриа соотв тоже будет
<textarea name= 'text[]' ... >
Аноним 01/06/17 Чтв 20:13:19  154255626
>>154255552
Это еще почему?
Аноним 01/06/17 Чтв 20:13:22  154255632
>>154255516
добра
Аноним 01/06/17 Чтв 20:14:37  154255714
>>154255632
алсо, можешь запилисть фейкомыло, могу ревью сделать, мб посоветовать чего
мимо-мидл
Аноним 01/06/17 Чтв 20:17:24  154255890
>>154255714
webadev@yandex.ru
Но я хз зачем
Аноним 01/06/17 Чтв 20:20:43  154256094
>>154255626
Потому что База узкое место почти всегда, если есть возможность обойтись без цикла то ей нужно пользоваться, чтобы потом не горела жопа от того что простенький скрипт вешает БД.
Аноним 01/06/17 Чтв 20:26:17  154256424
>>154255516
>UPDATE `pages` SET `text` = $_POST['text'] WHERE id = 'x'
Мать твою шатал, на спине твоего отца, мидл, бля.

UPDATE `pages` SET `text` = $_POST['text'] WHERE id IN (implode(',' , $_POST[ids])
Аноним 01/06/17 Чтв 20:28:39  154256560
>>154256424
Один текст для всех записей? Не позорился бы...
Аноним 01/06/17 Чтв 20:42:24  154257359
>>154256424
Это во-первых, во-вторых - операция in - более затратная.
Аноним 01/06/17 Чтв 20:45:54  154257573
>>154256424
>>154257359
Вообще вы зря ебетесь с составлением запроса ибо я всеравно юзаю ORM.

Сделал так:
<textarea name="texts[<?php echo $text->id; ?>]"

в результате имею массив, где ключ - айди записи, а его значение - текст, на который нужно записать
Аноним 01/06/17 Чтв 20:46:57  154257643
>>154257573
>записать
заменить фикс

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 16 | 1 | 5
Назад Вверх Каталог Обновить

Топ тредов
Избранное