Problem mit INSERt INTO...

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem mit INSERt INTO...

    hallo, erstmal.
    ich wollte mir heute eine shoutbox auf mysqlbasis machen, da ich mit sqlite gescheitert bin. dagfür habe ich folgenden code gemacht:
    PHP-Code:
    <? include_once("sessionhelpers.inc.php"); 
    session_start(); ?>
    <html>
    <form action="shout.php" method="POST">
    <table>
    <tr>
    <td><input type="hidden" name="name" value="<? name() ?>"></td>
    </tr>
    <tr>
    <td>Nachricht:</td>
    <td><input type="text" name="message"></td>
    </tr>
    <tr>
    <td colspan="2"><input type="submit" value="Schreien"></td>
    </tr>
    </table>
    <input type="hidden" name="kontroll" value="1">
    <?php
    if (!isset($zahl)) {
    $zahl=0;
    }
    echo 
    '<input type="hidden" name="zahl" value='.$zahl.'>
    </form>'
    ;
    $message$_POST["message"];
    $name$_POST["name"];
    function 
    shout($name$message)
    {
    $sql 'INSERT INTO `shoutbox` (`autor`, `nachricht`, `time`) 

    VALUES ('
    .$name.', '.$message.', NOW())';
    mysql_query($sql);
    }
    if (isset(
    $_POST["message"]))
    {
    shout($name$message);
    }
    $zahl++;
    ?>
    nur: wenn ich auf schreien klicke, kommt kein error und die seite wird normal neu geladen, aber in der db steht keine neue zeile. was ist falsch?(in der sessionhelpers stehen nur die zugangsdaten und die funktion name()

    bitte helft mir(wenn falscher bereich bitte verschieben)

  • #2
    Mal wieder die Regeln nicht befolgt?
    http://www.php-resource.de/forum/sho...threadid=47906

    - mysql_error()
    - Und natürlich die obligatorischen Testausgaben machen.

    Kommentar


    • #3
      hab ich. gibt nix aus

      Kommentar


      • #4
        Echt?

        Ich sehe weder ein mysql_error() in deinem Quelltext, noch kann ich nachvollziehen, warum deine Testausgaben nichts ausgeben.

        Sorry, aber das kann nicht sein! Bitte ein bisschen mehr initiative. Wir helfen gern, aber es kann nicht angehen, dass wir deine Arbeit machen...

        Kommentar


        • #5
          Ich sehe nirgendswo das du eine Verbindung zu der Datenbank aufbaust.

          Kommentar


          • #6
            die verbindung wird in der sessionhelpers.inc.php aufgebaut

            ups, vergessen die codeänderung zu posten. jetzt hab ich mysql_error() eingebaut und bekomme folegndes:
            Unknown column 'Miam' in 'field list'
            (miam ist der name der durch name() zurückgegeben wird)

            so, noch etwas gewerkelt. jetzt kommt direkt beim auf ruf das hier:

            Warning: Unexpected character in input: ''' (ASCII=39) state=1 in ################shout.php on line 28

            Parse error: syntax error, unexpected ',' in ##################/shout.php on line 28

            dies hier ist dre bereich um zeile 28:
            PHP-Code:
            function shout($name$message)
            {
            $sql 'INSERT INTO `shoutbox` (`autor`, `nachricht`, `time`) 

            VALUES ('
            .$name.', '.$message.', NOW());
            mysql_query($sql) or die(mysql_error());

            Zuletzt geändert von Champ Wasili; 01.06.2008, 18:23.

            Kommentar


            • #7
              Parse error: syntax error, unexpected ',' in ##################/shout.php on line 28
              Das siehst du doch schon am Code-Highlighting hier im Forum. Hinter "NOW())" fehlt ein schließendes Anführungszeichen.

              Zum fehlenden mysql_error() der auf einmal doch etwas ausgibt, sage ich jetzt mal nichts.

              Kommentar


              • #8
                habs jetzt gemacht wie du sagtest gibt folgendes error:

                You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?, NOW())' at line 1

                code:
                PHP-Code:
                function shout($name$message)
                {
                $sql 'INSERT INTO `shoutbox` (`autor`, `nachricht`, `time`) 

                VALUES ('
                .$name.', '.$message.', NOW())';
                mysql_query($sql) or die(mysql_error()); 
                das ? im error kommt von dre nachricht die ich eingetippt habe

                gerade habe ich es nochmal versucht und bekam:
                unknow column Miam in fieldlist odre so.
                Zuletzt geändert von Champ Wasili; 01.06.2008, 19:44.

                Kommentar


                • #9
                  Strings müssen auch im Query in Anführungsstriche gesetzt werden.

                  PHP-Code:
                  function shout($name$message)
                  {
                  $sql 'INSERT INTO `shoutbox` (`autor`, `nachricht`, `time`) 

                  VALUES (\''
                  .$name.'\', \''.$message.'\', NOW())';
                  mysql_query($sql) or die(mysql_error()); 
                  EDIT:
                  hmm
                  Leider wurden die Backslashes automatisch entfernt..... das ist ja blöd.....

                  also [Backslash]''.$name.'[BACKSLASH]', [Backslash]''.$message.'[BACKSLASH]', NOW()

                  Zuletzt geändert von case; 01.06.2008, 21:37.
                  signed oder unsigned... das ist hier die Frage

                  Kommentar


                  • #10
                    Nimm doch einfach die normalen Anführungszeichen (") dazu, dann brauchst du auch nichts escapen.

                    Kommentar


                    • #11
                      ^danke das geht jetzt. ich habe einfach aus phpmyadmin nen code genommen(hatte ich vorher auch) und die variablen anders eingebaut.

                      aber jetzt hab ich dieses prob. das eig. nichts mit dem namen zu tun hat.

                      ichn habe folgenden code für die ausgabe:
                      PHP-Code:
                      <?
                      include_once("sessionhelpers.inc.php");
                      function chattext()
                      {
                      $sql = 'SELECT *FROM `shoutbox` ORDER BY `time` DESC LIMIT 0, 15 ';
                      $result = mysql_query($sql);
                        while($row = mysql_fetch_object($result))
                          {
                          echo $row->autor.'sagte:'.row->nachricht;
                          }

                      }

                      chattext();
                      ?>
                      aber es kommt:

                      Parse error: syntax error, unexpected T_OBJECT_OPERATOR, expecting ',' or ';' in /usr/export/www/hosting/funwars/frau/chatext.php on line 9

                      Kommentar


                      • #12
                        PHP-Code:
                        echo $row->autor.'sagte:'.$row->nachricht
                        Daran könnts liegen.
                        Assembler ist eine Methode,
                        Programme, die zu langsam laufen,
                        so umzuschreiben,
                        dass sie überhaupt nicht mehr laufen.

                        Kommentar


                        • #13
                          das ist mir klar. aber was ist daran falsch?

                          Kommentar


                          • #14
                            Dein geposteter Code:
                            PHP-Code:
                            echo $row->autor 'sagte: ' row->nachricht
                            Verbessert:
                            PHP-Code:
                            echo $row->autor 'sagte: ' $row->nachricht
                            Assembler ist eine Methode,
                            Programme, die zu langsam laufen,
                            so umzuschreiben,
                            dass sie überhaupt nicht mehr laufen.

                            Kommentar


                            • #15
                              ok. ich finde zwar gerade dn unterschied nicht, aber es klappt. danke.

                              Kommentar

                              Lädt...
                              X