Script läuft nicht

Alles, was PHP betrifft, kann hier besprochen werden.

Script läuft nicht

Postby TheEngineer » 28. February 2006 12:20

Hallo Leute ,
ich habe hier ein PHP shript um in eine Tabelle zu schreiben.
Aber es funktioniert nicht .
Kann mir jemand sagen was daran falsch ist??

<?php

//Verbindung zu cds db
$db = mysql_connect("localhost", "user","user") or die ("keine Verbindung");
mysql_select_db(cdcol) or die ("keine Datenbank");

// Datensatzinhalte festlegen


$SQL_Befehl ="
INSERT INTO cds (titel,interpret,jahr)
VALUES ($POST'hallo',$POST'welt', $POST'1999')";
echo ('daten übergeben');
$sql_Befehl


?>
Es wird mir zwar angezeige "Daten übergeben" aber es kommt nix an
TheEngineer
 
Posts: 25
Joined: 01. February 2006 21:17
Location: Braunschweig

Postby Wiedmann » 28. February 2006 13:45

Code: Select all
$SQL_Befehl ="
    INSERT INTO cds (titel,interpret,jahr)
    VALUES ($POST'hallo',$POST'welt',$POST'1999')
";

- Das Array nennt sich $_POST und nicht $POST.
- Nennen sich die Formularfelder wirklich "hallo", "welt" und "1999", oder sind das schon die Werte die übertragen werden?
- Da zumindest "titel" und "interpret" eine VARCHAR-Spalte sein dürfte, musst du die Werte beim INSERT auch als String kennzeichnen (quoten).

Code: Select all
$sql_Befehl

Das war jetzt ja wohl eine Abkürzung für das was tatsächlich im Script steht?
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby TheEngineer » 01. March 2006 08:04

Hallo,
danke für deine Antwort.
Die Formularfelder heissen titel, interpret und jahr in der Tabelle cds. und die Werte die ich da reinschreiben will sind hallo, welt und 1999.

Gruß

Engineer
TheEngineer
 
Posts: 25
Joined: 01. February 2006 21:17
Location: Braunschweig

Postby KingCrunch » 01. March 2006 09:07

Auch ma nen ganz neues Array-Konstrukt...
Code: Select all
$SQL_Befehl ="
    INSERT INTO cds (titel,interpret,jahr)
    VALUES ('".$_POST['hallo']."','".$_POST['welt']."','".$_POST['1999']."')
";

1) Wie Wiedmann schon sagte: Es heißt $_POST, ausser du hast $POST selbst definiert, wovon ich aber nicht ausgehe.
2) Die Indizes bei Arrays werden durch [] umschlossen. Was da vorher stand war .. irgendwie nix :?
3) Ich meine, dass bei SQL die Werte in einfachen Anführungszeichen ' stehen müssen. Da sich das aber mit den Indizes beim Array beißen würde, hab ichs jetzt als Konkatination geschrieben. Müsste auch so gehn:
Code: Select all
$SQL_Befehl ="
    INSERT INTO cds (titel,interpret,jahr)
    VALUES ('{$_POST['hallo']}','{$_POST['welt']}','{$_POST['1999']}')
";
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Postby Wiedmann » 01. March 2006 13:27

Die Formularfelder heissen titel, interpret und jahr in der Tabelle cds. und die Werte die ich da reinschreiben will sind hallo, welt und 1999.

Was du jetzt nicht beantwortet hast... aber ich rate mal das titel und interpret ein VARCHAR und jahr ein INT ist.

In dem Fall dann:
Code: Select all
$SQL_Befehl = "
    INSERT INTO `cds` (`titel`, `interpret`, `jahr`)
    VALUES ('{$_POST['titel']}', '{$_POST['interpret']}', {$_POST['jahr']})
";

oder
Code: Select all
$SQL_Befehl = "
    INSERT INTO `cds` (`titel`, `interpret`, `jahr`)
    VALUES ('$_POST[titel]', '$_POST[interpret]', $_POST[jahr])
";
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby deepsurfer » 01. March 2006 14:22

Mal ne ganz komische frage......

Der Code sieht genauso aus wie im XAMPP die CD-Demo.

Nun kommt die frage auf was TheEngineer da jetzt "geschrieben hat".

Mit ein paar Copy/Paste aufrufen ist der XAMPPcode separiert und lauffähig.



nur mal so am rande :shock:
chirio
Deep
User avatar
deepsurfer
AF Moderator
 
Posts: 6440
Joined: 23. November 2004 10:44
Location: Cologne
Operating System: Win-XP / Win7 / Linux -Debian

Postby KingCrunch » 01. March 2006 14:27

@Wiedmann: gibt es bei deiner zweiten Variante keine Probleme, dass er zum Beispiel titel aus $_POST[titel] versucht als Konstante zu finden?
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Postby Wiedmann » 01. March 2006 15:42

Nein.

du hat beim Ausgeben von Array-Werten u.a. diese Möglichkeiten:
echo $_POST['titel'];
echo "{$_POST['titel']};
echo "$_POST[titel]";

Siehe:
http://de.php.net/manual/en/language.ty ... hp#AEN3263
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby KingCrunch » 01. March 2006 16:10

Ah, ok, hab nich weiter gelesen
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25


Return to PHP

Who is online

Users browsing this forum: No registered users and 1 guest