在表单中打印mySQL查询


Print a mySQL query in a form

对不起,我知道这个新手问题,但我目前只有在通过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>';
       }

试试这个