如何使用$ _Get将其值存储在数据库中?

时间:2012-12-15 16:51:46

标签: php mysql get

我想显示“超级”用户负责的所有用户。然后,“超级”用户可以通过单击其用户ID向任何用户发送评论。

显示所有用户的第一部分工作正常!我的问题在于超级用户发送评论。我想将用户ID(即suid)存储在数据库中。所以我想使用$_Get函数。但是当我尝试它时,数据库中没有任何存储。我想我犯了一个错误。那么有人可以帮助我吗?

这是向超级用户显示所有用户的代码:

    <?php

session_start();?>
<?php
require("noCache.php");
$uid=$_SESSION['uid'];

?>
<html>
<!DOCTYPE html>
<html lang="en">
<head>
<title>Send a comment</title>
<meta charset="utf-8">
<link rel="stylesheet" href="css/reset.css" type="text/css" media="all">
<link rel="stylesheet" href="css/layout.css" type="text/css" media="all">
<link rel="stylesheet" href="css/style.css" type="text/css" media="all">
<script type="text/javascript" src="js/jquery-1.4.2.js" ></script>
<script type="text/javascript" src="js/cufon-yui.js"></script>
<script type="text/javascript" src="js/cufon-replace.js"></script>
<script type="text/javascript" src="js/Myriad_Pro_400.font.js"></script>
<script type="text/javascript" src="js/Myriad_Pro_700.font.js"></script>
<script type="text/javascript" src="js/Myriad_Pro_600.font.js"></script>
</head>


<body>
<div class="main">

    <header>
        <div class="wrapper">
            <h1><a href="index.php" id="logo"> Biz</a></h1>

        </div>
        <nav>
            <ul id="menu">
                <li class="alpha"><a href="index.php"><span><span>Home</span></span></a></li>
                <li><a href="About.html"><span><span>About</span></span> </a></li>
                <li><a href="Projects.html"><span><span>Projects</span></span></a></li>
                <li><a href="Contacts.php"><span><span>Contacts</span></span></a></li>
                <li class="omega"><a href="Services.html"><span><span>Services</span></span></a></li>
            </ul>
        </nav>
        </br></br>

</header>


<head>
<!-- CSS Stylesheet -->
<style type="text/css">
html{

}
body{
    text-align:center;

}

</style>
</head>
<?php
$dbh=mysql_connect("localhost", "root", "hahaha1") or die (mysql_error());
mysql_select_db ("senior");
$result = mysql_query("SELECT * FROM sensorusers where uid=$uid");
echo "<html><body>";
echo "<table cellspacing=10 cellpadding=5 ><tr> <th>ID</th><th>Name</th><th>Username</th><th>Password</th><th>Date of Registeration</th><th>Phone</th></tr>";
while ($row = mysql_fetch_array($result))
{   echo "<form method='post' action='sendcomment.php'>";
    echo "<tr><td><input type='submit' name='suid' value='".$row['suid']."' /></td>";
    echo "<td>" . $row['name'] . "</td>";
    echo "<td>" . $row['dusername'] . "</td>";
    echo "<td>" . $row['password'] . "</td>";
    echo "<td>" . $row['date'] . "</td>";
    echo "<td>" . $row['phone'] . "</td></tr></form>";
    $_GET['suid'] = $row['suid'];
}

echo "</table></body></html>";
mysql_close($dbh);
?>
<html>
<body>
<!-- CSS Stylesheet -->
<style type="text/css">

body {

    font-family:"Andalus"
    font: 16px ;
    color:black;
    padding: 30px 5px;
    text-align: center;
}

</style></body></html> 

以下是我想问的部分:

echo "<table cellspacing=10 cellpadding=5 ><tr> <th>ID</th><th>Name</th><th>Username</th><th>Password</th><th>Date of Registeration</th><th>Phone</th></tr>";
while ($row = mysql_fetch_array($result))
{   echo "<form method='post' action='sendcomment.php'>";
    echo "<tr><td><input type='submit' name='suid' value='".$row['suid']."' /></td>";
    echo "<td>" . $row['name'] . "</td>";
    echo "<td>" . $row['dusername'] . "</td>";
    echo "<td>" . $row['password'] . "</td>";
    echo "<td>" . $row['date'] . "</td>";
    echo "<td>" . $row['phone'] . "</td></tr></form>";
    $_GET['suid'] = $row['suid'];
}

解决方案:

谢谢大家的帮助。我修复了代码。我使用方法post第一次保存suid的值。然后我将其打印为隐藏输入。最后,我将隐藏输入的值保存在sql中,它可以工作!

