使用php

时间:2016-08-08 10:23:23

标签: php html mysql

我对mysql和php(主要是mysql)都非常新,我甚至不确定我是否掌握了所有的基础知识,因为我更像是一个边做边学的人。 因此,我的代码由网络上的不同解释组成,其中一些可能是错误的。 所以我试图从数据库中获取数据,将其放入html表单,编辑它,并使用新数据更新数据库。 到目前为止,数据已正确加载到表单中,并且通过大量的故障排除,我得出的结论是,即使上传工作也应该如此,除了字段为空。所以我想我的问题必须是从表单中获取数据到更新查询。

这是我的代码

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Untitled 1</title>
</head>

<body>
<?php
require 'connect.php';


$result = $db->query("SELECT * FROM test") or die ($db->error);

while($row = mysqli_fetch_array($result))
{

    $name = $row['name'];
    $school = $row['school'];
    $email = $row['email'];
    $grade = $row['grade'];
    $workshop = $row['workshop'];
    $id = $row['id'];
?>
<form method="post" action="#">
    <?=$id?>
    <input name="nameid" type="text" value="<?=$name?>">
    <input name="emailid" type="text" value="<?=$email?>">
    <input name="gradeid" type="text" value="<?=$grade?>">
    <input name="workshopid" type="text" value="<?=$workshop?>">
    <input name="schoolid" type="text" value="<?=$school?>">
<?php } 
session_start();
$_SESSION['storage'] = $_POST;
?>
<input name="update" type="submit" id="update" value="Update">
</form>


<?php
if(isset($_POST['update']))
{

    $link = mysqli_connect("localhost", "892847", "123456789", "892847");

    // Check connection
    if($link === false){
        die("Couldn't connect. " . mysqli_connect_error());
    }
    session_start();

    $name = $_SESSION['storage']['nameid'];
    $school = $_SESSION['school']['schoolid'];
    $email = $_SESSION['email']['emailid'];
    $grade = $_SESSION['grade']['gradeid'];
    $workshop = $_SESSION['workshop']['grade'];
    $id = $_SESSION['id'];


    $sql = "UPDATE test SET name = '$name', email = '$email', school = '$school', grade = '$grade', workshop = '$workshop' WHERE id = '8'";
    if(mysqli_query($link, $sql)){
        echo "Records added successfully. $name";
        print_r($_POST['nameid']);
    } else{
        echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
    }


    mysqli_close($link);
}
?>

</body>
</html>

我知道会话混乱看起来很奇怪,但我在某处读到了PHP脚本中没有的信息,除非你进行会话。

我真的很感激任何帮助 - 我一直在与它斗争大约48小时

1 个答案:

答案 0 :(得分:0)

这是一种基本方法,使用最简单的程序php。 首先,您将数据从mysql加载到php数组中,如下所示,假设您已经建立了连接,id是该特定行的ID

$row = mysql_fetch_array(mysql_query("SELECT * FROM test WHERE `id` = '$id'"));

找一种方法来确保该网页显示所需的ID,例如,您可以使用$id = $_GET[row];,在这种情况下,您的网址将为http://url?row=id 在html代码中使用echo如下

<form action="process.php" method="POST">
<input type="hidden" name="id" value="<?php echo $_GET['row']" ?>" >
<input type="text" name="nameid" value="<?php echo $row['nameid'] ?>" >
...
</form>

忘记会话,当你按下提交时,它应该将所有这些数据带入全局变量$ _POST或$ _GET中的process.php,具体取决于您在<form method>中选择的方法。

现在在process.php中,使用

$nameid = mysql_real_escape_string($_POST['nameid']);
$id = $_POST['id'];
$sql = mysql_query("UPDATE test SET `name_id` = '$nameid' WHERE `id` = '$id'");
if($sql) {
echo "update successful";
}

毋庸置疑,您需要在两个页面中使用数据库连接。