对不起,我知道这个新手问题,但我目前只有在通过PHP等使用echo命令时才能看到我的SQL结果。
现在,我可以很好地获取信息,但我希望查询结果以一种形式显示,例如
而不是:-
$loggedinuser = $session->username;
//$query = "SELECT surname, firstname FROM PASSENGER WHERE username = '$jared'";
$query2 = "SELECT p.surname, f.destination FROM PASSENGER p, FLIGHT_INFO f WHERE p.username = '$loggedinuser' AND p.flightNo = f.flightNo";
$result = mysql_query($query2);
while($row = mysql_fetch_array($result))
{
echo $row['surname'] ." ". $row['destination'];
}
echo mysql_error();
我想以HTML形式打印SQL结果…例如,一个遵循以下约定的表单:-
Surname: <input type="text" name="firstname" value="echo $row['surname']/>
如果你看到我是从哪里来的。使用表单显示mySQL结果真的是一种糟糕的做法吗?还是可以这样做?如果不是,你建议我用什么方式打印数据?在某种类型的表中,但是我怎么能使用字段呢?
问候,
汤姆。
像这样的作品:-
<?php
$loggedinuser = $session->username;
//$query = "SELECT surname, firstname FROM PASSENGER WHERE username = '$jared'";
$query2 = "SELECT p.surname, f.destination FROM PASSENGER p, FLIGHT_INFO f WHERE p.username = '$loggedinuser' AND p.flightNo = f.flightNo";
$result = mysql_query($query2);
while($row = mysql_fetch_array($result))
{
"<form>"
<input type="text" name="firstname" value="<?php echo {$row['surname']} ?>" disabled />
"</form>"
}
echo mysql_error();
?>
在下面的代码中,如何在回声之间添加新行?
echo ' Surname: <input type="text" name="surname" value="'.$row['surname']. "'" disabled /> ";
echo 'Forename: <input type="text" name="surname" value="'.$row['forename']. "'" disabled />";
echo 'Email Address: <input type="text" name="surname" value="'.$row['emailAddress']. "'" disabled />";
echo 'Preference ID: <input type="text" name="surname" value="'.$row['dob']. "'" disabled />";
echo 'Seat Number: <input type="text" name="surname" value="'.$row['seatNo']. "'" disabled />";
echo 'Group ID: <input type="text" name="surname" value="'.$row['groupID']. "'" disabled />";
<input value="<?php echo $row["firstname"]; ?>">
<input type="text" name="firstname" value="<?php print($row['surname']); ?>"/>
或
<input type="text" name="firstname" value="<?=$row['surname']?>"/>
在不允许用户更改这些值之前,使用任何东西来显示信息都是好的。您还可以使用表/div或任何其他您能想到的东西进行显示。表单也是一种非常好的方法(imo)。此外,您可以使用disabled
属性,不允许任何人更改您在表单输入框中输入的值。
<input type="text" name="firstname" value="<?php echo {$row['surname']} ?>" disabled />
编辑在此处设置while循环:
while($row = mysql_fetch_array($result)) {
echo "Surname: <input type='"text'" name='"firstname'" value='"" . {$row['surname']} . "'" disabled />"
}
如果您只需要以只读方式显示数据,而不是真正想要"显示查询",则需要以可读的方式打印所述查询的结果。我确信在某些情况下,您需要将SQL打印给用户,但这些情况可能相当少。正如其他人所说,允许用户提交任何类型的SQL并使用它也是一种非常糟糕的做法——口号是任何用户输入都应始终被视为恶意用户输入——在将其发送到数据库之前,必须验证并净化所有内容。
话虽如此,看起来你只是想显示一个包含查询结果的表单,而你已经非常接近了。唯一的问题是,如果你的查询返回2行或更多行,为了让PHP自动将提交的值绑定到一个数组,你必须按顺序命名它们,使它们显示为:firstname[0]
、firstname[1]
等等。只需启动一个int,每次都可以递增:
$loggedinuser = $session->username;
$query2 = "SELECT p.surname, f.destination FROM PASSENGER p, FLIGHT_INFO f WHERE p.username = '$loggedinuser' AND p.flightNo = f.flightNo";
$result = mysql_query($query2);
$i = 0;
while($row = mysql_fetch_array($result)) {
$surname = $row['surname'];
$destination = $row['destination'];
echo '<input type="text" name="firstname[$i]" value="$surname" />';
echo '<input type="text" name="destination[$i]" value="$destination" />';
$i++;
}
假设您的查询中显示了两行,以下是结果(添加了格式):
<input type="text" name="firstname[0]" value="Bill" />
<input type="text" name="destination[0]" value="Rococo" />
<input type="text" name="firstname[1]" value="Mandy" />
<input type="text" name="destination[1]" value="Philadelphia" />
编辑:要在输出的HTML中添加换行符,只需为每条换行符添加一个<br />
标记即可:
echo '<input type="text" name="firstname[$i]" value="$surname" /><br />';
$query2 = "SELECT p.surname, f.destination FROM PASSENGER p, FLIGHT_INFO f WHERE p.username = '$loggedinuser' AND p.flightNo = f.flightNo";
$result = mysql_query($query2);
while($row = mysql_fetch_array($result))
{
echo '<form>';
echo ' Surname: <input type="text" name="surname" value="'.$row['surname'].'/><br/>';
echo ' Below is my Destination<br/>';
echo ' Destination: <input type="text" name="surname" value="'.$row['destination '].'/>';
echo '</form>';
}
试试这个