PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit INSERT INTO


Ina
07.01.2004, 10:06:57
Hallo,
seit eine weile komme ich mit dem fehlermeldung:
Änderung fehlgeschlagen: You have an error in your SQL syntax near '[(pr_nr,k_id,k_name,pr_stand,lead,anfang,ende)] VALUES ('325-214-1','5','L' at line 1

das 'L' oben ist eigentlich abgelesene k_name von tabele "kunden".
Per "echo" kriege ich es richtig geschrieben (die ganze name).

Mein code:

if(isset($HTTP_GET_VARS)){
reset($HTTP_GET_VARS);
foreach($HTTP_GET_VARS as $name=>$value){
echo "<table><tr height="25" valign="middle">";
echo "<td align="right"><font color="gray">".$name."&nbsp;</font></td>";
echo "<td align="left"><font color="gray"><b>".$value."</font></b></td>";
echo "</tr></table>";
}
//Hier suche ich $_GET['k_name'], weil ich die nicht habe
if($_GET['k_name']==""){
$show="SELECT `k_name` FROM `kunden` WHERE `k_id`='".$_GET['k_id']."'";
$result1 = mysql_query($show,$conn);
while ($row1=mysql_fetch_array ($result1, MYSQL_ASSOC))
{
echo $row1['k_name'] ;
$_GET['k_name']=$row1['k_name'];
echo $_GET['k_name'];
}
}

//Eintragen den werten im db:
$changes = "INSERT INTO projekte [(pr_nr,k_id,k_name,pr_stand,lead,anfang,ende)]
VALUES ('".$_GET['pr_nr']."','".$_GET['k_id']."','".$_GET['k_name']."', '".$_GET['pr_stand']."','".$_GET['lead']."','".$GET['anfang']."','".$GET['ende']."')";
$anzeige = mysql_query($changes, $conn);
if (!$anzeige){
die ("Änderung fehlgeschlagen: ".mysql_error());
}
print "<font color="gray"><b>Datensatz wurde gespeichert.</b></font>";
}


Wäre dankbar, wenn mir jemand helfen könnte.
ina

chris17
07.01.2004, 12:00:00
Hi Ina,

was als erstes auffällt sind die [].

# Lass mal die eckigen Klammern weg
# $changes = "INSERT INTO projekte [(pr_nr,k_id,k_name,pr_stand,lead,anfang,ende)]...

$changes = "INSERT INTO projekte (pr_nr,k_id,k_name,pr_stand,lead,anfang,ende)...

Gruss

Ina
07.01.2004, 12:34:56
Vielen Dank Chris!
Wie immer stolpere in blöden Fehlern :(
ina

Ina
07.01.2004, 14:04:39
Hallo Chris,
habe ich mich zu früh gefreut.
Er trägt die datensätze in der tabelle, aber "anfang" und "ende", die in der Tabelle als "date" definiert sind möchte er nicht ohne fehlermeldung. Ich habe erfolglos auch mit "varchar" probiert.
Kannst du was da zu sagen?
In der bestätigung kommen die beiden aus geschrieben.
ina

meikel (†)
07.01.2004, 15:06:19
Original geschrieben von Ina
Er trägt die datensätze in der tabelle, aber "anfang" und "ende", die in der Tabelle als "date" definiert sind möchte er nicht ohne fehlermeldung.[/B]
1. Poste mal die Ausgabe des Feldes "Create Table" von
SHOW CREATE TABLE `kunden`
2. bei einem DATE Feld muß bei INSERT INTO und UPDATE das Datum von dd.mm.YYYY in YYYY-mm-dd konvertiert werden.

Konvertiert YYYY-MM-DD in DD.MM.YYYY:

function mysql2date($a)
{
$d = explode(" ",$a); # Falls es DATETIME ist. Die Uhrzeit wird dann weggelassen.
$d = explode("-",$d[0]);
return $d[2].".".$d[1].".".$d[0];
}

Konvertiert DD.MM.YYYY in YYYY-MM-DD:

function date2mysql($a)
{
$d = explode(".",$a);
return $d[2]."-".$d[1]."-".$d[0];
}