2014-12-04 5 views
0

Я просто новичок в плане программирования, поэтому я просто обращаюсь ко всем моим кодам через учебные пособия. К счастью, я нашел этот онлайн-учебник в youtube, где пользователям разрешено добавлять, обновлять и удалять данные в mysql, используя php. Я следую всем его инструкциям, я заработал, но потом он остановился, когда я добавил css на него.MySQL - UPDATE и DELETE QUERY не работают

Это не общий вопрос, мне просто нужна помощь. Если кто-то может мне помочь, очень ценю. Огромное спасибо.

<?php 
    $servername = "localhost"; 
    $username = "root"; 
    $password = ""; 
    $dbname = "rssfeed"; 

    $connect = mysql_connect($servername, $username, $password, $dbname); 
    if (!$connect) { 
     die("Connection failed. Error" . mysql_error()); 
    } 

    $database = mysql_select_db($dbname, $connect); 
    if (!$database) { 
     die("Can't select database"); 
    } 

    $sql = "SELECT * FROM record"; 
    $data = mysql_query($sql, $connect); 

    if (isset($_POST['update'])){ 
     $updateQuery = "UPDATE record SET name = '$_POST[name]', url = '$_POST[url]', description = '$_POST[desc]' WHERE name = '$_POST[hidden]'"; 
     mysql_query($updateQuery, $connect); 
     header("Location: maintenance.php"); 
    }; 

    if (isset($_POST['delete'])){ 
     $deleteQuery = "DELETE FROM record WHERE name = '$_POST[hidden]'"; 
     mysql_query($deleteQuery, $connect); 
     header("Location: maintenance.php"); 
    }; 

    if (isset($_POST['add'])){ 
     $addQuery = "INSERT INTO record (name, url, description) VALUES ('$_POST[iName]', '$_POST[iUrl]', '$_POST[iDesc]')"; 
     mysql_query($addQuery, $connect); 
     header("Location: maintenance.php"); 
    }; 


    echo "<div class=center> 
     <table id=myTable border=1> 
     <tr> 
     <th> Name </th> 
     <th> URL </th> 
     <th> Description </th> 
     </tr>"; 

    while($record = mysql_fetch_array($data)) { 
     echo "<form method=post action=maintenance.php>"; 
     echo "<tr>"; 
     echo "<td>" . "<input type=text name=name id=name value=" . $record['name'] . " </td>"; 
     echo "<td>" . "<input type=text name=url id=url value=" . $record['url'] . " </td>"; 
     echo "<td>" . "<textarea rows=1 cols=50 wrap=physical name=desc id=desc>" . strip_tags($record['description']) . "</textarea></td>"; 
     echo "<input type=hidden name=hidden value=" . $record['name'] . ">"; 
     echo "<td>" . "<input type=submit name=update id=update value=update" . " </td>"; 
     echo "<td>" . "<input type=submit name=delete id=delete value=delete" . " </td>"; 
     echo "</tr>"; 
     echo "</form>"; 


    } 
     echo "</table>"; 
     echo "<table border=1>"; 
     echo "<form method=post action=maintenance.php>"; 
     echo "<tr>"; 
     echo "<td><input type=text name=iName></td>"; 
     echo "<td><input type=text id=url name=iUrl></input></td>"; 
     echo "<td><textarea rows=1 cols=50 name=iDesc></textarea></td>"; 
     echo "<td>" . "<input type=submit name=add id=add value=add" . " </td>"; 
     echo "</tr>"; 
     echo "</form>"; 
     echo "</table>"; 
     echo "</div>"; 

    mysql_close($connect); 
    ?> 
+0

У вас есть 2 представления в 1 форме, PHP это не нравится. Я предлагаю вам взглянуть сюда: http://stackoverflow.com/questions/9054363/form-with-two-button-submit-with-different-value – Matheno

+0

@ User8889 все еще не работает :( – Kamilah

+0

Затем попробуйте подходите к нему по-другому. Например, используйте url вместо кнопок типа , а затем выполните действие следующим образом: $ _GET ['action'], а затем выполните запрос – Matheno

ответ

0

В запросах, $_POST[name] должны быть $_POST[\"name\"]. НО, это ужасно, вы очень открыты для SQL-инъекций.

Пожалуйста, прочитанный из this и прекратить использование mysql_query (это не рекомендуется)

+0

Я думал, что это должно быть '$ str =" {$ _POST ['name']} "'? – Carpetsmoker

+0

спасибо за информацию. Я все еще новичок в mySql, и, к сожалению, я до сих пор не знаю, как использовать PDO :) – Kamilah

0

у вас есть несколько ошибок в эхо-вывода ..

echo "<td>" . "<input type=text name=name id=name value=" . $record['name'] . " </td>"; 

Вы забыли одинарные кавычки для каждого HTML-элемента и атрибут по больше, то в конце нескольких входных элементов ...

попробовать это:

echo "<td><input type='text' name='name' id='name' value='" . $record['name'] . "'> </td>"; 
+0

Я сделал что раньше, но все же не работает. Моя кнопка добавления работает отлично, просто кнопка обновления и удаления. – Kamilah