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

PHP auslesen und speichern

commander18

Neues Mitglied
Hallo zusammen

Ich habe intern eine News Seite aufgebaut.
Auf der Seite schreiben 5 User einmal in der Woche einen Bericht.
Nun möchte ich die Funktion einbauen die Berichte zu bearbeiten.
Aber wie kann ich ein bestimmter Bericht auswählen und bearbeiten und dann speichern?

Der Editor mit noch ein paar inputs
PHP:
<form method="post" action="senden.php" name="formular">

            <textarea id="elm1" name="elm1" rows="15" cols="80" style="width: 100%">
                <h1>Titel</h1>
            </textarea><br />
           Titel:  <input id="titel" name="titel" type="titel" />
           Autor:  <input id="autor" name="autor" type="autor" />
           Quelle: <input id="quelle" name="quelle" type="type" /><br /> <br />
    
        <input type="submit" name="senden" value="senden" />
        <input type="reset" name="reset" value="Reset" />
        

</form>

senden.php
PHP:
$elm1 = stripslashes($_POST['elm1']);
$titel = stripslashes($_POST['titel']);
$autor = stripslashes($_POST['autor']);
$quelle = stripslashes($_POST['quelle']);
$datum = date("Y-m-d");
echo $elm1;

$sql="INSERT INTO fachbericht (user_id, elm1, titel, datum, autor, quelle) VALUES ('$_SESSION[user_id]', '$elm1' , '$titel' , '$datum' , '$autor' , '$quelle')";

echo $sql;
$result = mysql_query ($sql) or die(mysql_error());

Ich möchte z.B, denn Titel des Fahberichts eingeben, um den Bericht auszulesen und es dan im Editor bearbeiten.
 
denn Titel des Fahberichts eingeben
Meinst du so eine Art Suche, in der du den Bericht suchst und dir dann ausgeben lässt?

Einen Bericht zu ändern ist ja relativ einfach. Dafür gibst du deinen Formular-Elementen (input usw.) nur deren values aus der Datenbank und trägst die neuen Daten so in die Datenbank ein:
PHP:
$sql="UPDATE fachbericht SET titel='$titel',autor='$autor',quelle='$quelle',elm1='$elm1',datum='$datum' WHERE id='$id'"
Du solltest dafür natürlich in deiner Datenbank einen Primärschlüssel "id" oder ähnliches haben, sonst wird das nichts.
 
Danke für die Antowrt!
In der Datenbank hab ich id als Primärschlüssel.
Wenn ich jetz zum beispiel auf die (existiert noch nicht) bearbeiten.php gehe, wie soll ich dort mit diesem befehl einen bestimmten Bericht bearbeiten.
Die User sehen die ID ja nicht...
Die User kennen nur den Titel den sie eingegeben haben.
 
Steht eigentlich schon da.
Du liest einen Bericht mit einer bestimmten ID aus und änderst die Daten.

Mit
PHP:
$sql="UPDATE fachbericht SET titel='$titel',autor='$autor',quelle='$quelle',elm1='$elm1',datum='$datum' WHERE id='$id'"
kannst du dann alles speichern. Wichtig ist das WHERE id=`$id`, dort muss die ID des Berichtes stehen, den du veränderst. Das Codewort UPDATE in query sorgt dafür, dass kein neuer Datensatz angelegt wird sondern der bestehende verändert wird.
 
Gehen wir mal davon aus, du hast eine Liste mit allen Berichten als Link. Dieser Link sollte dann in etwa so aussehen:
<a href="bearbeiten.php?id=$id" title="">Berichttitel</a>
mit ?id=$id übergibst du die ID des Berichtes an deine bearbeiten.php

Auf der bearbeiten.php ließt du dann die entsprechende Zeile aus der Datenbank aus mit:
PHP:
$sql="SELECT * FROM fachbericht WHERE id='$id'"

Du erstellst im PHP ein HTML-Formular, in dem du mit value="" die Werte aus der Datenbank ausgibst:
HTML:
<form method="post" action="senden.php" name="formular">

            <textarea id="elm1" name="elm1" rows="15" cols="80" style="width: 100%" value="$elm1">
                <h1>Titel</h1>
            </textarea><br />
           Titel:  <input id="titel" name="titel" type="titel" value="$titel" />
           Autor:  <input id="autor" name="autor" type="autor" value="$autor" />
           Quelle: <input id="quelle" name="quelle" type="type" value="$quelle" /><br /> <br />
    
        <input type="submit" name="senden" value="senden" />
        <input type="reset" name="reset" value="Reset" />
        

