OurozZ OurozZ - 5 months ago 12
MySQL Question

Load data from MySQL database to HTML textboxes

I am still learning, can anyone help me, What wrong in my code?
I need to load when you click on the Load button program will search the database ID selected in the dropdown, and them bring the name .. etc and show it on textbox.
Sorry, for my English.

<?php

$servername = "localhost";
$username = "estgv15592";
$password = "estgv155922016";
$dbname = "estgv15592";
$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}


if(isset($_POST["loadbtn"]))
{

$id = (integer) $_POST["id"];

$query = "SELECT NOME, MORADA, PRECO FROM FICHA_DE_OBRA WHERE ID_FICHAOBRA = '$id' ";
$result = mysqli_query($conn, $query);
$details = mysql_fetch_array($result);

$nome = $details["NOME"];
$morada = $details["MORADA"];
$preco = $details["PRECO"];
}

$sql = "SELECT * FROM FICHA_DE_OBRA";

$result = mysqli_query($conn, $sql);

echo '<form id="form" method="post">';
echo "<select name ='id'>";
echo "<option value=''>Selecione NĂºmero ficha Obra</option>";

while($row = mysqli_fetch_array($result))

{
echo "<option value='" . $row['ID_FICHAOBRA'] . "'>" . $row['ID_FICHAOBRA'] . "</option>";
}
echo "</select>";

$conn->close();
?>


<input type="submit" value="Load" name="loadbtn">
<table width="300" border="0">
<tr>
<td>Name</td>
<td><input type="text" name="upName" style="text-align:right" value="<?php echo $nome;?>"/></td>
</tr>
<tr>
<td>Cost</td>
<td><input type="text" name="upCost" style="text-align:right" value="<?php echo $morada;?>" /></td>
</tr>
<tr>
<td>Active</td>
<td><input type="text" name="upActive" style="text-align:right" value="<?php echo $preco;?>" /></td>
</tr>
</table>
</div>
<br/>

</form>

Answer

You are not using proper php tag: (e.g. <?php echo $preco;?>):

<tr>
  <td>Name</td>
  <td><input type="text" name="upName" style="text-align:right" value="<?php echo $nome; ?>"/></td>
</tr>
<tr>
  <td>Cost</td>
  <td><input type="text" name="upCost" style="text-align:right" value="<?php echo $morada; ?>" /></td>
</tr>
<tr>
  <td>Active</td>
  <td><input type="text" name="upActive" style="text-align:right" value="<?php echo $preco; ?>" /></td>
</tr>

Use mysqli_query and mysqli_fetch_array function and note that first argument in mysqli_query should be the connection object where you made the mistake:

$result = mysqli_query($conn, $query);    // first PHP block
$result = mysqli_query($conn, $sql);      // second PHP block

$details = mysqli_fetch_array($result);   // first PHP block
$row = mysqli_fetch_array($result)        // second PHP block

And move below lines to the top of your first PHP block, or $conn would be undefined in your first PHP block:

$servername = "localhost";
$username = "estgv15592";
$password = "your_password";
$dbname = "estgv15592";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}