21. juli 2004 - 12:55
Der er
19 kommentarer og 3 løsninger
Hvorfor bliver der ikke skrevet i min DB
Hvorfor kan jeg ikke lægge data ind i min MySql database? Koden er lavet i en kombination af Frontpage og PHP <html> <head> <title>Logside</title> </head> <body bgcolor="#FFFFFF"> <table border="0" width="100%" id="table1"> <tr> <td width="100"> </td> <td> <table border="2" width="100%" id="table2" height="300%" bordercolordark="#000000" style="border-collapse: collapse" bordercolorlight="#000000" bgcolor="#C0C0C0"> <tr> <td bordercolor="#000000" bordercolorlight="#000000"> <div style="position: absolute; width: 772px; height: 72px; z-index: 1; left: 117px; top: 18px; border: 2px solid #000000; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px" id="lag1"> <table border="0" width="100%" id="table3" style="border-collapse: collapse"> <tr> <td align="center"><font size="5" face="Tahoma"> Test</font></td> </tr> <tr> <td align="center"><font face="Tahoma" size="5">Test Side</font></td> </tr> </table> </div> <p> </p> <table border="0" width="100%" id="table4"> <tr> <td width="157"> </td> <td width="284"> </td> <td> </td> </tr> <tr> <td width="157"><font face="Tahoma">Dato</font></td> <td width="284"><font face="Tahoma"> <input type="text" name="date" size="20"></font></td> <td> </td> </tr> <tr> <td width="157"><font face="Tahoma">Påbegyndt</font></td> <td width="284"><font face="Tahoma"> <input type="text" name="begyndt" size="20"></font></td> <td> </td> </tr> <tr> <td width="157"><font face="Tahoma">Afsluttet</font></td> <td width="284"><font face="Tahoma"> <input type="text" name="afsluttet" size="20"></font></td> <td> </td> </tr> <tr> <td width="157"> </td> <td width="284"> </td> <td> </td> </tr> <tr> <td width="157"><font face="Tahoma">Arbejdsseddelnummer</font></td> <td width="284"><font face="Tahoma"> <input type="text" name="arbejdssdl" size="20"></font></td> <td> </td> </tr> <tr> <td width="157"><font face="Tahoma">Rekvireret af</font></td> <td width="284"><font face="Tahoma"> <input type="text" name="rekv" size="20"></font></td> <td> </td> </tr> <tr> <td width="157"><font face="Tahoma">Lokation</font></td> <td width="284"><font face="Tahoma"> <input type="text" name="loka" size="20"></font></td> <td> </td> </tr> <tr> <td width="157"> </td> <td width="284"> </td> <td> </td> </tr> <tr> <td width="157"><font face="Tahoma">Problem</font></td> <td width="284"><font face="Tahoma"> <textarea rows="13" name="prob" cols="33"></textarea></font></td> <td> </td> </tr> <tr> <td width="157"> </td> <td width="284"> </td> <td> </td> </tr> <tr> <td width="157"> </td> <td width="284"> </td> <td> </td> </tr> <tr> <td><font face="Tahoma">Udført af</font></td> <td width="284"><font face="Tahoma"> <input type="text" name="udført" size="20"></font></td> <td> </td> </tr> <tr> <td> </td> <td width="284"> </td> <td> </td> </tr> </table> </td> </tr> </table> </td> <td width="100"> </td> </tr> </table> <? if (isset($_POST['Ok'])); { $db = mysql_connect("127.0.0.1", "root", ""); mysql_select_db("mathiesen",$db); mysql_query("INSERT INTO log(date, begyndt, afsluttet, arbejdssdl, rekv, loka, prob, udført) VALUES ('$date','$begyndt','$afsluttet','$arbejdssdl','$rekv','$loka','$prob','$loka')"); echo "<center>"; echo "<BR>"; } ?> <center> <FORM METHOD=POST ACTION=<?echo $PHP_SELF;?>> <p><INPUT TYPE=SUBMIT NAME="Ok" VALUE=OK></p> <p class="MsoNormal"> </p> <p class="MsoNormal" align="center">© Test</p> </FORM> </BODY> </HTML>
Annonceindlæg fra Computerworld
if (isset($_POST['Ok'])); { semikolon'et hører vist ikke hjemme der :)
Sæt også `....` på date og udført - generelt hold dig fra reserverede ord og sjove bogstaver_ `date` og `udført` og så altid: mysql_query(....) or die(mysql_error());
Og hvis du leger med scripts på din egen server, så gør dig selv den tjeneste at finde din php.ini fil, søg efter E_NOTICE og fjern semikolonet. Så viser den nemlig mindre fejlmeddelelser, som kan hjælpe dig med at gøre livet lidt mindre besværligt ;)
..men da det lader til at du koder med register_globals slået til, skulle du måske lade være, da den vil komme med en ordentlig bunke fejl, hver gang du ikke bruger $_POST['variabel'] eller $_GET['variabel'], til at hente variabler med :)
Jeg synes stadig ikke jeg kan få den til at skrive ned i db'en. Har ellers ændret date og udført til noget andet. Jeg får heller ingen fejl eller warnings.
Du har også: mysql_query(....) or die(mysql_error()); ??
Hovhov, din form skal jo starte i starten af dit dokument :) Alt det der er mellem <form></form> bliver sendt af sted med formularen - og da alle dine inputs, på nær submit knappen, er uden for <form>, bliver de ikke sendt med.
..og med starten mener jeg lige før din første <table>. Havde man nu kørt med E_NOTICE, ville den have klaget over at dine variabler ikke blev overført.
Hvis du har register_globals slået til skal du så ikke lige indsætte dette her: $date = $_POST['date']; $begyndt = $_POST['begyndt']; $afsluttet = $_POST['afsluttet']; $arbejdssdl = $_POST['arbejdssdl']; $rekv = $_POST['rekv']; $loka = $_POST['loka']; $prob = $_POST['prob']; $loka = $_POST['loka']; Ved det her: <? if (isset($_POST['Ok'])); { $db = mysql_connect("127.0.0.1", "root", ""); mysql_select_db("mathiesen",$db); $date = $_POST['date']; $begyndt = $_POST['begyndt']; $afsluttet = $_POST['afsluttet']; $arbejdssdl = $_POST['arbejdssdl']; $rekv = $_POST['rekv']; $loka = $_POST['loka']; $prob = $_POST['prob']; $loka = $_POST['loka']; mysql_query("INSERT INTO log(date, begyndt, afsluttet, arbejdssdl, rekv, loka, prob, udført) VALUES ('$date','$begyndt','$afsluttet','$arbejdssdl','$rekv','$loka','$prob','$loka')"); echo "<center>"; echo "<BR>"; } ?>
22. juli 2004 - 10:49
#10
Er det sådan man indsætter "die mysql" mysql_query("INSERT INTO log(datot, begyndt, afsluttet) VALUES ('$datot','$begyndt','$afsluttet')")or die(mysql_error());
22. juli 2004 - 11:01
#11
Desuden har jeg slået E_NOTICE
22. juli 2004 - 11:01
#12
Undskyld. Jeg har slået E_NOTICE til!!
22. juli 2004 - 11:02
#13
OT: Brug dog ' istedet for ` ` er til accent over bogstaver - ' er til fremhævelse af ord eller direkte tale... :P jeg ved det er meget meget OT men jeg kunne ikke la' (og ikke la´) vær' (og ikke vær´) Desuden stinker FrontPage - prøv med Macromedia DreamWeaver istedet for... GUI'en er meget meget bedre // Peter
22. juli 2004 - 11:03
#14
Ja, hvad sker der?
22. juli 2004 - 11:19
#15
Jeg får denne besked: You have an error in your SQL syntax near 'log(datot, begyndt, afsluttet) VALUES ('','','')' at line 1 Jeg har ændret lidt i koden, så den er minimal. Hvis jeg bare kan indsætte data, så kan jeg fylde resten på. Den ser nu sådan ud: <html> <head> <title>Test</title> </head> <body bgcolor="#FFFFFF"> <? if (isset($_POST['Ok'])); { $db = mysql_connect("127.0.0.1", "root", ""); mysql_select_db("mathiesen",$db); mysql_query("INSERT INTO log(datot, begyndt, afsluttet) VALUES ('$datot','$begyndt','$afsluttet')")or die(mysql_error()); echo "<center>"; echo "<BR>"; } ?> <center> <br><br><br><br> <FORM METHOD=POST ACTION=<?echo $PHP_SELF;?>> <table border="0" width="100%" id="table1"> <tr> <td width="100"> </td> <td> <table border="2" width="100%" id="table2" height="300%" bordercolordark="#000000" style="border-collapse: collapse" bordercolorlight="#000000" bgcolor="#C0C0C0"> <tr> <td bordercolor="#000000" bordercolorlight="#000000"> <div style="position: absolute; width: 772px; height: 72px; z-index: 1; left: 117px; top: 18px; border: 2px solid #000000; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px" id="lag1"> <table border="0" width="100%" id="table3" style="border-collapse: collapse"> <tr> <td align="center"><font size="5" face="Tahoma"> Test</font></td> </tr> <tr> <td align="center"><font face="Tahoma" size="5">Log Side</font></td> </tr> </table> </div> <p> </p> <table border="0" width="100%" id="table4"> <tr> <td width="157"> </td> <td width="284"> </td> </tr> <tr> <td width="157"><font face="Tahoma">Datoen</font></td> <td width="284"><font face="Tahoma"> <input name="datot" size="20"></font></td> </tr> <tr> <td width="157"><font face="Tahoma">Påbegyndt</font></td> <td width="284"><font face="Tahoma"> <input name="begyndt" size="20"></font></td> </tr> <tr> <td width="157"><font face="Tahoma">Afsluttet</font></td> <td width="284"><font face="Tahoma"> <input name="afsluttet" size="20"></font></td> </tr> <tr> <td width="157"> </td> <td width="284"> </td> </tr> </table> </td> </tr> </table> </td> <td width="100"> </td> </tr> </table> <br> <center> <br> <p><INPUT TYPE=SUBMIT NAME="Ok" VALUE=OK></p> </FORM> </BODY> </HTML>
22. juli 2004 - 11:20
#16
Med hensyn til Macromedia DreamWeaver, så har jeg den desværre ikke, og kender den heller ikke.
22. juli 2004 - 11:21
#17
Skriv `log` - det er også reserveret
22. juli 2004 - 11:25
#18
Jeg har en anden side, hvor jeg laver stort set det samme. Jeg fylder bare data ind i en db, og den virker. Jeg har prøvet at sammenligne de to sider, men kan ikke rigtigt se hvor fejlen ligger.
22. juli 2004 - 11:26
#19
Du kan også sætte et mellemrum ind ".....log (...." men prøv da hvad jeg siger.
22. juli 2004 - 11:43
#20
Ok. Nu kan jeg gennem PHPmyAdmin se at der bliver skrevet i db'en, men det sjove er bare, at den er tom. Jeg kan klikke på "vis" knappen, men indholdet er bare tomt. Koden ser nu ud som følgende: <html> <head> <title>Logside</title> </head> <body bgcolor="#FFFFFF"> <? if (isset($_POST['Ok'])) { $db = mysql_connect("127.0.0.1", "root", ""); mysql_select_db("mathiesen",$db); mysql_query("INSERT INTO logfil(datot, begyndt, afsluttet, arbejdssdl, rekvi, lokat, probl, klaret) VALUES ('$datot','$begyndt','$afsluttet','$arbejdssdl','$rekvi','$lokat','$probl','$klaret')")or die(mysql_error()); echo "<center>"; echo "<BR>"; } ?> <center> <FORM METHOD=POST ACTION=<?echo $PHP_SELF;?>> <table border="0" width="100%" id="table1"> <tr> <td width="100"> </td> <td> <table border="2" width="100%" id="table2" height="300%" bordercolordark="#000000" style="border-collapse: collapse" bordercolorlight="#000000" bgcolor="#C0C0C0"> <tr> <td bordercolor="#000000" bordercolorlight="#000000"> <div style="position: absolute; width: 772px; height: 72px; z-index: 1; left: 117px; top: 18px; border: 2px solid #000000; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px" id="lag1"> <table border="0" width="100%" id="table3" style="border-collapse: collapse"> <tr> <td align="center"><font size="5" face="Tahoma"> Test</font></td> </tr> <tr> <td align="center"><font face="Tahoma" size="5">Test Side</font></td> </tr> </table> </div> <p> </p> <table border="0" width="100%" id="table4"> <tr> <td width="157"> </td> <td width="284"> </td> <td> </td> </tr> <tr> <td width="157"><font face="Tahoma">Dato</font></td> <td width="284"><font face="Tahoma"> <input name="datot" size="20"></font></td> <td> </td> </tr> <tr> <td width="157"><font face="Tahoma">Påbegyndt</font></td> <td width="284"><font face="Tahoma"> <input name="begyndt" size="20"></font></td> <td> </td> </tr> <tr> <td width="157"><font face="Tahoma">Afsluttet</font></td> <td width="284"><font face="Tahoma"> <input name="afsluttet" size="20"></font></td> <td> </td> </tr> <tr> <td width="157"> </td> <td width="284"> </td> <td> </td> </tr> <tr> <td width="157"><font face="Tahoma">Arbejdsseddelnummer</font></td> <td width="284"><font face="Tahoma"> <input name="arbejdssdl" size="20"></font></td> <td> </td> </tr> <tr> <td width="157"><font face="Tahoma">Rekvireret af</font></td> <td width="284"><font face="Tahoma"> <input name="rekvi" size="20"></font></td> <td> </td> </tr> <tr> <td width="157"><font face="Tahoma">Lokation</font></td> <td width="284"><font face="Tahoma"> <input name="lokat" size="20"></font></td> <td> </td> </tr> <tr> <td width="157"> </td> <td width="284"> </td> <td> </td> </tr> <tr> <td width="157"><font face="Tahoma">Problem</font></td> <td width="284"><font face="Tahoma"> <input name="probl" size="20"></font></td> <td> </td> </tr> <tr> <td width="157"> </td> <td width="284"> </td> <td> </td> </tr> <tr> <td width="157"> </td> <td width="284"> </td> <td> </td> </tr> <tr> <td><font face="Tahoma">Udført af</font></td> <td width="284"><font face="Tahoma"> <input name="klaret" size="20"></font></td> <td> </td> </tr> <tr> <td> </td> <td width="284"> </td> <td> </td> </tr> </table> </td> </tr> </table> </td> <td width="100"> </td> </tr> </table> <p><INPUT TYPE=SUBMIT NAME="Ok" VALUE=OK></p> <p class="MsoNormal"> </p> <p class="MsoNormal" align="center">© Test</p> </FORM> </BODY> </HTML>
22. juli 2004 - 11:47
#21
22/07-2004 03:10:02
22. juli 2004 - 11:56
#22
Så ser det endelig ud til at virke. Hvis jeg kan få Jansen1982 til at smide et svar, så kan jeg dele de point der er! Mange tak alle sammen.
Vi tilbyder markedets bedste kurser inden for webudvikling