4 个答案:

答案 0 :(得分:1)

你有POST我在你的代码中看不到GET,如果你使用方法GET或POST,它依赖于你的html输入(你没有发布它们)。 如果您的方法是GET,那么您使用GET

但请尝试使用此

     if(isset($_POST['submit'])){

而不是

   if($submit){

编辑。

您正在使用method='post' 那么你必须使用POST而不是GET

EDIT2: 你的sql中有错误,你使用了VALUE,它应该是VALUES

而不是

 $place="INSERT INTO comments VALUE

将其替换为

 $place="INSERT INTO comments (columns here ,..., ,..) VALUES

答案 1 :(得分:1)

如何使用$_GET
将数据放在URL中,如下所示:

sendcomment.php?suid=blahblahblah

然后您可以使用$_GET,如下所示:

$suid = $_GET['suid']

目前,您的代码使用POST发送suid
或者改变你的表格方法。


echo "<form method='post' action='sendcomment.php?suid=".$row['suid']."'>";

答案 2 :(得分:1)

您的代码中存在多个问题。我会尝试列出最大的一些,但可能仍会遗漏一些。

代码1 -
问题1 -
您有多个<html></html><head></head><body></body>块。

<html>
...
<head>
...
</head>
<body>
...
<head>
...
</head>
...
echo "<html><body>";
...
echo "...</body></html>";
...
<html>
<body>
...
</body>
</html>

第2期 -
您的<form>位于<td>块附近,无效,因此不会POST正常。它需要在表格<form><table></table></form>附近,或在单元格<td><form></form></td>内。

echo "<table cellspacing=10 cellpadding=5 ><tr> <th>ID</th><th>Name</th><th>Username</th><th>Password</th><th>Date of Registeration</th><th>Phone</th></tr>";
while ($row = mysql_fetch_array($result))
{   echo "<form method='post' action='sendcomment.php'>";
    echo "<tr><td><input type='submit' name='suid' value='".$row['suid']."' /></td>";
    echo "<td>" . $row['name'] . "</td>";
    echo "<td>" . $row['dusername'] . "</td>";
    echo "<td>" . $row['password'] . "</td>";
    echo "<td>" . $row['date'] . "</td>";
    echo "<td>" . $row['phone'] . "</td></tr></form>";
    $_GET['suid'] = $row['suid'];
}

echo "</table></body></html>";

第3期 -
您滥用$_GET并且它超出了<form></form>标记。 $_GET用于从url获取价值。

$_GET['suid'] = $row['suid'];

代码2 -
问题1 -
您正在设置$id1=$_GET["suid"];,但在代码#1的表单中,您使用的是method="post"

$id1=$_GET["suid"];

第2期 -
当您从代码#1发布到代码#2(<form><input type='submit' name='suid' value='".$row['suid']."' /></form>)时,您只发送name='suid',所以$_GET&amp; $_POST

中不会设置INSERT个变量
$id1=$_GET["suid"];
...
$name=$_POST['sent_by'];
$id=$_POST['hidden_id'];
$id2=$_POST['hidden_id2'];
$message=$_POST['message'];
$submit= $_POST['submit'];
...

第3期 -
您在查询中有错误。它应该是VALUES,而不是VALUE,你应该在`INSERT INTO注释(id,name,message,receiver,sender,date,time)之前包含列VALUES('','$ name' , '$消息', '$ ID', '$ ID1', '$日期', '$时间')

$place="INSERT INTO comments VALUE('','$name','$message','$id','$id1','$date','$time')";
$run = mysql_query("$place");

第4期 -
您表单中的所有value=都缺少价值周围的引号''

<form action="sendcomment.php" method="post">
    <input type ='hidden' name='hidden_id' value = <?php print $uid; ?> >
    <input type ='hidden' name='hidden_id2' value = <?php print $id1; ?> >
    Name : <input type ='name' name='sent_by'  value = <?php print $username; ?>></br> 
     Message: <textarea name='message'></textarea></br> 
     <input type='submit' value='submit' name="submit" /></br>
</form>

我知道您已经接受了答案,但是您仍然需要解决很多代码问题。这些都会导致您的表单出现问题并插入数据库。另外,它们会给你带来更多问题。

答案 3 :(得分:0)

只是这个

$id1=$_GET["suid"];

替换为

$id1=$_POST["suid"];

当使用$ _GET变量shuld在url中时。 当使用$ _POST变量时,url

中没有显示