28. september 2005 - 19:17
Der er
17 kommentarer og 1 løsning
Hjælp til rettelse?
Hej eksperter, kan i se fejlen her?: <select id="spgselector" name="spg" onChange="window.location.href='<?= $_SERVER['PHP_SELF'] ?>?spg='+this.value;"> <? while($row = mysql_fetch_assoc($spgquery)) { $id = $row['id']; $spg = $row['spg']; $sSelected = ""; if( intval($_GET['spg']) == $id ) $sSelected = "SELECTED"; print "<option value=\"".$id."\" ".$sSelected.">".$spg."</option>"; } ?> </select> </div></td> </tr> </table> <div align="center"> </div> <?php if(isset($_POST['submit'])) { include 'db.php'; $svar = htmlspecialchars(addslashes($_POST['svar'])); $id = $_GET['id']; $id = $spg_id; mysql_query("INSERT INTO spg_svar (spg_id, svar) VALUES ('$svar, $spg_id')") or die(mysql_error()); echo "<div align=\"center\" class=\"tekst_linkThin\">Svarene blev oprettet</div>"; } ?> <form action="opret_svar.php" method="post" name="nyhed" enctype="multipart/form-data"> <table width="90%" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="22%" class="style2">Svar muligheder: </td> <td width="57%"><div align="center" class="style2"></div></td> <td width="21%"><span class="style2">Det korrekte svar: </span></td> </tr> <tr> <td class="style2">Svar:</td> <td><input name="svar" type="text" id="svar" size="50"></td> <td><div align="center"> <input type="radio" name="korrekten" value="korrekten"> </div></td> </tr> <tr> <td colspan="3"><div align="center"> <input type="submit" id="submit" name="submit" value="Opret svar"> </div></td> </tr> </table> </form> den skriver: Column count doesn't match value count at row 1 når jeg trykker på "submit"
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
28. september 2005 - 19:29
#1
Prøv med dette: if (isset($_POST['submit'])) { include 'db.php'; $svar = htmlspecialchars(addslashes($_POST['svar'])); // Disse to linjer ser forkerte ud... $id = $_GET['id']; $id = $spg_id; $sql = "INSERT INTO spg_svar (spg_id, svar) VALUES ('$svar, $spg_id')"; echo "DEBUG: " . $sql . "<br>"; mysql_query() or die(mysql_error()); echo "<div align=\"center\" class=\"tekst_linkThin\">Svarene blev oprettet</div>"; }
28. september 2005 - 19:30
#2
I øvrigt bør du give din submit-knap et andet navn end "submit". Det er bare at bede om problemer i andre browsere at gøre dette.
28. september 2005 - 19:38
#3
ja det er også de to linjer kan jeg se.. DEBUG: INSERT INTO spg_svar (spg_id, svar) VALUES ('svar nr 1., ') Warning: Wrong parameter count for mysql_query() in D:\inetpub\vhosts\wi2.ots.dk\subdomains\casper1\httpdocs\spg\admin\opret_svar.php on line 97 Men det er fordi jeg skal bruge det id som der er valgt længere oppe i select boxen. det skal nemlig sættes ind i det felt som hedder "svar_id"
28. september 2005 - 19:41
#4
Det id som har været brugt længere oppe i select'en er ikke længere tistede når du submitter. I øvrigt skal din kode vist være: VALUES ('$svar', $spg_id)"; - i stedet for: VALUES ('$svar, $spg_id')";
28. september 2005 - 19:43
#5
har du en løsning på det med id'et? for det er vigtigt jeg får det med når jeg ligger det op.
28. september 2005 - 19:45
#6
Hvis du skal have id'et videre med nåt du submitter formen så skal det inkluderes i denne. Dette gøres normalt ved at tilføje et hidden-felt i formen: <input type="hidden" name="id" value="<?=$id?>">
28. september 2005 - 20:03
#7
lige nu ser det sådan her ud.. <? if (isset($_POST['op'])) { include 'db.php'; $svar = htmlspecialchars(addslashes($_POST['svar'])); $spg_id = $_POST['spg_id']; $sql = "INSERT INTO spg_svar (svar, spg_id) VALUES ('$svar', '$spg_id')" or die(mysql_error()); echo "<div align=\"center\" class=\"tekst_linkThin\">Svaret blev oprettet</div>"; } ?> <form action="opret_svar.php" method="post" name="nyhed" enctype="multipart/form-data"> <table width="90%" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="22%" class="style2">Svar muligheder: </td> <td width="57%"><div align="center" class="style2"></div></td> <td width="21%"><span class="style2">Det korrekte svar: </span></td> </tr> <tr> <td class="style2">Svar:</td> <td><input name="svar" type="text" id="svar" size="50"> </td> <td><div align="center"> <input type="radio" name="korrekten" value="korrekten"> </div></td> </tr> <tr> <td colspan="3"><div align="center"><input type="hidden" name="spg_id" value="<?=$id?>"> </div></td> </tr> <tr> <td colspan="3"><div align="center"> <input type="submit" id="op" name="op" value="Opret svar"> </div></td> </tr> </table> </form> men det vil ik virke. den fortæller fint den har lagt det op. men har intet lagt op hehe.
28. september 2005 - 20:07
#8
<? if (isset($_POST['op'])) { include 'db.php'; $svar = htmlspecialchars(addslashes($_POST['svar'])); $spg_id = $_POST['spg_id']; $sql = "INSERT INTO spg_svar (svar, spg_id) VALUES ('$svar', '$spg_id')"; mysql_query($sql) or die(mysql_error()); echo "<div align=\"center\" class=\"tekst_linkThin\">Svaret blev oprettet</div>"; } ?>
28. september 2005 - 20:13
#9
ja nu ligger den fint op.. men den tager ik id'et som er valgt i select boxen :'(
28. september 2005 - 20:17
#10
Hvorfor har du egentlig placeret din <select> uden for din form?
28. september 2005 - 20:19
#11
fordi formen er kommet senere :) .. skal jeg sætte den ind i ?
28. september 2005 - 20:28
#12
Det ville da være meget naturligt at gøre det på den måde - og så at fjerne onChange-koden.
28. september 2005 - 20:50
#13
nu ser den sådan herud: <? if (isset($_POST['op'])) { include 'db.php'; $svar = htmlspecialchars(addslashes($_POST['svar'])); $spg_id = $_POST['spg_id']; $sql = "INSERT INTO spg_svar (svar, spg_id) VALUES ('$svar', '$spg_id')"; mysql_query($sql) or die(mysql_error()); echo "<div align=\"center\" class=\"tekst_linkThin\">Svaret blev oprettet</div>"; } ?> <form action="opret_svar.php" method="post" name="nyhed" enctype="multipart/form-data"> <table width="90%" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="22%" class="style2"> </td> <td width="57%"><div align="center" class="style2">vælge spørgsmål: </div></td> <td width="21%"> </td> </tr> <tr> <td class="style2"> </td> <td> <div align="center"><?php include "db.php"; $spg = array(); $spgquery = mysql_query("SELECT * FROM spg_spg") or die (mysql_error()); ?> <select id="spgselector" name="spg"> <? while($row = mysql_fetch_assoc($spgquery)) { $id = $row['id']; $spg = $row['spg']; $sSelected = ""; if( intval($_GET['spg']) == $id ) $sSelected = "SELECTED"; print "<option value=\"".$id."\" ".$sSelected.">".$spg."</option>"; } ?> </select></div></td> <td><div align="center"></div></td> </tr> <tr> <td><div align="left"><span class="style2">Svar muligheder: </span></div></td> <td> </td> <td><div align="center"><span class="style2">Det korrekte svar:</span> </div></td> </tr> <tr> <td><div align="left"><span class="style2">Svar:</span> </div></td> <td><input name="svar" type="text" id="svar" size="50"></td> <td><input type="radio" name="korrekten" value="korrekten"></td> </tr> <tr> <td colspan="3"><div align="center"> <input type="hidden" name="spg_id" value="<?=$id?>"> </div></td> </tr> <tr> <td colspan="3"><div align="center"> <input type="submit" id="op" name="op" value="Opret svar"> </div></td> </tr> </table> </form> men ligger stadig ikke det ønskede id op.. men hvis det ik kan komme til at virke må jeg lave en side der henter alle id'erne og spørgsmålene og sætter dem i en række ned at en side, så kan man klikke på det spørgsmål for at gå ind og skrive følgende svar ind, for så følger id'et med ind
28. september 2005 - 21:15
#14
Prøv denne version: <form action="<?= $_SERVER['PHP_SELF'] ?>" method="post"> <table width="90%" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="22%" class="style2"> </td> <td width="57%"><div align="center" class="style2">vælge spørgsmål: </div></td> <td width="21%"> </td> </tr> <tr> <td class="style2"> </td> <td><div align="center"> <? include "db.php"; $spg = array(); $spgquery = mysql_query("SELECT * FROM spg_spg") or die (mysql_error()); ?> <select id="spgselector" name="spg"> <? while ($row = mysql_fetch_assoc($spgquery)) { $id = $row['id']; $spg = $row['spg']; $sSelected = (intval($_GET['spg']) == $id) ? " SELECTED" : ""; print " <option value=\"" . $id . "\"" . $sSelected . ">" . $spg . "</option>"; }?> </select></div></td> <td><div align="center"></div></td> </tr> <tr> <td><div align="left"><span class="style2">Svar muligheder: </span></div></td> <td> </td> <td><div align="center"><span class="style2">Det korrekte svar:</span></div></td> </tr> <tr> <td><div align="left"><span class="style2">Svar:</span></div></td> <td><input name="svar" type="text" id="svar" size="50"></td> <td><input type="radio" name="korrekten" value="korrekten"></td> </tr> <tr> <td colspan="3"><div align="center"><input type="hidden" name="spg_id" value="<?=$id?>"></div></td> </tr> <tr> <td colspan="3"><div align="center"><input type="submit" id="op" name="op" value="Opret svar"></div></td> </tr> </table> </form> <? if (isset($_POST['op'])) { include 'db.php'; $spg_id = $_POST['spg']; $svar = htmlspecialchars(addslashes($_POST['svar'])); $sql = "INSERT INTO spg_svar (svar, spg_id) VALUES ('$svar', '$spg_id')"; mysql_query($sql) or die(mysql_error()); echo "<div align=\"center\" class=\"tekst_linkThin\">Svaret blev oprettet</div>"; } ?>
28. september 2005 - 21:51
#15
det virker ja :D.. smider du et svar
28. september 2005 - 21:53
#16
Svar :^)
28. september 2005 - 22:02
#17
jeg opretter lige en udvidelse af dette spørgsmål om lidt, hvis du skulle have lyst ;)
28. september 2005 - 22:02
#18
-lukket-
Vi tilbyder markedets bedste kurser inden for webudvikling