1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Via Formular in MYSQL DB speichern.. funkt nicht :(

    • Frage
  • Konrad
  • 14. Mai 2004 um 18:50
  • Unerledigt
  • Konrad
    4
    Konrad
    Mitglied
    Punkte
    175
    Beiträge
    23
    • 14. Mai 2004 um 18:50
    • #1

    hab ein Script geschrieben mit PHP damit ich für meine XBOX Seite spiele-reviews in MYSQL DB speichern kann usw..

    jedoch wenn ich nun das komplette review speichern will tut sich nichts.. jedoch weiß ich nicht warum.. wenn ich beim Formular auf "Abschicken" drücke dann tut sich nichts... aber warum bloß?

    Gibts ne Beschränkung der Länger des Textes bei einem Formular? gibts ne beschränkung bei Texten in einer MYSQL DB?

    hier das Formular:

    PHP
    <?php
    
    
    echo "<form action=\"add_game2.php\" method=\"GET\">";
    echo "Titel: <input type=\"text\" name=\"titel\"> <br>";
    echo "Gerne: <input type=\"text\" name=\"genre\"> <br>";
    echo "Publisher: <input type=\"text\" name=\"publisher\"> <br>";
    echo "Entwickler: <input type=\"text\" name=\"entwickler\"> <br>";
    echo "Homepage: <input type=\"text\" name=\"homepage\"> <br>";
    echo "Spieler: <input type=\"text\" name=\"spieler\"> <br>";
    echo "Onlinegaming: <input type=\"text\" name=\"onlinegaming\"> <br>";
    echo "Beschreibung: <textarea row=\"4\" cols =\"50\" name=\"beschreibung\"></textarea> <br>";
    echo "Screenshots: <input type=\"text\" name=\"screenshots\"> <br>";
    echo "Movies: <input type=\"text\" name=\"movies\"> <br>";
    echo "Cover: <input type=\"text\" name=\"cover\"> <br>";
    echo "amazon-Id: <input type=\"text\" name=\"amazon\"> <br>";
    echo "Release-Date: <input type=\"text\" name=\"releasedate\"><br>";
    
    
    echo "<input type=\"submit\" value=\"Spiel hinzufügen\">";
    echo "<input type=\"reset\" value=\"Reset\">";
    echo "</form>";
     
     
    echo "<a href=\"admin_index.php\">zurück zum Admin Menü</a>"; 
    
    
    
    
    ?>
    Alles anzeigen


    und nun wie er es in die DB speichert...

    PHP
    <?php
    
    
    include ("config.php");
    
    
    $db_verbindung = mysql_connect ($host, $user, $password);
    
    
    	if ($db_verbindung)
    		{
    			$db_abfrage = mysql_db_query ($dbname , " 
    
    
    									INSERT INTO games (
    
    									titel, 
    									genre,
    									publisher, 
    									entwickler
    
    									) 
    
    									VALUES (
    									'$titel', 
    									'$gerne',
    									'$publisher', 
    									'$entwickler'
    									) " );
    
    
    			$db_eintrag = mysql_db_query ($dbname, $db_abfrage);
    
    
    			echo "Daten erfolgreich eingetragen";
    
    
    
    
    
    		}
    	else
    
    
    		{
    
    
    			echo "nein";
    
    
    		}
    ?>
    Alles anzeigen


    wär cool wenn mir wer helfen könnte.. liegt das Fehler nun im Script oder in der MYSQL DB? die Daten werden in der MYSQL DB als Longtext gespeichert...

    XBOX Austria
    http://www.xbox.at

  • lerod
    13
    lerod
    Mitglied
    Reaktionen
    5
    Punkte
    1.620
    Beiträge
    315
    • 14. Mai 2004 um 19:22
    • #2

    hi!


    du solltest in der value klausel die apostrophe ( ' - einfaches Anführungszeichen ) bei den variablen weglassen.
    außer das datenfeld verlangt unbedingt nach einem einfachen anführungszeichen, dann würd ich die variante vorschlagen, strings mittels "concatation" zusammen zu basteln:

    PHP
    "start of any text '" . $var . "' and continue here ..."




    lg

  • winf.wol
    2
    winf.wol
    Mitglied
    Punkte
    30
    Beiträge
    6
    • 14. Mai 2004 um 20:44
    • #3

    die eingelesenen variablen ($titel etc) sind erst dann verfügbar, wenn du register_globals auf on setzt (siehe link).

    alternativ kannst du auf die variablen auch so zugreifen:
    $HTTP_GET_VARS['titel'] bzw
    $HTTP_POST_VARS['titel'] wenn du method=post setzt

    method=post würd ich dir übrigens schwer empfehlen, da deine beschreibungen bald zu lang für =get werden (get-anfragen werden über die addresse übergeben, z.b. schreib.php?titel=cooles+spiel&beschreibung=bla+bla+bla)

    die einfachen anführungszeichen kannst lassen, die müssen bei string/varchar werten sowieso da sein...

  • maciek
    16
    maciek
    Mitglied
    Punkte
    2.805
    Beiträge
    434
    • 15. Mai 2004 um 00:25
    • #4

    1) brauchst Du das Formular nicht mit PHP aufzubauen, weil da sowieso keine Variablen drinnen vorkommen. Da brauchst Du Dir keine Mühe mit \"bla\" usw. machen. Auch wenn Du mal variablen einbauen solltest, kannst Du in einem PHP Skript kannst Du folgendes machen:

    <?php
    ... php Teil 1 ...
    ?>
    HTML teil
    <?php
    ... php Teil 2 ...
    ?>

    2) was gegen die einfachen Anführungszeichen sprechen soll, wenn Du einen String in die DB einfügen willst, verstehe ich nicht ganz. Du kannst sehr wohl einfach "start of any text '$var' and continue here ..." schreiben.

    3) longtext? Was willst Du da bitte speichern? :winking_face: Schau mal hier. Ein longtext sind 4GB (!) an Zeichen!

    4) bei Schreibbefehlen an die Datenbank sollte man immer POST benutzen.

    5) langer Rede kurzer Sinn: Ich weiß jetzt auf den ersten Blick nicht, wo der Fehler liegen könnte. :grinning_squinting_face:

    *** Make it idiot proof, and someone will build a better idiot. ***

  • nixor
    3
    nixor
    Mitglied
    Punkte
    50
    Beiträge
    9
    • 15. Mai 2004 um 11:16
    • #5

    seas konrad!

    weis zwar auch nicht genau, wo dein fehler liegt, aber probiers mal so:

    config.inc:

    <?php
    $dbHost = "";
    $dbUser = "";
    $dbPass = "";
    $dbName = "";

    $connect = @mysql_connect($dbHost, $dbUser, $dbPass) or die(mysql_error());
    $selectDB = @mysql_select_db($dbName) or die(mysql_error());
    ?>

    php file:


    <?
    include("connect.inc");
    $sql = "INSERT INTO games (titel,genre, publisher, entwickler )VALUES ('$titel','$gerne','$publisher','$entwickler') ";
    $ergebnis=@mysql_query($sql, $connect) or die("Konnte keine Daten in die Datenbank schreiben!<br>");
    mysql_close($connect);
    ?>

    funkt bei mir immer!


    tipp:

    if ($db_verbindung)
    {
    echo "Daten erfolgreich eingetragen";
    }
    else
    {
    echo "nein";
    }

    solltest du nicht verwenden um zu überprüfen, ob die daten eingetragen wurden, da du ja nur überprüfst, ob du eine verbindung zu datenbank aufgebaut hast!


    hoffe ich konnte dir weiterhelfen!

    mfg,

    nixor!

  • Konrad
    4
    Konrad
    Mitglied
    Punkte
    175
    Beiträge
    23
    • 15. Mai 2004 um 13:34
    • #6
    Zitat von winf.wol

    method=post würd ich dir übrigens schwer empfehlen, da deine beschreibungen bald zu lang für =get werden (get-anfragen werden über die addresse übergeben, z.b. schreib.php?titel=cooles+spiel&beschreibung=bla+bla+bla)

    das war der Fehler.. vielen dank :grinning_squinting_face::thumb:

    XBOX Austria
    http://www.xbox.at

  • Konrad
    4
    Konrad
    Mitglied
    Punkte
    175
    Beiträge
    23
    • 15. Mai 2004 um 13:39
    • #7
    Zitat von maciek

    1) brauchst Du das Formular nicht mit PHP aufzubauen, weil da sowieso keine Variablen drinnen vorkommen. Da brauchst Du Dir keine Mühe mit \"bla\" usw. machen. Auch wenn Du mal variablen einbauen solltest, kannst Du in einem PHP Skript kannst Du folgendes machen:

    <?php
    ... php Teil 1 ...
    ?>
    HTML teil
    <?php
    ... php Teil 2 ...
    ?>

    2) was gegen die einfachen Anführungszeichen sprechen soll, wenn Du einen String in die DB einfügen willst, verstehe ich nicht ganz. Du kannst sehr wohl einfach "start of any text '$var' and continue here ..." schreiben.

    3) longtext? Was willst Du da bitte speichern? :winking_face: Schau mal hier. Ein longtext sind 4GB (!) an Zeichen!

    4) bei Schreibbefehlen an die Datenbank sollte man immer POST benutzen.

    5) langer Rede kurzer Sinn: Ich weiß jetzt auf den ersten Blick nicht, wo der Fehler liegen könnte. :grinning_squinting_face:

    Alles anzeigen

    ad 1) hmm sstimmt.. ist wirklich eine reines HTML Forumlar.. da hast recht :)

    ad 3) ja ich dachte zuerst daß es an der DB liegt weil er lange Texte nicht speichern konnte... deswegen hab ich von Text auf Longtext umgestellt.. :)

    ad 4) das war auch der fehler.. werd ich auch in zukunft nur noch mit POST machen... danke für den Tipp...

    XBOX Austria
    http://www.xbox.at

  • beefy
    13
    beefy
    Mitglied
    Reaktionen
    18
    Punkte
    1.683
    Beiträge
    304
    • 15. Mai 2004 um 16:01
    • #8

    Du mußt auf jeden Fall noch die Variablen vorm Einfügen in die DB durch addslashes() rennen lassen. Ansonsten kannst du keinen Text, der Apostrophe enthält, einfügen. Mag jetzt nicht lang drüber reden, auf jeden Fall mach folgendes:

    PHP
    mysql_query("INSERT INTO table (feld1, feld2) VALUES ('" . addslashes($variable1) . "', '" . addslashes($variable2) ."'";
  • Maximilian Rupp 27. Dezember 2024 um 12:06

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Rechtliches

Impressum

Datenschutzerklärung