Получить данные из базы данных в HTML-форму - PullRequest
0 голосов
/ 28 февраля 2012

enter image description here

У меня есть код для извлечения данных из базы данных в форму, но, похоже, он не работает.Код ниже - моя попытка, но она не работает.В настоящее время, когда я нажимаю кнопку отправки «восстановить розу», она ничего не делает ...

//if we have no errors, do the SQL
if (!$errors) {   

$latin_name = $_POST['latin_name'];

$stmt = $conn2->prepare("SELECT common_name, variety_name, colour, season_of_interest, hardiness, situation, soil_type,
price, stock_level, fragrance, ultimate_height FROM rosename WHERE latin_name = ?");

$stmt->bind_param('ssssssssdiss', $latin_name);

if ($result = $stmt->get_result()) {
    /* fetch associative array */
    echo "<form><input type='text' value='" . $row["common_name"] . "' name='latin_name' />";
    echo "<input type='text' value='" . $row["variety_name"] . "' name='soil_type' /></form>";
    } // i no I need to add more here...
    exit;
}

//put out the footer and then stop the rest of the script from running, so we don't display the rest of the form (this is after the form has been submitted)
require_once('footer.php');
exit;
}

//if we do have errors, show the error message
else {
  echo "<p>".$error_msg."</p>";
}}
?>

И вот моя форма:

<h1>Update Rose Item</h1>
  <ul class='register'>
      <li>
  <form action="updaterose.php" id="updaterose" method="post">
  <fieldset id="register">
        <label>Latin Name:<span class="small">Enter a Latin Name</span></label><input      name='latin_name' id='latin_name' type='text' value="<?=(isset($_POST['latin_name'])?  $_POST['latin_name']:"");?>" />
    <input type="submit" value="Retrieve Rose" name='retrieverose' /></br></br></br>
</form>

Код, запрошенный mariogl

  //connect to database
$conn2 = DB2();

  require_once('header_admin.php');

  if (isset($_POST['updaterose'])) 
  {

//detect if we have errors or not
$errors = false;
$error_msg = "Error, please try again";

1 Ответ

1 голос
/ 28 февраля 2012

Ваша проблема - первое условие, вы запрашиваете переменную с именем "Updaterose", которой не существует. Попробуйте это:

  if (isset($_POST['retrieverose'])) 
  {

    //detect if we have errors or not
    $errors = false;
    $error_msg = "Error, please try again";

    //if we have no errors, do the SQL
    if (!$errors) {   

        $latin_name = $_POST['latin_name'];

        $stmt = $conn2->prepare("SELECT common_name, variety_name, colour, season_of_interest, hardiness, situation, soil_type, price, stock_level, fragrance, ultimate_height FROM rosename WHERE latin_name = ?");

        $stmt->bind_param('s', $latin_name);
        $stmt->execute();

        if ($result = $stmt->get_result()) {
            /* fetch associative array */
            echo "<form><input type='text' value='" . $result["common_name"] . "' name='common_name' />";
            echo "<input type='text' value='" . $result["variety_name"] . "' name='variety_name' /></form>";
            // i no I need to add more here..
            exit;
        }

        //put out the footer and then stop the rest of the script from running, so we don't display the rest of the form (this is after the form has been submitted)
        require_once('footer.php');
        exit;
    }

    //if we do have errors, show the error message
    else {
        echo "<p>".$error_msg."</p>";
    }}

}

Исправления в скобках и bind_param ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...