Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 17

Thema: Tutorial -> Daten in Datenbank eintragen + Auslesen

  1. #1
    Meister(in)
    Registriert seit
    29.11.2004
    Beiträge
    277
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Tutorial -> Daten in Datenbank eintragen + Auslesen

    Hallo, da man hier ueberall im Forum ließt, "Wie schreibe ich Daten in eine Datenbank, und lese sie dann wieder aus à la Newsscript" dachte ich mir, das ich mal ein kleines "tutorial" schreibe, wie man sowas auf die Beine stellt.

    Im Grunde genommen ist es ganz einfach. Man schreibt Daten in ein Formular schickt das weiter an eine Andere Datei, die wiederrum sendet alles an die Datenbank. In einem weiteren Script ließt man die Daten wieder aus, und Formatiert sie.
    Also, al erstes mal, brauchen wir die Serverdaten. Die speichern wir am besten in eine Datei, und fuegen sie dann im dem Befehl include an der Gewuenschten Stelle wieder ein, das Spart Platzt.
    Also, hier die Datei, nennt sie wie ihr wollt,vorteilhaft waere config
    config.php:
    Code:
    <?php
    
        error_reporting&#40;E_ALL&#41;; //Damit sagen wir PHP das es uns die Fehler 
                                           //Berichten soll, die auftreten, falls etwas nicht
                                          // Klapt
    
        define&#40;'MYSQL_HOST',     'localhost'&#41;; // Der host, standartmaessig  
                                                              // immer Localhost
        define&#40;'MYSQL_USER',     'root'&#41;; //Der Benutzername, bei z.b. ohost                                 
                                                       // waere es der Angegebene 
                                                       //Benutzername
        define&#40;'MYSQL_PASS',     ''&#41;; //Das normale mysql PAsswort
        define&#40;'MYSQL_DATABASE', 'test'&#41;; //Der Name der Datenbank
    
    ?>
    So, da wir die Datei jetzt haben, koennen wir weiter dazu gehn, die Benoetigten Tabellen anzulegen. Hierzu geht ihr in euer PHPmyAdmin tool, geht auf eure Datenbank und klickt Links in der Navigation auf das kleine Button wo: ´SQL´ steht, und fuegt folgenden Code ein, erklaerungen stehen weiter unten:

    CREATE TABLE `news` (
    `id` int(11) NOT NULL auto_increment,
    `autor` varchar(20) collate latin1_general_ci default NULL,
    `titel` varchar(100) collate latin1_general_ci default NULL,
    `inhalt` text collate latin1_general_ci,
    `link` varchar(100) collate latin1_general_ci default NULL,
    `datum` datetime default NULL,
    PRIMARY KEY (`id`)
    )
    Das Feld id ist dazu da, jedem Eintrag eine "identitaet" zu verliehen.
    Ich denke die restlichen Felder erklaeren sich von Alleine, sie "stehen" zu ihrem Namen

    So, nun kommen wir zu dem Formular, wo wir die Daten eintragen muessen. Ich habe mal eins vorbereitet, es ist ganz klein, total unformatiert, und dient nur zum Zweck, ich hoffe verschoenerungen koennt ihr selbst vornehmen. Auch hierzu folgen erklaerungen weiter unten.

    Code:
    <form action="datei.php" method="post">
    Autor&#58;
    
    <input type="text" name="autor"></input>
    
    Titel&#58;
    
    <input type="text" name="titel"></input>
    
    Inhalt&#58;
    
    <textarea name="inhalt" cols="50" rows="20"></textarea>
    
    Link&#58;
    
    <input type="text" name="link"></input>
    
    
    
    
        <input type="submit" />
    </form>
    Die Datei, die in action="" steht, ist die Datei, die die Daten nachher weiter zur Datenbank sendet, dazu aber gleich mehr. Hier ist method="post" angebracht, weil unter "Get" die Daten ueber die URL weitergetragen werden, und das sinnlos ist, und auch unschoen Aussieht, wenn man eine Ellenlange URL hat.
    Wichtig: Die Woerter die bei input unter name="" stehen, muessen Identisch mit Spaltennamen in eurer Datenbank sein. Bitte die bezeichnungen alle klein Schreiben, da es nachher zu unschoenen Komplikationen kommen kann.

    Jetzt brauchen wir noch die oben angesprochene "datei.php".
    Was muss in der Datei enthalten sein?
    • Sie muss zur verbindung zur Datenbank aufbauen
      Sie muss die Daten verarbeiten koennen
      Sie muss die Daten zur Datenbank senden koennen


    Das hoert sich zunaechst schwerer an, als es wirklich ist.
    Auch hier wieder eine Beispiel-Datei. Erklaerungen wieder unten
    datei.php
    Code:
    <? include&#40;'config.php'&#41;; 
     
     @mysql_connect&#40;MYSQL_HOST, MYSQL_USER, MYSQL_PASS&#41; OR die&#40;mysql_error&#40;&#41;&#41;;
        mysql_select_db&#40;MYSQL_DATABASE&#41; OR die&#40;mysql_error&#40;&#41;&#41;;
     
    
    if &#40;$sql = "
       INSERT INTO
          `news`
       &#40;
          `autor`,
          `titel`,
          `inhalt`,
          `link`,
          `datum`
       &#41;
       VALUES
       &#40;
          '&#123;$_POST&#91;'autor'&#93;&#125;',
          '&#123;$_POST&#91;'titel'&#93;&#125;',
          '&#123;$_POST&#91;'inhalt'&#93;&#125;',
          '&#123;$_POST&#91;'link'&#93;&#125;',
          NOW&#40;&#41;
       &#41;" &#41;
       &#123;
       echo "Die News wurden erfolgreich eingetragen
    ";
      
       &#125;
       else
       &#123;
       echo "Fehler beim eintragen der News";
       &#125;
    mysql_query&#40;$sql&#41;;
    ?>
    Oben bauen wir eine Verbindung zur Datenbank auf mit dem INSERT INTO befehl sagen wir, in welche Tabelle geschrieben werden soll. Wenn ihr aufgepasst habt, sollten euch die Restlichen Zeilen auch bekannt vorkommen. Das NOW() schickt die Aktuelle Uhrzeit mit Datum mit.
    Die echo-befehle sind recht eindeutig.

    Das groebste ist geschafft. Wenn alles glatt laeuft, sollten die Datenbank jetzt friedlich in der Datenbank ruhen.
    Jetzt muessen wir die Daten wieder auslesen. Auch dazu gibt es ein Script, wie zu erwarten
    Was muss das Script koennen?
    • Es muss zur Datenbank verbindung aufbauen
      Es muss die Daten auslesen
      Es muss die Daten Ausgeben, wenn moeglich Formatiert

    Hier wieder erst das script, dann die beschreibung:
    news.php
    Code:
    
    <? include&#40;'config.php'&#41;; ?>
      <link rel="stylesheet" href="style.css" type="text/css">
    
     <? @mysql_connect&#40;MYSQL_HOST, MYSQL_USER, MYSQL_PASS&#41; OR die&#40;mysql_error&#40;&#41;&#41;;
        mysql_select_db&#40;MYSQL_DATABASE&#41; OR die&#40;mysql_error&#40;&#41;&#41;;
    
    	$sql = "
    		SELECT
    			*
    		FROM
    			`news`
    	    ORDER BY
                    Datum DESC		
    	";
    	$ausgabe = mysql_query&#40;$sql&#41;;
    	
    
    	while&#40;$row = mysql_fetch_array&#40;$ausgabe&#41;&#41; &#123;
    	
    ?>
    
    
    <div class="newseintrag">
    <center><font size="4"><div class="Titel">
    <?=$row&#91;'titel'&#93;?></div></center></font>
    
    <div class="inhalt" >
    <?=nl2br&#40;$row&#91;'inhalt'&#93;&#41;?></div>
    <div class="Autor" >
    
    <div class="Link">By&#58;<?=$row&#91;'autor'&#93;?>
    Link&#58;Quelle  Delete</div>
    </div></div>
    
    <? &#125; ?>
    Das script ist schon etwas laenger, und Bedarf auch etwas mehr obacht.
    Der obere Teil ist bekannt.
    Mit dem "SELECT" befehl, waehlen wir die Tabelle aus. Mit FROM sagen wir
    welche Spalten wir ansprechen wollen. In diesem falle steht da *. Das * steht fuer alle Spalten, die es in dieser Tabelle gibt, es koennte auch nur

    `inhalt`,
    `titel`,
    `autor`
    stehen.
    Das ORDER BY gibt aus, in welcher "Reihenfolge" die Daten ausgegeben werden sollen. Das wohl am Sinnvollsten ist
    datum DESC da es die Daten nach dem Datum des Eintrags ausgibt, die Neuste News zuerst.
    Die Formation koennt ihr auch mit Tabellen handhaben, ich habe hier nur fuer mich CSS gewaehlt. Bei der Formation braucht ihr keine Angst davor haben, das ihr den HTML text mit dem Php-gefasel vermischt, denn der PHP-code wurde quasi "abgeklemmt"
    Ihr fuegt die Daten aus der Datenbank mit dem Folgenden Code ein:

    <?=$row['titel']?>
    Da wo Titel steht, kommt die Gewuenschte Spalte hin. Das nl2br() sorgt dafuer, das
    ihr Automatisch Zeilenumbrueche bekommt.
    Dieses Script hat noch ein kleines Extra. Ihr koennt es benutzen, oder es lassen. Ihr koennt auf Knopfdruck eure Daten aus der Datenbank wieder Löschen. Da gebe ich euch aber nur den Code, mit einer Kleinen erklaerung, da es eigentlich Klar sein duerfte.
    Es handelt sich hier um Spaetestens jetzt stellt es sich als Heldentat raus, das ihr die Spalten alle klein geschrieben habt, da euch diese Funktion sonst nicht zur Verfuegung stehen wuerde. Ich habe die datei del.php genannt. Hier der Code
    del.php
    Code:
    <? include&#40;'config.php'&#41;; ?>
    
     <? @mysql_connect&#40;MYSQL_HOST, MYSQL_USER, MYSQL_PASS&#41; OR die&#40;mysql_error&#40;&#41;&#41;;
        mysql_select_db&#40;MYSQL_DATABASE&#41; OR die&#40;mysql_error&#40;&#41;&#41;;
    
    
    if &#40;$_GET&#91;'action'&#93; == 'delete'&#41; &#123;
       mysql_query&#40;"
          DELETE FROM
             `news`
          WHERE
             `id` = '&#123;$_GET&#91;'news_id'&#93;&#125;'
          LIMIT 1
       "&#41;;
    echo "<script type=\"text/javascript\">window.location.href='index.php';</script>";
    
    &#125;
    
    ?>
    Danke an `phore` der diese Funktion fuer mich schrieb

    Das wars mit der Kunst. Ihr koennt dieses Script acuh fuer ein log-in Teil nehmen, zumindest die Anmelde-Formulare, und die datei.php jedoch muesst ihr diese fuer euch abaendern, wer will schon Anstatt Kennwort - Autor stehen haben?!?
    Ich hoffe ich habe es verstaendlich geschrieben, und ihr wisst jetzt, wie ihr es angehen sollt.
    Dieses Script hier dient nur als Hilfe, wenn etwas nicht klappt, macht nich mich dafuer Schuldig, sondern versucht erstmal selbst den Fehler rauszusuchen. Und fuer Schaeden uebernehme ich keinerlei Haftung.

    Wenn irgendwelche Fragen auftreten, oder noch Unklarheiten sind, stehe ich gerne mit Tat unr Rat zur verfuegung.

    Mit Freundlichen Gruessen

    Sibbi

    //Edit
    Ich habe vergissen die .css datei mitzu schicken. Dann habt ihr schonmal eine Vorstellung, wie es nachher alles aussieht.
    Hier ist sie:
    style.css
    Code:
    .newseintrag > .titel &#123;
     
    background-color&#58; #EEEEFF;
        padding&#58; 2px;
        float&#58; left;
        border-top&#58; 1px solid darkgray;
    &#125;
    .newseintrag > .inhalt &#123;
     background-color&#58; #EEEEFF;
        padding&#58; 4px;
        float&#58; right;
        border-left&#58; 1px solid darkgray;
    &#125;
    
    .newseintrag > .autor &#123;
        padding&#58; 2px;
        clear&#58; both;
        border-top&#58; 1px solid darkgray;
    &#125;
    .newseintrag > .link &#123;
        padding&#58; 2px;
        clear&#58; both;
        border-top&#58; 1px solid dargray;
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Azubi(ne)
    Registriert seit
    26.05.2007
    Ort
    Baden Württember
    Alter
    24
    Beiträge
    64
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Hallo

    Ich hab jetzt mal dein Script versucht(großes Lob an dich für die Mühe )
    Aber ich hab da ein problehm.
    Der SQL-Befehl ist irgendwie falsch,weil wenn ich den Befehl eingebe,kommt dieser Fehler:

    MySQL meldet:
    #1064 - You have an error in your SQL syntax near 'collate latin1_general_ci default NULL,
    `titel` varchar(100) collate latin1_gen' at line 3
    Wäre sehr dankbar wenn mir jemand helfen würde


    MFG
    foff

  3. #3
    Großmeister(in)
    Registriert seit
    31.10.2005
    Ort
    Bei Muddi, wo sonst
    Beiträge
    524
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Das Problem liegt, wie in der Fehlermeldung schon angedeutet wird, bei deiner Query-Syntax.
    Du müsstest uns also deinen gesamten String angeben, damit wir dir helfen können.
    Viele Grüße

    Mir nicht

  4. #4
    Azubi(ne)
    Registriert seit
    26.05.2007
    Ort
    Baden Württember
    Alter
    24
    Beiträge
    64
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Sry,aber was ist der String?



    MFG
    foff

  5. #5
    König(in)
    Registriert seit
    06.06.2007
    Ort
    Bi
    Beiträge
    1.015
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Ein String ist eine Zeichenkette , am einfachsten ist, wenn du vorerst immer an String = Wort denkst....

    er/ sie meint, du sollst die komplette Anfrage , wie du sie in deinem Dokument hast einmal hier posten, weil es eventuell Schreibfehler sein können ,weswegen es nicht funktioniert ^^.
    Sämtlicher Code erhebt keinen Anspruch auf syntaktische Korrektheit geschweige denn Ausführbarkeit und ist für die Implementation außerhalb der Beispiele nicht geeignet.

    Kein Support für kommerzielle Scripts | Kein kostenloser Support via ICQ

  6. #6
    Azubi(ne)
    Registriert seit
    26.05.2007
    Ort
    Baden Württember
    Alter
    24
    Beiträge
    64
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    aso

    sry,aber ich hab alles genau nach dem tutorial gemacht,und geschrieben hab ich fast nix
    Auser die Verbindung zur DB,aber das läuft ja...



    MFG
    foff

  7. #7
    Unregistriert
    Gast

    Standard AW: Tutorial -> Daten in Datenbank eintragen + Auslesen

    hi und danke erstmal dafür

    ich hab alles ausprobiert und genauso gemacht klappt auch alles gut nur das löschen nicht
    der code sieht so aus

    <? include('config.php'); ?>

    <? @mysql_connect(name, pw[geheim] ^^) OR die(mysql_error());
    mysql_select_db(MYSQL_DATABASE) OR die(mysql_error());


    if ($_GET['action'] == 'delete') {
    mysql_query("
    DELETE FROM
    `news`
    WHERE
    `id` = '{$_GET['news_id']}'
    LIMIT 1
    ");
    echo "<script type=\"text/javascript\">window.location.href='news.php';</script>";

    }

    ?>

    was habe ich falsch gemacht?

  8. #8
    Forum Guru Avatar von The User
    Registriert seit
    28.10.2007
    Ort
    Zwischen Pazifik und Atlantik...
    Beiträge
    4.044
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Tutorial -> Daten in Datenbank eintragen + Auslesen

    Sicher, dass du auch richtig auf Delete verlinkt hast?
    Ein Hinweis:
    Seid euch darüber im Klaren, dass ihr euch dazu noch einen Login schreiben solltet, also dass das jeder löscht und erstellt geht noch nicht einmal in der Wikipedia.

    Noch eine Frage:
    Wofür ein <input></input> ???

    Schön, dass du das gemacht hast.

  9. #9
    Youngster
    Registriert seit
    17.11.2008
    Beiträge
    11
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Tutorial -> Daten in Datenbank eintragen + Auslesen

    hi ich war der unregistrierte ^^
    ja ich lass darüber dann eine htaccess laufen ich hab so ne art admin bereich daraus gemacht ^^
    drot trägt man news usw. ein und auf der startseite werden sie angezeigt

    und dürfe richtig verlinkt sein es kommt diese meldung:
    Notice: Undefined index: action in /www/mein pfad/del.php on line 7

    sieht wie gesagt so aus:
    <? include('config.php'); ?>

    <? @mysql_connect(host, db, db pw) OR die(mysql_error());
    mysql_select_db(MYSQL_DATABASE) OR die(mysql_error());


    if ($_GET['action'] == 'delete') {
    mysql_query("
    DELETE FROM
    `news`
    WHERE
    `id` = '{$_GET['news_id']}'
    LIMIT 1
    ");
    echo "<script type=\"text/javascript\">window.location.href='index.php';</script>";

    }

    ?>

    danke erstmal

  10. #10
    Meister(in)
    Registriert seit
    15.01.2007
    Ort
    Hannover
    Beiträge
    382
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Tutorial -> Daten in Datenbank eintragen + Auslesen

    undefined index: action.... $_GET['action'] existiert nicht...
    wie sieht der link aus, auf den du klickst um zum delete zu kommen?
    index.php?action=delete&news_id=123 <- so?

    nur mal so als kleine anmerkung...
    übergabe variablen schreibt man NIEMALS dierekt in eine Datenbank ohne sie zu prüfen.... wenigstens ein addslashes($_POST['bla']) ist ein MUSS!
    sonst kommt irgendwann doch nochmal einer auf diese Seite und löscht deine komplette DB, weil man nicht auf sicherheit geachtet hat, denn man kann sonst jeden sql befehle ausführen den man möchte.

    gruß

Ähnliche Themen

  1. Daten aus Datenbank auslesen
    Von BastiFantasti im Forum Forum für alle anderen Programmiersprachen
    Antworten: 0
    Letzter Beitrag: 19.07.2007, 15:32
  2. Zeilenweise daten aus einer MySQL Datenbank auslesen
    Von rgofi im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 5
    Letzter Beitrag: 14.03.2007, 16:13
  3. Anfänger | Daten aus einer Datenbank auslesen
    Von Knüps im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 14.12.2005, 10:12
  4. mySQL: URL richtig eintragen und auslesen?
    Von webbie im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 3
    Letzter Beitrag: 24.12.2004, 09:52
  5. Daten in die DB eintragen?
    Von scout1979 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 1
    Letzter Beitrag: 21.09.2004, 12:10

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •