So liebe Leute. Folgendes Problem.
Ich möchte ein Gästebuch mit PHP programmieren. Besucher können Einträge vornehmen (Das hab ich geschafft). Besucher, können jedoch nicht auf Beiträge antworten.
Ein Admin, kann nachdem er sich eingeloggt hat, Beiträge löschen und auf diese Antworten. DIe Beiträge sind in einer SQL Datenbank. Hab ich auch geschafft.
Nun zum Problem: Die Antworten sollen unter den Beiträgen angezeigt werden. Ich hab das so gelöst, dass neben jedem Beitrag eine Checkbox ist. Wenn man eine Checkbox anhakt und auf antworten klickt, soll die ID des Beitrages übernommen werden. AUf diese ID soll dann geantwortet werden. Das funktioniert jedoch nicht. Er nimmt andauernd die ID 49 wodurch er immer nur auf den selben Beitrag antwortet. Ich suche den Fehler schon seit ner Woche und bin am verzweifeln. Hier der Code, und die Datenbank.
- <?php
- $timestamp = time();
- $datum = date("d.m.Y",$timestamp);
- $uhrzeit= date("H:i",$timestamp);
- if(isset($_POST['adminantwort'])){
- $antwort_id=$_POST['antwort_id'];
- $_SESSION['antwort_id']=$antwort_id;
- $sql2="INSERT INTO tblantworten (verfasser, antwort, datum, uhrzeit, antwort_auf) VALUES ('Administrator','".$_POST['antwort']."','$datum','$uhrzeit','".$_SESSION['antwort_id']."');";
- mysql_query($sql2);
- header("Location:admin.php");
- }
- if(isset($_POST['loeschen'])){
- $auswahl=$_POST['auswahl'];
- foreach($auswahl as $id){
- $sql3="DELETE FROM tbleintraege WHERE e_id=".$id.";";
- $ergebnis3=mysql_query($sql3);
- }
- if($ergebnis3){
- echo "Löschen erfolgreich!<br/><br/>";
- header("Location:admin.php");
- }
- }
- $sql="SELECT * FROM tbleintraege ORDER BY datum DESC, uhrzeit DESC";
- $ergebnis=mysql_query($sql);
- if(mysql_num_rows($ergebnis)>0){
- while($eintrag=mysql_fetch_row($ergebnis)){
- echo"<table width='600'><form method='post'>";
- echo "<tr><td width='500'><strong>".$eintrag[0]."</strong> schrieb am <strong> ".$eintrag[2]."</strong> um<strong> ".$eintrag[3]." </strong>Uhr folgendes: </td><td> <input type='hidden' name='antwort_id' value='".$eintrag[4]."'><input type='submit' name='antworten' value='Antworten'></td></tr>";
- echo "<tr><td><input type='checkbox' name='auswahl[]' value='".$eintrag[4]."'/><i>".$eintrag[1]."</i></td></tr>";
- echo "<br/></table>";
- if(@$_POST['antwort_id']==$eintrag[4]){
- echo "<input type='hidden' name='antwort_id' value='".$eintrag[4]."'>";
- echo "<textarea name='antwort'></textarea> ";
- echo "<input type='submit' name='adminantwort' value='Posten'>";
- echo "<br/><br/>";
- }
- $sql1="SELECT * FROM tblantworten WHERE antwort_auf='".$eintrag[4]."' ORDER BY datum DESC, uhrzeit DESC";
- $ergebnis1=mysql_query($sql1);
- if(mysql_num_rows($ergebnis1)>0){
- while($antwort=mysql_fetch_row($ergebnis1)){
- echo"<br/><table style='margin-left:50px;'>";
- echo "<tr><td><strong>".$antwort[0]."</strong> antwortete am <strong> ".$antwort[2]."</strong> um<strong> ".$antwort[3]." </strong>Uhr mit: </td></tr>";
- echo "<tr><td><input type='checkbox' name='auswahl[]' value='".$antwort[4]."'/><i>".$antwort[1]."</i></td></tr>";
- echo "</table>";
- }
- }
- }
- }
- if(isset($_POST['logout'])){
- header("Location:logout.php");
- }
- ?>
- <br />
- <input type="submit" name="loeschen" value="löschen" />
- <input type="submit" name="logout" value="logout" />
- </form>
Und hier die Datenbank
- -- Datenbank: `gaestebuch`
- --
- CREATE DATABASE `gaestebuch` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
- USE `gaestebuch`;
- -- --------------------------------------------------------
- --
- -- Tabellenstruktur für Tabelle `tblantworten`
- --
- CREATE TABLE IF NOT EXISTS `tblantworten` (
- `verfasser` varchar(50) NOT NULL,
- `antwort` text NOT NULL,
- `datum` text NOT NULL,
- `uhrzeit` text NOT NULL,
- `antwort_auf` int(11) NOT NULL
- ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
- -- --------------------------------------------------------
- --
- -- Tabellenstruktur für Tabelle `tbleintraege`
- --
- CREATE TABLE IF NOT EXISTS `tbleintraege` (
- `verfasser` varchar(50) NOT NULL,
- `eintrag` text NOT NULL,
- `datum` text NOT NULL,
- `uhrzeit` text NOT NULL,
- `e_id` int(11) NOT NULL AUTO_INCREMENT,
- PRIMARY KEY (`e_id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=85 ;
- --
- -- Daten für Tabelle `tbleintraege`
- --
- INSERT INTO `tbleintraege` (`verfasser`, `eintrag`, `datum`, `uhrzeit`, `e_id`) VALUES
- ('Elif', 'Elif', '31.01.2014', '21:56', 82),
- ('Merve', 'Merve', '31.01.2014', '21:56', 83),
- ('Antonio', 'Antonio', '31.01.2014', '21:59', 84);
- -- --------------------------------------------------------
- --
- -- Tabellenstruktur für Tabelle `tbluser`
- --
- CREATE TABLE IF NOT EXISTS `tbluser` (
- `status` varchar(30) NOT NULL,
- `username` varchar(50) NOT NULL,
- `passwort` int(11) NOT NULL
- ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
- --
- -- Daten für Tabelle `tbluser`
- --
- INSERT INTO `tbluser` (`status`, `username`, `passwort`) VALUES
- ('admin', 'Elif', 1234);
Wer mir hilft, ist mein Held, und hat sich ein Geschenk verdient. Grüße!