php从mySQL数据库中检索数据到表单

时间:2014-04-16 14:14:29

标签: php html mysql html5

我有一个注册表单,我喜欢使用mySQL查询将数据检索到表单输入字段。

这是很长形式的一部分:

<form class="form-horizontal" id="registration" method='post' action='ConnectDB.php' onsubmit='return ValidateForm(this);'>
    <fieldset>
        <h1 style="margin-top: px;float:right; color:#62A1D5"><br><b>registration</b></h1>
        <table id="TBackGround">
            <td style="padding-left:10px; padding-right:10px;">
                <p id="pd"  style="margin-top:5px; margin-right:2px; font-size:16px; text-decoration:underline"><b><br>details:</b><p> 
                <p style="line-height: 1.3em" class="details">
                <div class="control-group"> 
                    <label class="control-label">ID </label>
                    <input type="text"name="studentID"  align= "right" class="textbox" ><span id="errorID"></span> <br/>  
                </div>
                <div class="control-group"> 
                    <label class="control-label" >First name</label>
                    <input type="text" name="Fname"  class="textbox" ><span id="errorFirstName"> <br/>
                </div>
</form>

如何将要重新加载的数据设置为表单的输入字段? 我有一个查询来检索记录的ID,但我不知道如何将整个查询结果设置为字段。

我的php查询:

<?php 

if(isset($_POST['submit']))
{
$query = $_POST['query']; 
$min_length = 1;
if(strlen($query) >= $min_length)
{ 
$query = htmlspecialchars($query); 
$query = mysql_real_escape_string($query); 
echo "<table border='0' width='300' align='center' cellpadding='1' cellspacing='1'>";
echo "<tr align='center' bgcolor='#002C40'> 
?>
<td height='35px' width='150px'>id</td> <td>first name</td>

</tr>"; 
$raw_results = 

mysql_query("SELECT * FROM student WHERE (`idStudent` LIKE '%".$query."%') OR (`FirstName` LIKE '%".$query."%')"); 
if(mysql_num_rows($raw_results) > 0)
{
while($results = mysql_fetch_array($raw_results))
{ 

echo "<tr align='center' bgcolor='#0f7ea3'>

 <td height='25px'> "
 .$results['idStudent']."</td> <td>".$results['FirstName']."</td>






</tr>" ;
}

}
else{ 
echo "<tr align='center' bgcolor='#6C0000'>

<td colspan='2' height='25px'>No results</td><tr>"; 
echo "</table>"; 
} 
}
else{ 
echo "Minimum length is ".$min_length;
}} 

?>

2 个答案:

答案 0 :(得分:1)

您需要从php文件输出表单的布局。 这个小例子可以帮到你。

文件register.php

if (!isset($_POST['submit'])) {
    mysql_connect();
    $res = mysql_query("SELECT * FROM users WHERE user_id=1");
    $user = array_map('htmlspecialchars', mysql_fetch_assoc($res));

    echo <<<CUT
<form action="register.php" method="post" >
    <lable>Name:</label> <input type="text" name="name" value="{$user['name']}" />
    <lable>Country:</label> <input type="text" name="name" value="{$user['country']}" />
    <input type="submit" name="submit" value="Submit" />
</form>
CUT;
} else {
    //handle submited data here
}

答案 1 :(得分:0)

好的,基础知识!

您有一个带有输入元素的表单。通过将表单发送到服务器,服务器端脚本可以获取表单元素的值。

看看这个:

<form action="the_script_location.php" method="post">
<input type="text" name="element1" />
<input type="submit" name="send" />
</form>

在服务器端脚本上,您现在可以从以下形式获取值:

<?php
if( isset( $_POST[ 'send' ] ) ){
    $var = $_POST[ 'element1' ];
    //now you can use the var for an query to your database
    //please note: this very basic, without any security of injection
    $res = mysql_query( 'SELECT `any` FROM `anyTable` WHERE `any` LIKE \'%'.$var.'%\'' );
    if( mysql_num_row( $res ){
        $row = mysql_fetch_assoc( $res ); //get one (first) result
    }
}
?>

现在您可以更新表单:

<form action="the_script_location.php" method="post">
<input type="text" name="element1" value="<?php isset( $row[ 'your_filed_in_database' ] ) ? $row[ 'your_filed_in_database' ] : '' ?>" />
<input type="submit" name="send" />
</form>