Avatar billede Driton Seniormester
03. december 2013 - 06:13 Der er 2 kommentarer og
1 løsning

Fejl ved opdatering af database fejl ved mysql

Min kode ser sådan her ud

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<?php
require_once('db.php');
require_once('Underviser.php');


$underviser = Underviser::find_by_id($_GET["id"]);

?>
<form method='post' action='<?php $_PHP_SELF ?>'>
<?php

echo "
<table width='400' border='0' cellspacing='1' cellpadding='2'>
<tr>
<td width='100'>Undervisere ID</td>
<td><input name='id' type='text' value=". $underviser->id ." id='id' readonly></td>
</tr>
<tr> <td width='100'>Navn</td>
<td><input name='navn' type='text' value=". $underviser->navn . " id='navn'></td>
</tr>
<tr>
<td width='100'>Adresse</td>
<td><input name='adresse' type='text' value=". $underviser->adresse. " id='adresse'></td>
</tr>
<tr>
<td width='100'>By</td>
<td><input name='byen' type='text' value=". $underviser->byen. " id='byen'></td>
</tr>
<tr>
<td width='100'>Telefon</td>
<td><input name='tlf' type='text' value=". $underviser->tlf. " id='tlf'></td>
</tr>
<tr>
<td width='100'>Postnummer</td>
<td><input name='postnummer' type='text' value=". $underviser->postnummer . " id='postnummer'></td>
</tr>
<tr>
<td width='100'>
<input name='update' type='submit' id='update' value='Update'>
</td>
</tr>
</table>
</form>
";


if(isset($_POST['update']))
{
    $up_id = $_POST['id'];
    $up_navn = $_POST['navn'];
    $up_underviser = $_POST['underviser'];
    $up_postnummer = $_POST['postnummer'];
    $up_byen = $_POST['byen'];
    $up_adresse = $_POST['adresse'];
    $up_tlf = $_POST['tlf'];
   
    $sql = $db->query("UPDATE undervisere SET navn=$up_navn, postnummer=$up_postnummer, byen=$up_byen, adresse=$up_adresse, tlf=$up_tlf WHERE id=$up_id");
}


?>



<body>
</body>
</html>

når jeg prøver at kører den får jeg denne fejlmeddelelse

Notice: Undefined index: underviser in E:\xampp\htdocs\redigereunderviser\redigere.php on line 57
Database query failed: Unknown column 'Dan' in 'field list'

og jeg forstår ikke hvorfor jeg har kigget på den nu i flere timer
Avatar billede scifi-bob Nybegynder
03. december 2013 - 06:26 #1
"Unknown column 'Dan' in 'field list'", denne kommer af at du har glemt at sætte apostrof omkring tekst felter i SQL'en.

Prøv med denne:

$sql = $db->query("UPDATE undervisere SET navn='$up_navn', postnummer='$up_postnummer', byen='$up_byen', adresse='$up_adresse', tlf='$up_tlf' WHERE id=$up_id");

Nu ved jeg jo ikke hvad datatype for de forskellige felter er, men håber du forstår pointet.

En anden ting er at denne SQL kommando er livsfarlig mht. SQL injection, så jeg vil også anbefale dette (for mysql, jeg ved ikke hvad for en database du har):

$up_navn = $db->escape_string($_POST['navn']);
$up_underviser = $db->escape_string($_POST['underviser']);
...
Avatar billede Driton Seniormester
03. december 2013 - 06:30 #2
Ja, men det er bare en skoleopgave :) tror ikke min lærer gider lave sql-injection, når han alligevel har databasen foran sig :)
Men okay, det fordi jeg så et sted hvor person gjorde således, så gik ud fra at det virkede :)
Avatar billede arne_v Ekspert
04. december 2013 - 02:59 #3
Hvad er pointen i at lave en skole opgave paa en forkert maade??
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester