Обновление базы данных обновлений из Flash

Я хочу обновить базу данных со вспышкой (ввод текста)

Вот мой php-код

<?php mysql_pconnect ("localhost", "root", ""); mysql_select_db ("adaptasi"); $isi = isset($_POST['OutData']); $query2 = "UPDATE materi SET isi='$isi' WHERE id = 1"; $result2=mysql_query($query2) or die("Query Failed : ".mysql_error()); ?> 

Вот мой ActionScript 2

 function SubmitData() { trace("Sending"); var OutData = new LoadVars(); text_morfologi.text = OutData.OutData; filepath = "http://localhost/adaptasi/"; OutData.sendAndLoad(filepath + "editmorfologi.php", OutData, "POST"); } btnsave.onRelease = function() { SubmitData(); btnedit.visible = true; btnsave.visible = false; }; 

Но результат isi в базе данных – это «1», а не текст, который я вводил в текстовое поле. благодаря

У вас есть некоторые проблемы с кодом:

ActionScript 2:

Чтобы отправить данные с помощью объекта LoadVars вы должны атташе по отношению к этому объекту в качестве его свойств, и если вы хотите получить ответ со своего сценария на стороне сервера, вы можете использовать LoadVars.sendAndLoad() но если вы хотите просто отправить эти данные не дожидаясь ответа, вы можете использовать LoadVars.send() .

Предположим, что вы будете использовать функцию sendAndLoad() , поэтому код может выглядеть следующим образом:

 var url:String = 'http://www.example.com/update.php'; // the LoadVars object that will receive (load) a response from the server var receiver:LoadVars = new LoadVars(); receiver.onLoad = function(success:Boolean) { if (success) { trace(receiver.response); // gives for example : update successful } else { trace('error'); } } // the LoadVars object which will send (post) some data to the server var sender:LoadVars = new LoadVars(); sender.id = txt_id.text; sender.name = txt_name.text; sender.sendAndLoad(url, receiver); // we don't set the method to POST because that's its default value 

PHP:

Как упоминалось во многих комментариях, функция isset() PHP используется для проверки того, установлена ​​ли переменная и не является NULL, и она возвращает логическое значение ( TRUE of FALSE ), которое когда оно выполняется (преобразование) в строку , даст вам 1 для TRUE и “ (пустая строка) для FALSE .

В вашем случае, и, по вашему мнению, я думаю, что, поскольку переменная $_POST['OutData'] по-видимому, установлена, isset($_POST['OutData']) является истиной, которая установит значение $isi isset($_POST['OutData']) 1 , поэтому вы получите:

 $query2 = "UPDATE materi SET isi='1' WHERE id = 1"; 

но, согласно вашему опубликованному коду, я думаю, что вы должны получить:

 $query2 = "UPDATE materi SET isi='' WHERE id = 1"; 

Вернемся к нашему текущему примеру, мы получим две наши переменные POST (id и имя), отправленные сценарием AS2, чтобы обновить БД и затем вернуть ответ, если данные были успешно обновлены или нет:

 <?php if(isset($_POST['id'] && isset($_POST['name'])) { $id = $_POST['id']; $name = $_POST['name']; mysql_pconnect('localhost', 'root', ''); mysql_select_db('my_db'); $query = "UPDATE users SET name = '$name' WHERE id = $id"; $result = mysql_query($query); if($result){ echo 'response=update successful'; } else { echo 'response=update failed'; } } ?> 

Конечно, здесь я попробовал просто дать вам очень простой пример рабочего кода в соответствии с вашим текущим. Вы должны знать, что для вашей стороны PHP, что расширение «mysql» было устарело в PHP 5.5.0 и было удалено в PHP 7, вам следует подумать о том, чтобы использовать расширения «mysqli» или «PDO» , для получения более подробной информации, посмотрите здесь , также не забывайте санировать , проверять и избегать любых данных пользователя, … и для стороны ActionScript, возможно, пришло время начать изучение ActionScript 3 …

Надеюсь, что это поможет.