coconut123: Das funzt irgendwie nicht

Hallo! Erst mal der Code:

  
<?php  
  
	//Mit Get hol ich mir den Inhalt des Formulars...  
	$nickname = $_GET['Nickname_form'];  
	$email = $_GET['Email_form'];  
	$homepage = $_GET['Homepage_form'];  
	$ort = $_GET['Ort_form'];  
	$geschlecht = $_GET['Geschlecht_form'];  
	$kommentar = $_GET['Kommentar_form'];  
	$submit = $_GET['Submit_form'];  
  
	//Connecte meine DB "wm-tippspiel"  
	@ $db = new mysqli('localhost','root','','wm-tippspiel');  
  
?>  

Dann in html das Formular:

  
<html>	  
	<div style="width: 600px">  
		<fieldset><legend>Neuen Eintrag hinzufügen</legend>  
			<form name="Neuer_Eintrag" method="" action="">  
				<table>  
					<colgroup>  
						<col><col><col>  
					</colgroup>  
					<tr>  
						<td>Spitzname</td><td><input type="text" name="Nickname_form"></td><td></td>  
					</tr>  
					<tr>  
						<td>Email</td><td><input type="text" name="Email_form"></td><td></td>  
					</tr>  
					<tr>  
						<td>Homepage</td><td><input type="text" name="Homepage_form"></td><td></td>  
					</tr>  
					<tr>  
						<td>Ort</td><td><input type="text" name="Ort_form"></td><td></td>  
					</tr>  
					<tr>  
						<td>Geschlecht</td><td><input type="radio" name="Geschlecht_form" value="w"> weiblich <input type="radio" name="Geschlecht_form" value="m"> männlich</td><td></td>  
					</tr>  
					<tr>  
						<td>Kommentar</td><td><textarea name="Kommentar_form"></textarea></td><td></td>  
					</tr>  
					<tr>  
						<td colspan="3"><input type="submit" name="Submit_form" value="Veröffentlichen"></td>  
					</tr>  
				</table>  
			</form>  
		</fieldset><br><br>  
	</div>  
</html>  
  

Und dann verarbeite ich das ganze...

  
  
<?php  
  
	//Eintrag verarbeiten  
	if(!empty($nickname) && !empty($email) && !empty($kommentar)){  
			$new_Eintrag = $db->query("INSERT INTO gaestebuch-eintraege SET nickname='$nickname', email='$email', ort='$ort', geschlecht='$geschlecht', kommentar='$kommentar', homepage='$homepage'");  
			echo "<br><br>Klasse, bei der Registrierung ist alles glatt gelaufen... Danke, dass du dabei bist...";  
	}  
		  
	else {  
			echo "<br>Sorry - leider ist was beim registrieren schief gelaufen. Nähere Infos erhälst du ja oben...";  
	}  
  
?>	  
			  

Sorry das ich euch jez so mit infos zumülle, aber könnte jemand meine fehler erklären und berichten? Denn wenn ich dann auf den submit-button drücke, macht er dennoch keinen eintrag in mysql.

