2014-12-04 291 views
0

我只是编程方面的初学者,所以我只是通过教程引用我的所有代码。幸运的是,我在youtube上发现了这个在线教程,允许用户使用php在mysql中添加,更新和删除数据。我遵循他的所有指示,我得到了它的工作,但当我添加css时停止了。MySQL - 更新和删除查询不起作用

这不是一个普遍问题,我只是需要一些帮助。如果有人能帮助我,非常感谢。非常感谢。

<?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 2014-12-04 16:59:58

+0

@ User8889仍然无法工作:( – Kamilah 2014-12-04 17:09:36

回答

0

在查询中,$_POST[name]应该$_POST[\"name\"]。但是,这太可怕了,你对SQL注入非常开放。

请有this读取并停止使用mysql_query(它不建议使用)

+0

我认为它应该是'$ str =“{$ _POST ['name']}”'? – Carpetsmoker 2014-12-04 16:18:07

+0

感谢您的信息。我还是mySql的新手,但不幸我仍然不知道如何使用PDO :) – Kamilah 2014-12-04 16:20:54

0

你有你的回音输出的几个误区..

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

你已经忘记了每个HTML元素的单引号-attribute然后在多输入元素的末尾更大...

试试这个:

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

我做了之前但仍然不起作用。我的添加按钮完美地工作,只是更新和删除按钮。 – Kamilah 2014-12-04 16:23:17