我在使用下面的当前代码时遇到问题。我试图保留用户输入的信息,使用PHP_SELF输入到a和b数据框中,但这不会发生。我想我可能必须在HTML代码中使用某种POST语句,但我不确定。此外,我试图使用isset()来确定是否正在输入BOTH字段,并且它似乎没有工作,因为每次调用die()。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<html>
<body>
<form method="post" action="<?php echo $PHP_SELF;?>">
<table align="center" border="0">
<tr>
<td>a:</td>
<td ><input type="text" VALUE="<?php $a ?>" name="a" size="6" maxlength="6"></td>
</tr>
<tr>
<td>b:</td>
<td ><input type="text" VALUE="<?php $b ?>" name="b" size="10" maxlength="10"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="Submit Order"></td>
</tr>
</table>
</form>
<?php
if(isset($_POST['a']) && isset($_POST['b'])){
$a = $_POST['a'];
$b = $_POST['b'];
$query = "SELECT * FROM DATA WHERE $a = DATA1 $b = DATA2";
$name= mysql_query($query) or die();
echo '<table border = 1>';
while($row = mysql_fetch_assoc($name))
{
echo '<tr>';
foreach($row as $cvalue) {
print '<td>'.$cvalue.'</td>';
}
echo '</tr>';
}
echo '</table>';
}
?>
答案 0 :(得分:0)
我会查看您的代码并查看我找到的内容。没有承诺。我可能找不到问题,但我可能会以其他方式提供帮助。
<tr>
<td>a:</td>
<td ><input type="text" VALUE="<?php $a ?>" name="a" size="6" maxlength="6" /></td>
</tr>
<tr>
<td>b:</td>
<td ><input type="text" VALUE="<?php $b ?>" name="b" size="10" maxlength="10" /></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="Submit Order" /></td>
</tr>
您应该自行关闭输入标记(使您更接近XHTML标准)。此外,<input>
控件中的PHP格式不正确。这些陈述应该是这样的:
<td ><input type="text" VALUE="<?php echo Sa; ?>" name="a" size="6" maxlength="6" /></td> // echo() statements!
<td ><input type="text" VALUE="<?php echo Sb; ?>" name="a" size="6" maxlength="6" /></td>
<td ><input type="text" VALUE="<?php echo Sc; ?>" name="a" size="6" maxlength="6" /></td>
<?php if(isset($_POST['a']) && isset($_POST['b'])){
或者,如果您只想调用isset()
<?php
if(isset($_POST['a'], $_POST['b'])){
$query = "SELECT *
FROM DATA
WHERE $a = 'DATA1' AND $b = 'DATA2'";
如果字段$ a和$ b引用字符串值,请确保正确引用了查询字符串。 但是,由于$ a和$ b是用户输入的内容,我相信你有点倒退。
$query = "SELECT *
FROM DATA
WHERE DATA1 = '$a'
AND DATA2 = '$b'";
啊,现在这更有意义了。如果DATA1和DATA2字段引用整数(int值),则查询将如下所示
$ query =“SELECT * 从数据 在哪里DATA1 = $ a AND DATA2 = $ b“;
至于以下代码片段...您没有使用$ cvalue作为关联数组。 PHP Manual: mysql_fetch_assoc()
如果您只想要值(而不是键和值),可以使用mysql_fetch_array()
while($row = mysql_fetch_assoc($name))
{
echo '<tr>';
foreach($row as $cvalue)
{
print '<td>'.$cvalue.'</td>';
}
}
echo '</tr>';
}
......这可能会对你有所帮助。
while($row = mysql_fetch_array($name))
{
echo '<tr>';
foreach($row as $cvalue) //Now you are cooking with gas.
{
echo '<td>'.$cvalue.'</td>';
}
echo '</tr>';
}
如果您有时间更改代码,请给mysqli函数一个机会。 PHP Manual: MySQLi
希望这不是太残酷。只是想帮忙。 : - )