使用html表单和php从MySql数据库检索数据
我是php新手,我读过几乎所有的论坛,但没有结果!!!我正在尝试使用html表单和php文件从mySql数据库中检索一些数据。名为choose.htm的html表单如下所示:使用html表单和php从MySql数据库检索数据,php,Php,我是php新手,我读过几乎所有的论坛,但没有结果!!!我正在尝试使用html表单和php文件从mySql数据库中检索一些数据。名为choose.htm的html表单如下所示: <form name="choose" method = "POST" action = search.php> <table> <tr> <tr><td height="3"></td></tr>
<form name="choose" method = "POST" action = search.php>
<table>
<tr>
<tr><td height="3"></td></tr>
<td width="60"><font1>Denomination</font1></td>
<td><Select name = denom>
<option value="" selected>All</option>
<option value="half">Half Cents</option>
<option value="large">Large Cents</option>
<option value="bust">Bust Dollars</option>
<option value="morgan">Morgan Dollars</option>
</Select></td></tr>
<tr>
<tr><td height="3"></td></tr>
<td width="60"><font1>Year</font1></td>
<td><Select name = year>
<option value="" selected>All</option>
<option value="1793"><font4>1793</font></option>
<option value="1794">1794</option>
<option value="1795">1795</option>
<option value="1796">1796</option>
</Select></td></tr>
<tr>
<tr><td height="3"></td></tr>
<td width="60"><font1>Picture</font1></td>
<td><Select name = picture>
<option value="" selected>All</option>
<Option value="liberty">Liberty Cap</Option>
<Option value="draped">Draped Bust</Option>
<Option value="classic">Classic Head</Option>
<Option value="chain">Chain Reverse</Option>
</Select></td></tr>
<tr><td height="3" colspan="2"></td></tr>
<tr><td><font1>Text</b></font1></td>
<td><input name=text type=text></td></tr>
</Select></td></tr>
<tr><td><input name=look type=submit value=Submit></td></tr>
</form>
<html>
<body>
<?php
$username="root";
$password="";
$database="xxxxxxxx";
mysql_connect(localhost,$xxxxxx,$xxxxxx);
@mysql_select_db($database) or die( "Unable to select database");
$query="SELECT * FROM coins";
$result=mysql_query($query);
$num=mysql_numrows($result);
mysql_close();
echo "<b><center>US Coins</center></b><br><br>";
$i=0;
while ($i < $num) {
$denom=$_POST["denom"];
$year=$_POST["year"];
$picture=$_POST["picture"];
$text=$_POST["text"];
echo "$denom<br>Year: $year<br>Picture: $picture<br>Text: $text<br><br>";
$i++;
}
?>
</body>
</html>
面额
全部的
半美分
大仙
破产美元
摩根美元
年
全部的
1793
1794
1795
1796
图画
全部的
自由帽
波浪头像
经典头
倒链
正文
名为search.php的php文件如下所示:
<form name="choose" method = "POST" action = search.php>
<table>
<tr>
<tr><td height="3"></td></tr>
<td width="60"><font1>Denomination</font1></td>
<td><Select name = denom>
<option value="" selected>All</option>
<option value="half">Half Cents</option>
<option value="large">Large Cents</option>
<option value="bust">Bust Dollars</option>
<option value="morgan">Morgan Dollars</option>
</Select></td></tr>
<tr>
<tr><td height="3"></td></tr>
<td width="60"><font1>Year</font1></td>
<td><Select name = year>
<option value="" selected>All</option>
<option value="1793"><font4>1793</font></option>
<option value="1794">1794</option>
<option value="1795">1795</option>
<option value="1796">1796</option>
</Select></td></tr>
<tr>
<tr><td height="3"></td></tr>
<td width="60"><font1>Picture</font1></td>
<td><Select name = picture>
<option value="" selected>All</option>
<Option value="liberty">Liberty Cap</Option>
<Option value="draped">Draped Bust</Option>
<Option value="classic">Classic Head</Option>
<Option value="chain">Chain Reverse</Option>
</Select></td></tr>
<tr><td height="3" colspan="2"></td></tr>
<tr><td><font1>Text</b></font1></td>
<td><input name=text type=text></td></tr>
</Select></td></tr>
<tr><td><input name=look type=submit value=Submit></td></tr>
</form>
<html>
<body>
<?php
$username="root";
$password="";
$database="xxxxxxxx";
mysql_connect(localhost,$xxxxxx,$xxxxxx);
@mysql_select_db($database) or die( "Unable to select database");
$query="SELECT * FROM coins";
$result=mysql_query($query);
$num=mysql_numrows($result);
mysql_close();
echo "<b><center>US Coins</center></b><br><br>";
$i=0;
while ($i < $num) {
$denom=$_POST["denom"];
$year=$_POST["year"];
$picture=$_POST["picture"];
$text=$_POST["text"];
echo "$denom<br>Year: $year<br>Picture: $picture<br>Text: $text<br><br>";
$i++;
}
?>
</body>
</html>
我在数据库中获得了行数的输出,并选择了以下选项:
一半
年份:1793
图片:
正文:
一半
年份:1793
图片:
正文:
。。。。。。。。继续
我解决不了这个问题。我们将非常感谢所有的帮助
Sarp
$\u POST
包含与表单一起提交的值。没有理由在循环中打印它,因为在您的情况下,每个键都有一个值。如果您想从MySQL结果中输出数据,您需要在while
循环中使用类似MySQL\u fetch\u array
的东西,然后输出此返回的每个数组的值
一个很好的起点是,它包含一个工作示例,您可以从中轻松推断基本情况(即使您不想使用TFM)。如果您想找到错误,您需要一些更好的代码 1) -将HTML代码放在该表单中,然后首先修复所有错误。
2) 在启动HTML之前解析所有PHP代码。否则,用户将在一秒钟内看到加载页面的一半。而且还不太干净。
3) @mysql\u select\u db($database)或die()错误。处理PHP错误
4) 使用
mysql\u fetch\u assoc
而不是mysql\u numrows
您可以感谢我稍后清理了您混乱的代码
<?php
$host = 'localhost';
$username="root";
$password="";
$database="xxxxxxxx";
$connection = @mysql_connect($host,$username,$password);
$selection = @mysql_select_db($database, $connection);
if(!$connection || !$selection){
echo 'Connection failed. Contact webmaster and ask if his connection settings are okay.';
}
$query = "SELECT * FROM coins";
$mysqlquery = mysql_query($query);
if($mysqlquery){ // Query succeed! :D
$result = mysql_fetch_assoc($mysqlquery); // We'll parse em later
}
else
{
echo 'MySQL Query failed! Give the webmaster a slap for his bad coding.';
}
mysql_close();
// We've handeled all the PHP stuff, now we can get started with printing everything
?>
<html>
<body>
<?php
echo '<b><center>US Coins</center></b><br><br>'; // This HTML code needs cleanup too
$i = 0;
while($i < $num){
echo htmlspecialchars($_POST['denom']).'<br>Year: '. htmlspecialchars($_POST['year']) .'<br>Picture: '. htmlspecialchars($_POST['picture']) .'<br>Text: '. $_POST['text'] .'<br><br>';
$i++;
}
?>
</body>
</html>
如果数据库中没有任何数据,查询将返回空结果。 因此,确保数据库中有一些数据 试试这样的
$num=mysql_fetch_array(mysql_query("select * from coins"))
while ($i<$num) {
echo $num . "<br />";
}
$num=mysql\u fetch\u数组(mysql\u查询(“从硬币中选择*))
而($ithHTML属性name
需要引号,例如name=“foo”
notname=foo
@PatrickLorio-不正确。在这种情况下,引号是可选的。它们是很好的样式,但不是必需的。就像不将标记大写或在属性和值之间加空格一样。@PatrickLorio不是必需的,但与f***一样难看。请不要评判我。这是我从n上的教程中学到的et…亲爱的bkconrad,确实非常感谢你提到的手册。我从中学到了很多东西。但是,我仍然对如何使用html表单以及如何将表单中的值与php结果文件相结合感到困惑。亲爱的bkconrad,确实非常感谢你提到的手册。我从中学到了很多东西。但是,我仍然对如何使用h感到困惑tml表单,并将其中的值与php结果文件相结合。——SarpThanks差异很大,为什么要等到以后再感谢呢!我学到了很多东西,但问题是您键入的查询返回空。。