Update a MySQL database field data with HTML form

2020-05-03 12:25发布

So I am trying to update a database field using a html form and some PHP code, but I cannot get it to work, it throws no errors but does not update the field?, Im not sure if its because im also echoing that field on the webpage? All it seems to do is print the fail message.

HTML:

<html>
    <form method="post" name="update" action="updateform.php" />

    Description:

    <input type="text"  name="description" />

            <input type="submit" name="Submit" Value="update" />
    </form>

    </html>

PHP:

<?php 
mysql_connect("localhost", "root", "*****") or die("Connection Failed"); 
mysql_select_db("Days")or die("Connection Failed"); 
$description = $_POST['description']; 
$query = "UPDATE test SET description = '$description' ";
if(mysql_query($query)){ echo "updated";} else{ echo "fail";} ?> 

My echo (working):

             <?php
include("include/session.php");
//connect to the server
$connect = mysql_connect("localhost","root","*****");

//connect to the database
mysql_select_db("days");

//query the database
$query = mysql_query("SELECT * FROM hobby WHERE id = '1' ");

//ferch the results / convert results into an array

    WHILE($rows = mysql_fetch_array($query)):

        $description = $rows['description'];

    echo "<div style ='font:15px/21px Arial,tahoma,sans-serif;color:#cf5c3f     </h>'>$description";
    endwhile;






?>

标签: php html sql
2条回答
\"骚年 ilove
2楼-- · 2020-05-03 13:04
UPDATE table_name
SET column1=value, column2=value2,...
WHERE some_column=some_value

Update query sample but i don't get your sql ..you missing your where clause

查看更多
Summer. ? 凉城
3楼-- · 2020-05-03 13:16

You need to use WHERE Condition whenever you try to update something to table.

Here's my code :

test.html

<html>
<form method="post" action="updateform.php" />

Name : <input type="text"  name="name" /> </br>

<input type="submit" name="Submit" value="update" />

</form>
</html>

updateform.php

<?php 
$name = $_POST['name'];
$connection = mysqli_connect("localhost", "root", "Enter Passwd Here","Enter db_name here"); 
if(mysqli_connect_errno())
{
    echo "failed to connect " . mysqli_connect_error();
}

if(isset($_POST['Submit'])) 
{
    $query = "UPDATE `test_table` SET `name` = '$name' WHERE `cost` = 500"; 
    $result = mysqli_query($connection,$query); 

    if (!$result) {
    die('Error' . mysqli_error($connection));
    }
    else
    {
    echo "Successfully updated";
    }
}
?>

To demonstrate I've created a database & table test_table with 3 field. (id,name,cost)

This is the structure of my table :

enter image description here

Before executing the above script, our table contains this datas

enter image description here

After executing the script, the name in second row changes from ramu to shiva since we specified cost as 500 in WHERE Condition.

$query = "UPDATE `test_table` SET `name` = '$name' WHERE `cost` = 500";


enter image description here

查看更多
登录 后发表回答