Распечатайте запрос MySQL в форме


Извините, вопрос новичка, который я знаю, однако в настоящее время результаты MySQL отображаются только при использовании команды echo через 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))
{
echo $row['surname'] ." ". $row['destination'];
}

    echo mysql_error();

Я хотел бы распечатать результат SQL в форме HTML... например, такой, который следует соглашению: -

    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 />"; 
Author: Tom Gillespie, 2012-04-02

5 answers

<input value="<?php echo $row["firstname"]; ?>">
 5
Author: Madara Uchiha, 2012-04-02 12:14:43
<input type="text" name="firstname" value="<?php print($row['surname']); ?>"/>

Или

<input type="text" name="firstname" value="<?=$row['surname']?>"/>
 1
Author: Housy, 2012-04-02 12:13:20

Использовать что-либо для отображения информации хорошо, пока вы не разрешите пользователям изменять эти значения. Вы также можете отображать с помощью таблиц/разделителей или чего-либо еще, что вы можете придумать. Формы тоже очень хороший метод (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 />"
}
 1
Author: hjpotter92, 2012-04-02 12:24:29

Если вам просто нужно отобразить данные только для чтения, вы на самом деле не хотите "показывать запрос", вы хотите распечатать результаты указанного запроса в удобочитаемом виде. Я уверен, что есть определенные случаи, когда вам нужно будет распечатать 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 />';
 1
Author: Mattygabe, 2012-04-02 14:52:52
    $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>';
       }

Попробуйте это

 0
Author: sujal, 2012-04-02 17:41:37