hilfdirselbst.ch
Facebook Twitter gamper-media
Rudolfsport
Beiträge: 39
23. Dez 2004, 13:29
Beitrag #1 von 6
Bewertung:
(1017 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Radiobuttons


halöle,
ich hab ne frage. Ich habe in einem Formular einige radio buttons untergebracht. Nun möchte ich, dass der gewählte radio button nach drücken eines bestätigungsbuttons in eine Datenbank eingetragen wird.
Ich bin nun schon soweit, dass ich den Code habe, nur es werden andauern fhelermeldungen angezeigt:

Fehlermeldung 1:

Kann Query nicht ausführen : 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 '1' at line 1

So sieht der dazugehörige Code ds Koresspondierendem PHP´s aus:

<?
$link = mysql_connect('localhost', 'xxxx', 'yyyyy');
if (!$link) {
die('keine Verbindung möglich: ' . mysql_error());
}


$db_selected = mysql_select_db('xxxxx', $link);
if (!$db_selected) {
die ('Kann Kalender nicht benutzen : ' . mysql_error());
}

$sql = mysql_query("INSERT INTO vertrag (wahl) VALUES ('$_POST[NAME]')");

mysql_query($sql) or die ('Kann Query nicht ausführen : ' . mysql_error());

echo "<br>";
echo "<br>";
echo "<a href='javascript:history.go(-2)'><b>Zurück</b></a>";
?>

Fehlermeldung 2:

Kann Query nicht ausführen : Query was empty

Der dazugehöroge Code ist so:

<?
$variable = $_POST['NAME'] ;
$link = mysql_connect('localhost', 'llllll', 'yjlkjlk');
if (!$link) {
die('keine Verbindung möglich: ' . mysql_error());
}


$db_selected = mysql_select_db('ooooooo', $link);
if (!$db_selected) {
die ('Kann Kalender nicht benutzen : ' . mysql_error());
}


$sql = mysql_query("INSERT INTO vertrag ('wahl') VALUES ('".$variable."')" ) ;

mysql_query($sql) or die ('Kann Query nicht ausführen : ' . mysql_error());

echo "<br>";
echo "<br>";
echo "<a href='javascript:history.go(-2)'><b>Zurück</b></a>";
?>

Dazu sei gesagt, dass das 2 varianten sind, die ich bisher versucht habe. Ich möchte nun wissen wo der Fehler liegt und ob ihr mir das eventuell verbessern könntet.


(Dieser Beitrag wurde von Rudolfsport am 23. Dez 2004, 13:30 geändert)
Top
 
X
pat87
Beiträge: 581
23. Dez 2004, 13:36
Beitrag #2 von 6
Beitrag ID: #132235
Bewertung:
(1017 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Radiobuttons


versuche es mal so:

INSERT INTO `table` (`fiel`) VALUES ('$content');


mfg p@
---
so einfach wie möglich, aber nicht einfacher! (albert einstein)
als Antwort auf: [#132233] Top
 
Pozor
Beiträge: 892
23. Dez 2004, 14:33
Beitrag #3 von 6
Beitrag ID: #132250
Bewertung:
(1017 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Radiobuttons


Hallo Rudolfsport,

ich denke du hast da was verwechselt beim benutzen von mysql_query:
http://www.php.net/mysql_query

diese Funktion liefert das Ergebnis und nicht die sql query zurück.

$sql = mysql_query("INSERT INTO vertrag (wahl) VALUES ('$_POST[NAME]')");
mysql_query($sql) or die ('Kann Query nicht ausführen : ' . mysql_error());

sollte so aussehen:
$ergebnis = mysql_query("INSERT INTO vertrag (wahl) VALUES ('$_POST[NAME]')");
oder
$sql = "INSERT INTO vertrag (wahl) VALUES ('$_POST[NAME]')"
$ergebnis = mysql_query($sql);

$sql = "INSERT INTO vertrag (wahl) VALUES ('$_POST[NAME]')"
solltest du in
$sql = "INSERT INTO vertrag (wahl) VALUES ('$_POST['NAME']')"
ändern, sonst sieht die query etwa so aus:

Als verarbeiteter String der so an die DB geschickt wird.
INSERT INTO vertrag (wahl) VALUES ('$_POST['NAME]')

Wenn du Probleme mit Querys hast, immer die query ausgeben:
echo '<br>QUERY:'.$sql;
So können viele Fehlerquellen schnell gefunden werden.

Gruss Stefan

"KISS - KEEP IT SIMPLE, STUPID"
Ein paar Debuggingtricks:
http://www.boelsterli.biz/test/hds/debugging.php
als Antwort auf: [#132233] Top
 
Kusi
Beiträge: 1398
23. Dez 2004, 14:39
Beitrag #4 von 6
Beitrag ID: #132255
Bewertung:
(1017 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Radiobuttons


Hallo
Hast du den Name der Radiobuttons als Name definiert? In der Regel wird das so geschrieben:

<input type="radio" name="radiogroup" value="radioValue">

Unter name sollte nun bei dir Name stehen sonst wird er bei der Abfrage $variable = $_POST['Name']; nicht gefunden und $variable ist leer.

Gruss
Kusi

http://www.k-k.ch
Grafik, Layout, Webdesign
als Antwort auf: [#132233] Top
 
ganesh  M 
Beiträge: 1981
23. Dez 2004, 14:46
Beitrag #5 von 6
Beitrag ID: #132258
Bewertung:
(1017 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Radiobuttons


Achtung mit ' + "

$sql = mysql_query("INSERT INTO vertrag (wahl) VALUES ('$_POST[NAME]')");

^ so wird nie was draus


$foo = trim($_POST['blah']);
$sql = mysql_query("INSERT INTO vertrag(wahl) VALUES('$blah')");

ODER:
$sql = mysql_query(
"INSERT INTO vertrag(wahl) VALUES(' " . $_POST['NAME'] . "')");

Etwas mühsamer zu lesen, deshalb ziehe ich meist erste Variante vor. Aber da man sowieso NIE ungeprüfte / ungefilterte User-Inputs speichern sollte, muss man eh zuerst die Werte kontrollieren, und das läuft meistens über Zwischenvariablen.


als Antwort auf: [#132233] Top
 
Rudolfsport
Beiträge: 39
23. Dez 2004, 22:25
Beitrag #6 von 6
Beitrag ID: #132314
Bewertung:
(1017 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Radiobuttons


hi,
ok danke für eure hilfe, ich habe es nun hinbekommen.
als Antwort auf: [#132233] Top
 
X