在表单中打印mySQL查询

时间:2012-04-02 12:09:54

标签: php mysql html echo

很抱歉,我知道新手问题,但是我目前只有在通过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 />"; 

5 个答案:

答案 0 :(得分:5)

<input value="<?php echo $row["firstname"]; ?>">

答案 1 :(得分:1)

<input type="text" name="firstname" value="<?php print($row['surname']); ?>"/>

<input type="text" name="firstname" value="<?=$row['surname']?>"/>

答案 2 :(得分:1)

使用任何内容显示信息都很好,直到您不允许用户更改这些值。您还可以使用表格/ 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 />"
}

答案 3 :(得分:1)

如果您只需要以只读方式显示数据,则实际上并不想“显示查询”,您希望以可读的方式打印所述查询的结果。我确信在某些情况下您需要向用户打印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 />';

答案 4 :(得分:0)

    $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>';
       }

试试这个