Einfaches Insert Into Funktioniert nicht

Naemi

Member
ID: 326804
L
16 August 2008
23
0
Hallo Leute...

Ich habe folgenden Code:

PHP:
<?
	if($_REQUEST["action"] == "add_member")
		{
			$schreiben = mysql_query("INSERT INTO mitglieder SET nummer='".$_POST["nummer"]."', vorname='".$_POST["vorname"]."', nachname='".$_POST["nachname"]."', alter='".$_POST["alter"]."', position='".$_POST["position"]."', seit='".$_POST["seit"]."', bild='".$_POST["bild"]."'");
			?><script>alert("Mitglied wurde hinzugefügt");location.href="index.php?site=admin/member_admin.php";</script><?
		}
?>

Dazu folgender Screen:


Und folgendes HTML Gerüst:
PHP:
	<fieldset>
		<legend>MITGLIED HINZUFÜGEN</legend>
		<form method="post" action="index.php?site=admin/member_admin.php&action=add_member">
			<input type="text" name="nummer" value="Rückennummer" size="25" /><br />
			<input type="text" name="vorname" value="Vorname" size="25" /><br />
			<input type="text" name="nachname" value="Nachname" size="25" /><br />
			<input type="text" name="alter" value="Alter" size="25" /><br />
			<select size="1" name="position">
				<option>Goalie</option>
				<option>Linker Stürmer</option>
				<option>Rechter Stürmer</option>
				<option>Center</option>
				<option>Linker Verteidiger</option>
				<option>Rechter Verteidiger</option>
				<option>Trainer</option>
				<option>Betreuer</option>
			</select><br />
			<input type="text" name="seit" value="Mitglied Seit" size="25" /><br />
			<input type="text" name="bild" value="Bild" size="25" /><br />
			<input type="submit" name="go" value="Mitglied hinzufügen" />
		</form>
	</fieldset>

Immer wenn ich nun ein Mitglied in die Datanbank einfügen möchte zeit er mir keinen Datensatz an.
Das alert(); wird ausgeführt bzw. die abfrage if($_REQUEST["action"] == "add_member") ist 100% == true

ist bestimmt ganz simpel, aber ich habe erst vor zwei Monaten mit PHP und HTML bzw. css angefangen.

Ich hoffe ihr könnt mir helfen...

Vielen Dank :D

Gruß
Naemi
 
1. Bitte verwende Thumbnails

2. INSERT INTO *** SET ist nicht gerade die beste Methode... Besser wäre es, wenn du INSERT INTO *** (spaltenname1, spaltenname2) VALUES (spaltenwert1, spaltenwert2)
 
INSERT INTO ... SET is ja auch falsch. Du musst INSERT INTO ... VALUES benutzen.

P.S. SQL-Injections beachten

P.P.S. Nummer und Alter sind Integers laut deinem Schema 8O Seit sieht mir mehr nach Datum aus, also benutz auch Typ DATE dafür. Für Standard "unbekannt" kannst du 0000-00-00 als Datum eintragen.
 
hallo...

danke für eure schnelle hilfe...
wie würde das denn mit values aussehen =/?
habe bis jetzt immer nur SET benutzt.
google schmeißt mir nur seiten aus in dem keine variablen sondern direkte werte übertragen werden.

SQL-Injections?
ist mein code injectbar? und wenn ja wieso :) ?

Habe datum nun mal umgestellt und auch im code geändert...
funkioniert leider immer noch nicht =/
 
wie würde das denn mit values aussehen =/?
habe bis jetzt immer nur SET benutzt.
:rtfm: ;)
https://dev.mysql.com/doc/refman/5.1/de/insert.html
SQL-Injections?
ist mein code injectbar? und wenn ja wieso :) ?
Natürlich ist er das. Die Eingabe wird ungeprüft einfach übernommen. Wie du die Injections vermiedest, findest du hier im Forum (Snipplets-Thread im FAQ-Forum und Erklärungen dazu, wenn du einfach mal suchst; gibt viele Threads dazu).
Plausibilitäts- und Gültigkeitstests müssen selbstverständlich zusätzlich gemacht werden.
Habe datum nun mal umgestellt und auch im code geändert...
funkioniert leider immer noch nicht =/
Das mit dem Datum war auch nur ein strukturieller Fehler, der ändert nicht wirklich was an deinem Fehler.
 
P.P.S. Nummer und Alter sind Integers laut deinem Schema 8O Seit sieht mir mehr nach Datum aus, also benutz auch Typ DATE dafür. Für Standard "unbekannt" kannst du 0000-00-00 als Datum eintragen.
Ich denke mal vorher waren Timestamps in Benutzung. Also könnte man auch hier mal einen Blick drauf werfen, von wegen Geschwindigkeit beim Umrechnen ;) [PHP/MySQL] Datumsspeicherung
 
Ich denke mal vorher waren Timestamps in Benutzung. Also könnte man auch hier mal einen Blick drauf werfen, von wegen Geschwindigkeit beim Umrechnen ;) [PHP/MySQL] Datumsspeicherung

Erstmal Danke für den Ansatzpunkt.
Die Webseite die ich mache ist eigentlich nur für einen Verein...
Wie das Datum letzlich ausgegeben wird bzw. wie schnell die Seite letzlich geladen wird spielt eigentlich keine Rolle.
Die homepage besteht sowieso nur aus ein paar seiten :) :p
 
Konnte das problem bis jetzt leider nicht beheben.
ich gehe jetzt erstmal ins bett...
ich hoffe es weiß hier jemand genau woran das liegt...

@meine 3 vorposter
danke schonmal für eure hilfe
 
Hast du Zugriff auf phpMyAdmin? Dann schau dir doch mal an wie die sql Befehle dort aussehen. Das kann vor allem am Anfang hilfreich sein :)
 
Eventuell liegt's daran, dass "alter" ein reserviertes Wort von MySQL ist.

Aber das wird man nur dann genau wissen, wenn Du nach dem mysql_query() folgendes schreibst:
PHP:
echo mysql_error();
Damit kriegst Du die Fehlermeldung von MySQL ausgegeben und die ist ungemein hilfreich.