[英]Print a mySQL query in a form
對不起,新手問題我知道,但是我目前只有在通過PHP等使用echo命令時才顯示mySQL結果。
現在,我能夠很好地獲取信息,但是我希望查詢的結果以例如形式出現
而不是 :-
$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之間添加新行?
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>';
}
嘗試這個
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.