officedw.beget.tech обычный бегетовский хостинг --- Добавлено --- заапись пошла, точку запятую пропустил, 1 запись идет все ок. но нет перезаписи
Бегет - это хостинг. Я думал Вы на локальном компьютере тестируете. Есть ли у Вас доступ к логам веб-сервера на хостинге? Или добавьте в начало php-скрипта вот эти строки: PHP: ini_set("display_errors", "1"); error_reporting(E_ALL); И покажите, что за запрос у Вас получился?
@kiril901, тут самый простой путь - открыть phpmyadmin и в нем обкатать запрос с добавлением дублирующей записи. Запрос то покажете окончательный?
ну вот Код (Text): require 'connect.php'; if(isset($_POST['text'])){ $nazv=$_POST['nazv']; $text=$_POST['text']; $id=$_POST['id']; $insert_sql = "INSERT INTO main (nazv,text, user_id)". "VALUES ('{$nazv}','{$text}', '{$_SESSION['id']}')"; "ON DUPLICATE KEY UPDATE nazv = VALUES('{$nazv}'), text= VALUES ('{$text}'); "; mysql_query($insert_sql); {echo 'ок';} }
А так? Код (Text): ON DUPLICATE KEY UPDATE nazv = VALUES(nazv), text= VALUES (text) Но правильнее так: Код (Text): ON DUPLICATE KEY UPDATE nazv = '{$nazv}', text= '{$text}'
Код (Text): ON DUPLICATE KEY UPDATE nazv = VALUES(nazv), text= VALUES (text) спасибо огромное при огромное
у меня вопрос к вам: Моя задача выводить из БД значения, ввожу я в своем аккаунте, а вывести надо чтобы видели все люди Я вывожу данные из БД и при условии вставки <code lang="php"> session_start(); </code> выводит толко если в свой аккаунт войду, а мне надо чтобы вывод был виден всем, вот код вывода <code lang="php"> <? session_start(); require 'connect.php'; $sql_select = "SELECT * FROM main WHERE user_id = {$_SESSION['id']}"; $result = mysql_query($sql_select); $row = mysql_fetch_array($result); do { printf(" " .$row['nazv'] . "<br>" .$row['text'] . " "); } while($row = mysql_fetch_array($result)); ?> </code> как сделать?
Немного поясните. Вы хотите выводить тот текст, что сохранен для Вашего пользователя всем или вывести какой-то отдельный текст для гостей?
Надо таблицу смотреть, тут не совсем внятно сказано, в запросе вы выводите PHP: $sql_select = "SELECT * FROM main WHERE user_id = {$_SESSION['id']}"; выбрать все, из таблицы main, где id-пользователя равно id-пользователя из сессии. Пытаюсь догадаться, что человек хочет сделать админку, куда он входит и добавляет текст, а потом уже этот текст будет видет пользователям пришедшим к нему на сайт. Для этого необходимо сделать таблицу с пользователями, и дать им поле, которое определит их статус, например, неавторизованный, авторизованный, модератор, администратор. На самой странице сделать вывод тех или иных данных, например, проверить если PHP: if($_SESSION['admin'] == 'admin' OR $_SESSION['admin'] == 'moder'){ выведем форму для добавления новости } , а потом уже запрос который выводит новости для всех $sql_select = "SELECT * FROM main; Получится, что форма добавления текста будет видна только разрешенным в условии if пользователям, а выводиться они будут для всех. Спасибо за внимание )) Главное не торопиться, если посмотреть на программу как на программу, и пройти по шагам, что она делает (а делает она только то что мы ей говорим) то все сразу становится понятно, не торопитесь.