</form>

Dann kann man dort die neuen Inhalte eintragen (oder die alten lassen, falls das ein oder andere Feld gleich bleiben soll), und dann speicherst du die neuen Daten mit dem schon genannten SQL-Befehl in die Datenbank. Fertig.
 
Ich hab nun eine archiv.php erstellt. Dort sind alle Fachberichte aufgelistet.

archiv.php
PHP:
<?php
include 'dbconn.php';

$z=mysql_query("SELECT id, user_id, titel, datum FROM fachbericht");
     while($unter=mysql_fetch_array($z))
    {
    echo '<a href="fachbericht.php?berichtid='.$unter['id'].'">'.$unter['titel'].'  vom  '.date(('d.m.Y'),strtotime($unter['datum'])).'</a><br /><br />';
    }
    mysql_close();
?>
 
immer noch ein Problem:oops:

bearbeiten.php
PHP:
<?php
include 'dbconn.php';

$sql="SELECT * FROM fachbericht WHERE id='$id'"  
?>
<form method="post" action="senden.php" name="formular">

            <textarea id="elm1" name="elm1" rows="15" cols="80" style="width: 100%" value="$elm1">
                <h1>Titel</h1>
            </textarea><br />
           Titel:  <input id="titel" name="titel" type="titel" value="$titel" />
           Autor:  <input id="autor" name="autor" type="autor" value="$autor" />
           Quelle: <input id="quelle" name="quelle" type="type" value="$quelle" /><br /> <br />
    
        <input type="submit" name="senden" value="senden" />
        <input type="reset" name="reset" value="Reset" />
        

</form>

ich will ja das ganze dynamisch...
Sry Leute, aber kann mir jemand noch sagen was ich tun soll:-?
Danke für all die hilfsbereiten Kommentare!:D
 
Nun, aus deiner Archiv.php würde ich das machen:
PHP:
include 'dbconn.php';

$z=mysql_query("SELECT id, user_id, titel, datum FROM fachbericht");

     while($unter=mysql_fetch_array($z))
    {
    echo '<a href="fachbericht.php?berichtid='.$unter['id'].'">'.$unter['titel'].'  vom  '.date(('d.m.Y'),strtotime($unter['datum'])).'</a>&nbsp;';
    echo '<a href="bearbeiten.php?id='.$unter['id'].'">Edit</a><br /><br />';
    }
    mysql_close();

in deiner bearbeiten.php stellst du die Abfrage noch auf $_GEt um:

PHP:
include 'dbconn.php';

$sql="SELECT * FROM fachbericht WHERE id='".$_GET['id']."'";
// $result = @mysql_query($sql);
// hier deine Variablen auslesen und belegen
?>
<form method="post" action="senden.php" name="formular">

            <textarea id="elm1" name="elm1" rows="15" cols="80" style="width: 100%" value="$elm1">
                <h1>Titel</h1>
            </textarea><br />
           Titel:  <input id="titel" name="titel" type="titel" value="$titel" />
           Autor:  <input id="autor" name="autor" type="autor" value="$autor" />
           Quelle: <input id="quelle" name="quelle" type="type" value="$quelle" /><br /> <br />
    
        <input type="submit" name="senden" value="senden" />
        <input type="reset" name="reset" value="Reset" />
        

</form>
 
Zuletzt bearbeitet von einem Moderator:
Und dann muss das Formular am besten auch noch innerhalb des PHP-Tag stehen, da sonst die Variablen im value="" nix bringen :)

PHP:
include 'dbconn.php';

$sql="SELECT * FROM fachbericht WHERE id='".$_GET['id']."'";
// $result = @mysql_query($sql);
// hier deine Variablen auslesen und belegen

print '
<form method="post" action="senden.php" name="formular">

            <textarea id="elm1" name="elm1" rows="15" cols="80" style="width: 100%" value="$elm1">
                <h1>Titel</h1>
            </textarea><br />
           Titel:  <input id="titel" name="titel" type="titel" value="$titel" />
           Autor:  <input id="autor" name="autor" type="autor" value="$autor" />
           Quelle: <input id="quelle" name="quelle" type="type" value="$quelle" /><br /> <br />
    
        <input type="submit" name="senden" value="senden" />
        <input type="reset" name="reset" value="Reset" />
         

</form> 
';

?>
 
Zurück
Oben