• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Datenbank ausgaben mit PHP

Status
Für weitere Antworten geschlossen.
Ich habe mal eine Frage, wenn ich jetzt eine Auflistung habe, aller Datenbank einträge, w ich nur die ID und den Titel habe, und noch 2 Operationsmethoden (Löschen und ändern), wie kann es das anstellen, das ich den jeweiligen Eintrag der Zeile, ändern, bzw. löschen kann?

http://www.tt-otg1902.de/edit_del.jpg

Marcel
 
Werbung:
PHP:
$id = $_GET['id'];
mysql_query("DELETE FROM tabelle WHERE id='".$id."'");
in etwa so. Du machst einen Link am ende jedes Eintrages und hängst die entsprechende id in den Link. Beim klicken wird diese per GET übertragen.
Der Rest ist ein mySQL-Befehl.

Denke jedoch an eine mögliche mysql-injection!
 
Bild
wenn ich auf den Button Del (D) drücke ,möchte ich, das sich der Beitrag in der dazugehörgen Zeile öffnet zum bearbeiten.
Also, wenn ich bei "test 1" auf d klicke möchte ich das sich die ID öffnet und ich diese bearbeiten kann und wenn ic sie überarbeitet habe, möchte ich sie wieder unter der ursprünglichen ID speichern.
Hffe man kann es besser verstehen.
Deutsch ist nicht so meins!
Marcel
 
Werbung:
Abend,

Wenn du den Eintrag unter der ursprünglichen ID abspeichern willst kannste den UPDATE Befehl verwenden.

PHP:
UPDATE tabelle SET title='neuer titel', ... WHERE id='$id'
N43
 
Naja habe ein formular geschrieben!

Formular:

PHP:
<?php
error_reporting(E_ALL);
  include ('../inc/config.php');
  // Konfigurationsdatei laden
  @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR die(mysql_error());
  @mysql_select_db('Verein') OR die('Kann keine Verbindung zur Datenbank herstellen');
  $query = 'SELECT ID,Titel,Autor,Email,Homepage,Inhalt,Datum FROM news';
  if($sql = @mysql_query($query))
    {
    echo '<h1 align="center">News editieren</h1>';
    echo '<table border="1" align="center" width="800" cellsparring="5">';
    echo '<form method="post" action="edit_news.php">';
    while($row = mysql_fetch_assoc($sql))
    {
      echo '<tr><td align="center" width="50"><b>'.$row['ID'].'</b></td>';
      echo '<th colspan="6" align="center">geschrieben am: '.$row['Datum'].'</th>';
      echo '</tr>';
      echo '<tr>';
      echo '<td align="center">Autor</td>';
      echo '<td align="left"><input type="text" name="Autor" value="'.$row['Autor'].'"></input></td>';
      echo '<td align="center" width="200">E-Mail</td>';
      echo '<td align="left"><input ype="text" name="Email" value="'.$row['Email'].'"></input></td>';
      echo '<td align="center" width="200">Homepage</td>';
      echo '<td align="left"><input type="text" name="Homepage" value="'.$row['Homepage'].'"></input></td>';
      echo '</tr>';
      echo '<tr></tr>';
      echo '<tr>';
      echo '<td align="center">Titel</td>';
      echo '<th align="center" colspan="5"><input size="50" type="text" name="Titel" value="'.$row['Titel'].'"></input></th>';
      echo '</tr>';
      echo '<tr>';
      echo '<td align="center">Inhalt</td>';
      echo '<th colspan="5" height="30"><textarea name="Inhalt"  cols="57" rows="15">'.$row['Inhalt'].'</textarea></th>';
      echo '</tr>';
    }
      echo '</table>';
      echo '<td>';
      echo '<input type="submit" value="Ändern"></input>';
      echo '</td>';
      echo '</form>';
  }
?>

edit_news

PHP:
<html>
<head>
<title>News ändern</title>
<meta name="author" content="Marcel Liebgott">
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<?php
@mysql_select_db('Verein') OR die('Kann keine Verbindung zur Datenbank herstellen');
$change_id=$_POST["chg_id"];
$Titel=$_POST["Titel"];
$Autor=$_POST["Autor"];
$Homepage=$_POST["Homepage"];
$Email=$_POST["Email"];
$Inhalt=$_POST["Inhalt"];
$aendern = "UPDATE Titel SET ='$Titel' WHERE id = $chg_id";
$update = mysql_query($aendern);
$aendern = "UPDATE Autor SET ='$Autor' WHERE id = $chg_id";
$update = mysql_query($aendern);
$aendern = "UPDATE Email SET ='$Email' WHERE id = $chg_id";
$update = mysql_query($aendern);
$aendern = "UPDATE Homepage SET ='$Homepage' WHERE id = $chg_id";
$update = mysql_query($aendern);
$aendern = "UPDATE Inhalt SET ='$Inhalt' WHERE id = $chg_id";
$update = mysql_query($aendern) OR die(mysql_error());
?>
</body>
</html>

naja und ich will wissen wie ich a.) die buttons definieren muss und 2 ist irgendwo ein fehler in der edit_news.php

Fehlercode:

Code:
You have an error in your SQL syntax near '='Wir machen vortschritte.' WHERE id = ' at line 1
 
UPDATE funktioniert (wie oben schon beschrieben) so:
PHP:
$qry = '
  UPDATE 
    tabelle
  SET
    spalte1 = "'.$werta.'",
    spalte2 = "'.$wertb.'"
  WHERE
    ID = '.$id.'
';
So brauchst du auch nur ein UPDATE und nicht eins für jede Spalte ;)
 
Werbung:
aber das ist richtig oder?

PHP:
@mysql_select_db('Verein') OR die('Kann keine Verbindung zur Datenbank herstellen');
$change_id=$_POST["chg_id"];
$Titel=$_POST["Titel"];
$Autor=$_POST["Autor"];
$Homepage=$_POST["Homepage"];
$Email=$_POST["Email"];
$Inhalt=$_POST["Inhalt"];

das ich das davor setze oder?

marcel
 
Hallo,

kann man machen, muss man aber nicht. Also wie du willst :)

Code:
[COLOR=#000000][COLOR=#0000bb]$aendern [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#dd0000]"UPDATE tabelle SET Titel='$Titel' WHERE id = $chg_id"[/COLOR][COLOR=#007700];[/COLOR][/COLOR]
So muss der Query aussehen. Statt tabelle eben den Namen der Tabelle. Bei den anderen Querys genauso. Wenn das klappt dann am besten alles in einen Query packen.

N43
 
PHP:
<?php
@mysql_select_db('Verein') OR die('Kann keine Verbindung zur Datenbank herstellen');
$change_id=$_POST["chg_id"];
$Titel=$_POST["Titel"];
$Autor=$_POST["Autor"];
$Homepage=$_POST["Homepage"];
$Email=$_POST["Email"];
$Inhalt=$_POST["Inhalt"];
$qry = '
  UPDATE
    `tabelle`
  SET
    `Titel` = "'.$Titel.'",
    `Autor` = "'.$Autor.'",
    `Homepage` = "'.$Hmepage.'",
    `Email` = "'.$Email.'",
    `Inhalt`  = "'.$Inhalt.'"
  WHERE
    ID = '.$chg_id.' ';
mysql_query($qry) OR die(mysql_error());
?>
Fehler-Code

Code:
You have an error in your SQL syntax near '' at line 11
 
Werbung:
Status
Für weitere Antworten geschlossen.
Zurück
Oben