Kan ikke styre opret post og ret post - funktionen update overskriver alle records

Jeg har det problem, at når jeg bruger ret-post, så opdatere funktionen alle id linier i databasen. Men når jeg bruger opret-post fungere funktionen som den skal og oprettet en post mere i databasen. Hvorfor overskriver min ret-post alle poster i databasen? Jeg smider lige koden med op herunder.
<!--Denne fil er opret-post.php-->
<?php include("../app.php");
$app = new minAwesomeApp;
if(!isset($_POST['navn']) || empty($_POST['navn'])){header("Location: opret.php?fejl=1"); die; }
if(!isset($_POST['adresse']) || empty($_POST['adresse'])){header("Location: opret.php?fejl=2"); die; }
if(!isset($_POST['postby']) || empty($_POST['postby'])){header("Location: opret.php?fejl=3"); die; }
if(!isset($_POST['telefon1']) || empty($_POST['telefon1'])){header("Location: opret.php?fejl=4"); die; }
if(!isset($_POST['telefon2']) || empty($_POST['telefon2'])){header("Location: opret.php?fejl=5"); die; }
if(!isset($_POST['email1']) || empty($_POST['email1'])){header("Location: opret.php?fejl=6"); die; }
if(!isset($_POST['email2']) || empty($_POST['email2'])){header("Location: opret.php?fejl=7"); die; }
if(!isset($_POST['foedt']) || empty($_POST['foedt'])){header("Location: opret.php?fejl=8"); die; }
if(!isset($_POST['tekst']) || empty($_POST['tekst'])){header("Location: opret.php?fejl=9"); die; }
// Indsætte data i vores database.
// DatabaseInsert( "medlemsliste", array('Navn','Email'), array('Daniel','[email protected]') )
$app->DatabaseInsert(
"medlemsliste",
array('navn','adresse','postby','telefon1','telefon2','email1','email2','foedt','tekst'),
array($_POST['navn'], $_POST['adresse'], $_POST['postby'], $_POST['telefon1'], $_POST['telefon2'], $_POST['email1'], $_POST['email2'], $_POST['foedt'], $_POST['tekst'])
);
header("Location: ../Medlemsliste/index.php");
die;
?>
<!--Denne fil er ret-post.php-->
<?php include("../app.php");
$app = new minAwesomeApp;
if(!isset($_POST['navn']) || empty($_POST['navn'])){header("Location: /Medlemsliste/ret.php?fejl=1" . "&ID=" . $_POST['ID']); die; }
if(!isset($_POST['adresse']) || empty($_POST['adresse'])){header("Location: /Medlemsliste/ret.php?fejl=2" . "&ID=" . $_POST['ID']); die; }
if(!isset($_POST['postby']) || empty($_POST['postby'])){header("Location: /Medlemsliste/ret.php?fejl=3" . "&ID=" . $_POST['ID']); die; }
if(!isset($_POST['telefon1']) || empty($_POST['telefon1'])){header("Location: /Medlemsliste/ret.php?fejl=4" . "&ID=" . $_POST['ID']); die; }
if(!isset($_POST['telefon2']) || empty($_POST['telefon2'])){header("Location: /Medlemsliste/ret.php?fejl=5" . "&ID=" . $_POST['ID']); die; }
if(!isset($_POST['email1']) || empty($_POST['email1'])){header("Location: /Medlemsliste/ret.php?fejl=6" . "&ID=" . $_POST['ID']); die; }
if(!isset($_POST['email2']) || empty($_POST['email2'])){header("Location: /Medlemsliste/ret.php?fejl=7" . "&ID=" . $_POST['ID']); die; }
if(!isset($_POST['foedt']) || empty($_POST['foedt'])){header("Location: /Medlemsliste/ret.php?fejl=8" . "&ID=" . $_POST['ID']); die; }
if(!isset($_POST['tekst']) || empty($_POST['tekst'])){header("Location: /Medlemsliste/ret.php?fejl=9" . "&ID=" . $_POST['ID']); die; }
if(!isset($_POST['ID']) || empty($_POST['ID'])){header("Location: /Medlemsliste/ret.php?fejl=9" . "&ID=" . $_POST['ID']); die; }
// Opdater noget i vores database
// DatabaseUpdate( "Medlemsliste", array('email'), array('[email protected]', 1), "WHERE id = ?" )
$app->DatabaseUpdate(
"medlemsliste",
array('navn','adresse','postby','telefon1','telefon2','email1','email2','foedt','tekst'),
array($_POST['navn'], $_POST['adresse'], $_POST['postby'], $_POST['telefon1'], $_POST['telefon2'], $_POST['email1'], $_POST['email2'], $_POST['foedt'], $_POST['tekst'])
);
header("Location: ../Medlemsliste/vis.php?ID=" . $_POST['ID']);
die;
?>

Hej @Wendel
Tusinde tak for dit spørgmål, lad os se om vi ikke kan hjælpe dig videre.
Først, her er et lille tip til at indsætte kode på v5.dk. Når man indsætter kode vha "Indsæt code"-knappen, er det lidt nemmere for andre læse. Se tippet her: https://v5.dk/knowledgebase/32.html
Og så til svaret på dit spørgsmål, det ligner at du har misset en lille ting i dit $app->DatabaseUpdate kald, nemlig hvilken række der skal opdateres. Når man ikke specificere en bestemt række, vil alle rækker blive opdateret, som du oplever.
Så derfor skal din DatabaseUpdate ændres til at indeholde et WHERE-statement. Jeg har lavet et eksempel her:
$app->DatabaseUpdate(
"medlemsliste",
array('navn','adresse','postby','telefon1','telefon2','email1','email2','foedt','tekst'),
array($_POST['navn'], $_POST['adresse'], $_POST['postby'], $_POST['telefon1'], $_POST['telefon2'], $_POST['email1'], $_POST['email2'], $_POST['foedt'], $_POST['tekst'], $_POST['ID']),
"WHERE id = ?"
);
Her har jeg indsat et ekstra parameter i vores DatabaseUpdate-kald, nemlig "WHERE id = ?" til sidst. Ydermere har jeg i dit nr. 2 array indsat $_POST['ID'] til sidst.
Bemærk at PHP er case sensative, hvilket betyder at den tager højde for forskellen på store og små bogstaver, så hvis dit id-felt i databasen hedder ID, skal det naturligvis stå på samme måde. Det samme gælder $_POST['ID'].
Håber dette hjælper dig lidt videre, jeg glæder mig til at høre om resultatet.
God onsdag.
Med venlige hilsner Daniel Bahl (@db)
CEO – v5.dk ApS