vielen dank, mfg coconut123

  1. Hi!

    @ $db = new mysqli('localhost','root','','wm-tippspiel');
    ?>

      
    Du unterdrückst hier eine möglicherweise aufschlußreiche Fehlermeldung.  
      
    Wie sieht die Query aus, die Du an den DB-Server übergibst?  
    Also, was sagt: ~~~php
      
    echo "INSERT INTO gaestebuch-eintraege SET nickname='$nickname', email='$email', ort='$ort', geschlecht='$geschlecht', kommentar='$kommentar', homepage='$homepage'";  
    
    ~~~?  
      
    Fehlermeldungen solltest Du unbedingt mit posten - sorge notfalls dafür, dass Du eine solche erhälst.  
      
    BTW: das Umkopieren der Daten aus dem superglobalen Array $\_GET ist unnötig und evtl. kritisch!  
      
    off:PP  
      
      
    
    -- 
    "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)  
    
    
    1. Ähhhh?

      Ich versteh' nur Bahnhof!
      1. Da kommt gar keine Fehlermeldung
      2. Was wär' den besser als GET? Vielleicht REQUEST?

      danke, mfg coconut123

      1. Hi!

        Ähhhh?

        Angenehm - Peter Pan!

        Ich versteh' nur Bahnhof!

        Dann frage doch bitte gezielt nach, damit man Dir helfen kann!

        1. Da kommt gar keine Fehlermeldung

        Dazu schrieb ich bereits etwas.

        1. Was wär' den besser als GET?

        Das ist _im Moment_ irrelevant.

        Vielleicht REQUEST?

        Nein! Es wäre aber sinnvoll - insbesondere bei größeren Datenmengen - die Methode POST zu verwenden.

        off:PP

        --
        "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
    2. Jipp, das hab' ich jez ausprobiert, und dann steht da beispielsweise:

      INSERT INTO gaestebuch-eintraege SET nickname='bubub', email='bubub', ort='bubub', geschlecht='', kommentar='ububu', homepage='bubub'

      aber wenn ich dann method auf POST setze, passiert bei neuer eingabe nüscht...

      dennoch weiß ich jez nicht, worauf du hinauswillst!

      HELP!

      1. Hi!

        INSERT INTO gaestebuch-eintraege SET nickname='bubub', email='bubub', ort='bubub', geschlecht='', kommentar='ububu', homepage='bubub'

        Die Syntax ist komplett falsch - das habe ich vorher übersehen - sorry!

        Versuche es so:

          
        INSERT INTO gaestebuch-eintraege (nickname, email, ort, geschlecht, kommentar, homepage)  
        VALUES ('bubub', 'bubub', 'bubub', '', 'ububu', 'bubub')  
        
        

        SET etc. gibt es in SQL bei UPDATE, aber nicht beim INSERT.

        aber wenn ich dann method auf POST setze, passiert bei neuer eingabe nüscht...

        Die HTTP-Methode hat nichts damit zu tun!

        HELP!

        Locker bleiben und nicht schreien bitte!

        off:PP

        --
        "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
        1. HELP!

          Locker bleiben und nicht schreien bitte!

          GRRRR! Wie denn? Das funktioniert auch nicht!!! MANNNNN!
          Diese *******, und ***** *** ******** **

          1. Hi!

            GRRRR! Wie denn? Das funktioniert auch nicht!!! MANNNNN!

            Was genau hast Du gemacht?
            Kennst Du mysqli::connect_error und mysqli::error?

            off:PP

            --
            "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
            1. 1. Iwie trifft kein fall darauf zu, weil ich die db mit @ $db aufrufe
              2. er zeigt an (fall 2), das es eine unbekannte systemvariable a nicht gibt...:

              Errormessage: Unknown system variable 'a'

              Hilfe nochmal!

              1. Hi!

                Wenn es um SQL und Datenbanken geht hat Vinzenz _immer_ recht - siehe:
                https://forum.selfhtml.org/?t=196292&m=1314973

                off:PP

                --
                "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
        2. Hallo,

          INSERT INTO gaestebuch-eintraege SET nickname='bubub', email='bubub', ort='bubub', geschlecht='', kommentar='ububu', homepage='bubub'

          Die Syntax ist komplett falsch -

          sie ist falsch, das ist richtig.

          das habe ich vorher übersehen - sorry!

          Du hast etwas anderes übersehen ...

          SET etc. gibt es in SQL bei UPDATE, aber nicht beim INSERT.

          ... denn sicher gibt es SET bei INSERT.

          Die Fehlermeldung, die die Kokosnuss sich nicht anzeigen lässt, lautet in etwa:

          "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 '-eintraege SET nickname=..."

          Wenn man außer dem sehr eingeschränkten Zeichenvorrat, der als nicht speziell angesehen wird, noch andere Zeichen in seinen Tabellennamen (Spaltennamen, Datenbanknamen, ...) benutzt, muss man den Namen quoten, siehe Handbuch.

          Welches spezielle Zeichen hier verwendet wurde, sollte aus der Fehlermeldung hervorgehen :-)

          Freundliche Grüße

          Vinzenz

          1. Hi Vinzenz!

            Wo bleibst Du denn solange? ;)

            INSERT INTO gaestebuch-eintraege SET nickname='bubub', email='bubub', ort='bubub', geschlecht='', kommentar='ububu', homepage='bubub'

            Die Syntax ist komplett falsch -

            sie ist falsch, das ist richtig.

            das habe ich vorher übersehen - sorry!

            Du hast etwas anderes übersehen ...

            Ja, jetzt sehe ich das auch!

            SET etc. gibt es in SQL bei UPDATE, aber nicht beim INSERT.

            ... denn sicher gibt es SET bei INSERT.

            Oops - yo!

            Die Fehlermeldung, die die Kokosnuss sich nicht anzeigen lässt, lautet in etwa:

            "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 '-eintraege SET nickname=..."

            Wenn man außer dem sehr eingeschränkten Zeichenvorrat, der als nicht speziell angesehen wird, noch andere Zeichen in seinen Tabellennamen (Spaltennamen, Datenbanknamen, ...) benutzt, muss man den Namen quoten, siehe Handbuch.

            Verdammte Backticks!

            Welches spezielle Zeichen hier verwendet wurde, sollte aus der Fehlermeldung hervorgehen :-)

            Ja, das habe ich wirklich übersehen - aber dafür gibt es ja glücklicherweise Dich hier!

            off:PP

            --
            "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
          2. Mal ne frage: Wieso sehe ich diesen Eintrag nicht???

            Der Datenbank name: natürlich, da ist ein - drin, aber daran kann nicht liegen...

            1. Hi!

              Mal ne frage: Wieso sehe ich diesen Eintrag nicht???

              Welchen Eintrag?

              Der Datenbank name: natürlich, da ist ein - drin, aber daran kann nicht liegen...

              Ähm: Sicher?

              off:PP

              --
              "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
            2. Hallo,

              Mal ne frage: Wieso sehe ich diesen Eintrag nicht???

              weil keiner vorgenommen wird, weil die SQL-Syntax fehlerhaft ist.

              Der Datenbank name: natürlich, da ist ein - drin, aber daran kann nicht liegen...

              im Tabellenname ist auch ein Minuszeichen drin, Du schreibst:

              "INSERT INTO gaestebuch-eintraege".

              Der Tabellenname ist nicht gequoted, das ist auf jeden Fall ein Fehler, den MySQL nicht durchgehen lässt.

              Freundliche Grüße

              Vinzenz

              1. Und wie quote ich dat?

                1. Hallo,

                  Und wie quote ich dat?

                  RTFM.

                  Ich hatte es genau aus diesem Grund bereits verlinkt und zusätzlich hat's Dir Peter Pan bereits im Klartext gesagt.

                  Grüße

                  Vinzenz

  2. Aha, schritt weiter: mysql zeigt an, das die db gecrasht ist ;)

  3. okay leute, jetzt schließ ich den thread wieder: tatsächlich - ich hab ne neue tabelle angelegt und schwupdiwupp war alles okay :)))))

    1. Mahlzeit Di Kokusnus is häpi,

      leute, jetzt schließ ich den thread wieder:

      Ganz sicher nicht.

      tatsächlich - ich hab ne neue tabelle angelegt und schwupdiwupp war alles okay :)))))

      Ganz sicher nicht.

      MfG,
      EKKi

      --
      sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
      1. OH DOCH! UND OB - denn ich bin häppi!!!