Avatar billede rubaek Mester
01. april 2020 - 11:28 Der er 5 kommentarer

Hjælp til forståelse af POST[noget]

Jeg er ved at lærer hvordan man retter på en side og gemmer resultatet i en mysql database.
Jeg har lave følgende 2 dokumenter (1. med nogle tal der skal ind i en database, 2. filen der sætter data ind i basen)
Men der kommer ingen data fra den første fil over i den næste?
Hvad gør jeg forkert?

Tabel med tal og tekst.
<?php
include'../includes/connection.php';
for ($x = 0; $x <= 3; $x++) {
?>
<!DOCTYPE html>
<html>
<body>

<form role="form" method="post" action="update_test_onsdag.php">
<table style="width:100%">

  <tr><TD>ID</td>
    <?PHP
echo '<td><input class="form-control" placeholder="Indst tal'.$x.'" name="id" value='.$row['id'].'>The number is: '.$x.' <br></td>';
?>
  </tr><tr><TD>Navn</td>
<?PHP   
  echo '<td><input class="form-control" placeholder="Indst fnavn'.$x.'" name="fnavn" value='.$row['fnavn'].'>Navnet er: <br></td>'; 
?>
</tr><tr><TD>enavn</td>
<?PHP   
  echo '<td><input class="form-control" placeholder="Indst enavn'.$x.'" name="enavn" value='.$row['enavn'].'>Navnet er: <br></td>'; 
?>
</tr><TR><TD><BR></TD></TR>
</table>

<?PHP
}                   
?>                   
<button type="submit" formmethod="post">Opdater data</button>
</body>
</html>

Side der lægger data i mysql.
<?PHP
include'../includes/connection.php';
echo 'id'.$POST["id"];
echo 'fnavn'.$POST["fnavn"];
echo 'enavn'.$POST["enavn"];

/* Opret et prepared statement */
if ($stmt = $db->prepare('INSERT INTO `test` (`fnavn`, `enavn`,
`id`) VALUES (?, ?, ?)')) {
 
/* Bind parametre */
$stmt->bind_param('ssi', $fornavn, $efternavn, $id);
 
/* St vrdier p parametrene */
$id = $_POST['id']; 
$fornavn = $_POST['fnavn'];
$efternavn = $_POST['enavn'];

/* Eksekver foresprgslen */
$stmt->execute();
/* Luk statement */
$stmt->close();
} else {
/* Der er opstet en fejl */
echo 'Der opstod en fejl i erklringen: ' . $db->error;
}
?>
Avatar billede Rune1983 Ekspert
01. april 2020 - 13:12 #1
Vil mene du mangler en </form> efter din </table>
Avatar billede Rune1983 Ekspert
01. april 2020 - 13:14 #2
Du har også en masse body og html tags inde i din for loop. Det gør den opretter de tags for record inde i dit loop ... det skal udenfor. Ligesom din Form start tag
Avatar billede rubaek Mester
01. april 2020 - 14:15 #3
Jeg har prøvet at ændre noget, men stadig samme resultat. Ingen data kommer med over.

<?php
include'../includes/connection.php';
?>
<!DOCTYPE html>
<html>
<body>

<form role="form" method="post" action="update_test_onsdag.php">
<table style="width:100%">
 
<?php for ($x = 0; $x <= 3; $x++) {
echo '<tr><TD>ID</td><td>
<input class="form-control" placeholder="Indst tal'.$x.'" name="id" value='.$row['id'].'>The number is: '.$x.' <br></td></tr><tr><TD>Navn</td><td>
<input class="form-control" placeholder="Indst fnavn'.$x.'" name="fnavn" value='.$row['fnavn'].'>Navnet er: <br></td></tr><tr><TD>enavn</td><td>
<input class="form-control" placeholder="Indst enavn'.$x.'" name="enavn" value='.$row['enavn'].'>Navnet er: <br></td>'; 
}                   
?> 
</tr><TR><TD><BR></TD></TR>
</table>

<button type="submit" formmethod="post">Opdater data</button>
    </form>
  </body>
</html>
Avatar billede Xelot Juniormester
01. april 2020 - 17:34 #4
Dit anførselstegn skal en tak mod højre..

/* Opret et prepared statement */
if ($stmt = $db->prepare('INSERT INTO `test` (`fnavn`, `enavn`,
`id`) VALUES (?, ?, ?)')) {


Bliver til

/* Opret et prepared statement */
if ($stmt = $db->prepare('INSERT INTO `test` (`fnavn`, `enavn`,
`id`) VALUES (?, ?, ?))’) {
Avatar billede Xelot Juniormester
01. april 2020 - 17:39 #5
Desuden er der en ) for meget..


/* Opret et prepared statement */
if ($stmt = $db->prepare('INSERT INTO `test` (`fnavn`, `enavn`,
`id`) VALUES (?, ?, ?)’) {
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester