Har problem med att skriva till databas. Jag har två input-fält på en sida där jag hämtar in information från en databas. Jag vill sedan skriva denna information till en annan tabell i samma databas och detta funkar bra.
Koden ser ut såhär där jag hämtar in datan.
<?php
// hämtar information från den angivna tabellen
$result = mysql_query("SELECT * FROM cache_order WHERE user='{$_SESSION['sess_user']}'")
or die(mysql_error());
// hämtar resultatrader från tabellen
while($row = mysql_fetch_array( $result ))
{
// skriver ut innehållet radvis
echo "<input type=hidden name=ordernr value='";
echo $row["ordernr"];
echo "'>";
echo "<input type=hidden name=user value='";
echo $row["user"];
echo "'>";
}
?>
När jag trycker på en knapp i formuläret där ovanstående kod ligger, skickas jag till en php-sida med processing-kod. Den ser ut såhär.
<?php
session_start(); // Alltid överst på sidan
include "conn.php"; // Databasanslutningen
// Kolla om inloggad = sessionen satt
if (!isset($_SESSION['sess_user'])){
header("Location: loggain.php");
exit;
}
// Tar bort eventuellt existerande orderinformation
// för inloggad användare, innan ny data skrivs
mysql_query("DELETE FROM cache_orderdelar WHERE user='{$_SESSION['sess_user']}'")
or die(mysql_error());
// skriver information till den angivna tabellen
$nyorder = mysql_query("INSERT INTO cache_orderdelar (ordernr, user, artikelnamn, antal, styckpris)
VALUES('$_POST[ordernr]','$_POST[user]','$_POST[artikelnamn],'$_POST[antal],'$_POST[styckpris]')")
or die("" . mysql_error());
// skickar användaren till nästa sida
header('Location: orderComplete.php');
?>
Till synes står i denna fil att datan i fältet "ordernr" respektive "user" ska skrivas till tabellen "cache_orderdelar" men jag har även skrivit att den ska skicka datan i en del andra fält till samma tabell. Dessa fält hämtas in i sidan där den första koden jag skrev i detta inlägg ligger, från en .js-fil
Koden i .js-filen som är aktuell för detta problem ser ut såhär:
if ( fields[5] == "" )
strOutput += "<TD CLASS=\"nopentry\"><input style='width:310px' type=text name='artikelnamn' value='"+ fields[3] +"'></TD>";
else
strOutput += "<TD CLASS=\"nopentry\">" + fields[3] + " - <I>"+ fields[5] + "</I></TD>";
strOutput += "<TD CLASS=\"nopentry\"><input style='width:25px' type=text name='antal' value='"+ fields[1] +"'></TD>";
strOutput += "<TD CLASS=\"nopentry\"><input style='width:40px' type=text name='styckpris' value='"+ moneyFormat(fields[2]) +"'>" + MonetarySymbol + "</TD>";
Här kan ni se hur jag döpt de olika fälten till "artikelnamn", "antal" och "styckpris". Värdena i dessa tre fält ska skickas tillsammans med värdena i fälten "ordernr" och "user" till databasen när processOrder.php körs, men då får jag upp detta:
"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,'229.00')' at line 2"
Om jag tar bort den kod i processOrder.php som säger att datan i fälten som hämtas in från .js-filen ska skrivas till databasen så kommer inte felkoden upp. Det som händer är att datan i fälten "ordernr" och "user" skrivs till databasen som det står i processOrder.php att den ska göra, men så fort jag skriver i filen att även datan från .js-filen ska skrivas så får jag felkod.
Något verkar vara fel i .js-filen, men vad?