kostenloser Webspace werbefrei: lima-city


[Tutorial] Gästebuch funktioniert nicht wies soll

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    sebbel

    sebbel hat kostenlosen Webspace.

    Hallo,

    ich habe dieses Tutorial http://www.lima-city.de/tutorials?m=show&id=1080 von lima "anfertigen" wollen.

    Ich denke den quelltext brauch ich hier nicht zu posten, sieht man ja im tutorial

    die dateien die ich verwendet habe sind:

    http://www.sebbelmeyer.de/book.php
    http://www.sebbelmeyer.de/book.html
    http://www.sebbelmeyer.de/save.php
    http://www.sebbelmeyer.de/config.php

    Wie ihr seht kommen bei save.php und book. php fehler.
    Bei book in zeile 13 die wie folgt lautet.
    $data = mysql_fetch_assoc($result);
    und bei save in zeile 10:
    mysql_fetch_assoc($result);

    Liegt es vielleicht daran, dass ich die sql tabelle falsch erstellt habe? Ich muss dazu sagen, dass ich die variablen anders gew?hlt habe und ich noch die informationen "website" und "email" hinzuf?gen wollte bzw es getan habe.

    Plz help me!

    Dankesch?n schonmal
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. k**********e

    in save.php
    geh?rt kein mysql_fetch-assoc($result).. das kanns du dort l?schen

    bei book.php

    in die zeile davor:
    $result = mysql_query($sql) od die(mysql_error() . '<br />' . $sql); // $sql dur die richtige variable ers?tzen.
    $data = mysql_fetch_assoc($result);

    dann poste mal die fehlermeldung die dann erscheint, die ist besser.
    dann kann man dir schneller helfen

    und poste mal den aufbau deiner tabelle
  4. Autor dieses Themas

    sebbel

    sebbel hat kostenlosen Webspace.

    Ich bin halt hingegangen in der mysql oberfl?che, habe auf neue tabelle geklickt mit 7 spalten, habe dann halt die namen reingeschrieben ohne etwas anderes zu ?ndern.

    http://sebbel.xardas.lima-city.de/sql.jpg

    jetzt hab ich in der book.php folgendes srinstehen:

    <?
    include ("config.php");




    mysql_connect("$host","$user","$passwort");
    mysql_select_db("$datenbank"); //mit diesem Befehl waehlt ihr die Datenbank aus wo die Daten gespeichert werden


    $sql = "SELECT * FROM gbook ORDER BY ID DESC;";

    $result = mysql_query($sql) od die(mysql_error() . '<br />' . $sql); // $sql dur die richtige variable ers?tzen.
    $data = mysql_fetch_assoc($result);


    echo "<br>".$data['inhalt']."<br><br>"; //bei diesem Echo wird der inhalt aus der Spalte "Inhalt" ausgelesen
    echo "Geschrieben von".$data['Nickname']." am ".$data['Datum']." .<br><br>"; //Hier werden halt Nickname und Datum ausgelesen
    echo "<a href='eintrag.html'>Eintragen</a>"; //Link zum Formular
    ?>


    Ich weiss nicht wie das mit der "richtigen variablen" gemeint war
  5. k**********e

    <?
    include ("config.php");




    mysql_connect("$host","$user","$passwort");
    mysql_select_db("$datenbank"); //mit diesem Befehl waehlt ihr die Datenbank aus wo die Daten gespeichert werden


    $sql = "SELECT * FROM gbook ORDER BY ID DESC"; // hier war ein ; zuviel

    $result = mysql_query($sql) od die(mysql_error() . '<br />' . $sql);
    $data = mysql_fetch_assoc($result);


    echo "<br>".$data['inhalt']."<br><br>"; //bei diesem Echo wird der inhalt aus der Spalte "Inhalt" ausgelesen
    echo "Geschrieben von".$data['Nickname']." am ".$data['Datum']." .<br><br>"; //Hier werden halt Nickname und Datum ausgelesen
    echo "<a href='eintrag.html'>Eintragen</a>"; //Link zum Formular
    ?>

    $sql war richtig *gg* mit der richtigen variable war die mit
    dem mysql-befehls-string gemeint ($sql)

    und nun zu der tabelle:
    name, email und websites stat tinyint(4) zu varchar(250) machen
    datum zu int(14) machen und inhalt zu text machen (damit sind die types gemeint)
    ID zu prim?rykey + auto_incrament ?ndern

    oder diesen code benutzen (vorher die alte tabelle l?schen)
    CREATE TABLE `gbook` (
    `ID` INT( 11 ) NOT NULL AUTO_INCREMENT ,
    `datum` INT( 14 ) NOT NULL ,
    `name` VARCHAR( 100 ) NOT NULL ,
    `email` VARCHAR( 150 ) NOT NULL ,
    `webseite` VARCHAR( 200 ) NOT NULL ,
    `inhalt` TEXT NOT NULL ,
    PRIMARY KEY ( `ID` )
    );
  6. Autor dieses Themas

    sebbel

    sebbel hat kostenlosen Webspace.

    Was muss denn bei "text" an l?nge hin?

    und in zeile 13 bei book.php kommt immer noch der fehler
  7. k**********e

    bei text muss keine l?nge hin
    ich hoffe du hast mein edit gesehen

    und ich hab mich verschrieben stat od kommt da or hin

    <?
    include ("config.php");

    mysql_connect("$host","$user","$passwort");
    mysql_select_db("$datenbank");

    $sql = "SELECT * FROM gbook ORDER BY ID DESC";

    $result = mysql_query($sql) or die(mysql_error() . '<br />' . $sql);
    if(mysql_num_rows($result) > 0)
    {

    while($data = mysql_fetch_assoc($result))
    {
    echo "<br>".$data['inhalt']."<br><br>"; /echo "Geschrieben von".$data['name']." am ".$data['datum']." .<br><br>"; }
    } else {
    echo 'Keine Eintr?ge vorhanden<br />';
    }
    echo "<a href='eintrag.html'>Eintragen</a>";
    ?>
  8. Autor dieses Themas

    sebbel

    sebbel hat kostenlosen Webspace.

    Jetzt funktioniert praktisch alles,danke bis heirher, ausser das speichern in der datenbank. Dazu habe ich folgendes formular gepastelt, doch ich nehme an, dass da was falsch is ^^

    <html>
    <head>
    </head>
    <body>

    <form action="save.php">
    <table border="0" cellpadding="5" cellspacing="0" bgcolor="#E0E0E0">
    <tr>
    <td align="right">Name:</td>
    <td><input name="name" type="text" size="30"></td>
    </tr><tr>
    <td align="right">E-Mail:</td>
    <td><input name="email" type="text" size="30"></td>
    </tr><tr>
    <td align="right">Website:</td>
    <td><input name="website" type="text" size="30">
    </tr><tr>
    <td align="right" valign="top">Nachricht:</td>
    <td><textarea name="inhalt" rows="10" cols="50"></textarea></td>
    </tr><tr>
    <td>
    <input type="submit" value=" Absenden ">
    <input type="reset" value=" Abbrechen">
    </td>
    </tr>
    </table>
    </form>

    </body>
    </html>
  9. k**********e

    bei form kommt noch <form action="save.php" method="post">hin.

    und dann zeig mal die komplette save.php. denn dort muss der fehler beim speichern sein
  10. Autor dieses Themas

    sebbel

    sebbel hat kostenlosen Webspace.

    <?
    include ("config.php");
    mysql_connect("$host","$user","$passwort");
    mysql_select_db("$datenbank");

    $date = date("d.M.y H:i");

    $sql = "INSERT INTO gaestebuch (name,email,website,datum,inhalt,) VALUES ('$name','$email','$website','$datum','$inhalt');"; //Dies ist der Befehl der nachher die Datenbank empfangen wird. In den Klammern nach "gbook" sind die Spalten und hinter "VALUES" stehn die dazugeh?rigen Informationen.
    $result = mysql_query($sql);
    echo "Danke f?r den Eintrag";
    ?>

    so sieht die save aus
  11. Hi

    zu deiner Tabelle.

    TINYInt(4) ist f?r mich eine Zahl. Wie willst du da Emialadresse, etc. speichern???

    Vielleicht hab ich das ganze auch nur falsch verstanden, bin schlie?lich kein php Profi.

    Gru? Tobi
  12. k**********e

    ich tippe da auf die ragister globals^^

    <?
    include ("config.php");
    mysql_connect("$host","$user","$passwort");
    mysql_select_db("$datenbank");

    $date = time();

    $sql = "INSERT INTO gbook (name,email,website,datum,inhalt,) VALUES ('".$_POST['name']."','".$_POST['email']."','".$_POST['website']."','$datum','".$i_POST['inhalt']."')"; $result = mysql_query($sql) or die(mysql_error() . '<br />' . $sql);
    echo "Danke f?r den Eintrag";
    ?>

    dabei will ich nur mal erw?hnen, dass das script hier seine vollen schw?chen zeigt, da die vom user eingegebenen daten nicht im geringsten gepr?ft werden.

    wenn du da mehr infos willst, dann schreib mir eine pn, da es sonst diesen thread sprengen w?rde.
    ich werde dir dann morgen weiter helfen.
    gute nacht

    [edit]
    an den vorposter... das w?rde gleich im zwieten post gekl?rt

    oder diesen code benutzen (vorher die alte tabelle l?schen)
    CREATE TABLE `gbook` (
    `ID` INT( 11 ) NOT NULL AUTO_INCREMENT ,
    `datum` INT( 14 ) NOT NULL ,
    `name` VARCHAR( 100 ) NOT NULL ,
    `email` VARCHAR( 150 ) NOT NULL ,
    `webseite` VARCHAR( 200 ) NOT NULL ,
    `inhalt` TEXT NOT NULL ,
    PRIMARY KEY ( `ID` )
    );
  13. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!