Avatar billede hamzter Nybegynder
29. maj 2006 - 14:36 Der er 6 kommentarer og
1 løsning

Fejl i UPDATE ved ID

Hej, jeg har igen brug for lidt hjælp. Jeg sidder og roder med en UPDATE funktion, men kan bare ikke få det til at virke.

Det sker en fejl et sted. Jeg har prøvet at specifere id'et, men det hjælper ikke. Meningen er, at man ved at trykke på et link, kan gå ind og redigere og opdatere på netop denne række gennem ID'et. Hvad er kan der være galt? Mine koder:

Lager.php:

<?php
include("../inc/connect.php");
$sql = "SELECT id, navn, varenummer, lokation, pris, genbestil, beskrivelse FROM lager ORDER BY navn";
$result = mysql_query($sql, $conn) or die(mysql_error());
while ($raekke = mysql_fetch_array($result)) {
extract($raekke);

echo
"<br>
<center>
<TABLE width=80%>
<TR>
<TD width=12%><a href=lager_rediger.php?id=".$_GET['id'].">$navn</TD>
<TD width=15%>$varenummer</TD>
<TD width=16%>$lokation</TD>
<TD width=10%>$pris</TD>
<TD width=12%>$genbestil</TD>
<TD width=25%>$beskrivelse</TD>
</TR>
</TABLE>
</center>";
}
?>



lager_rediger.php:

<?php include("../menu.php");
include("../inc/connect.php");
$id = $_GET['id'];
$sql = "SELECT navn, varenummer, lokation, pris, genbestil, beskrivelse FROM lager WHERE id ='$id'";
$result = mysql_query($sql, $conn) or die(mysql_error());
while ($raekke = mysql_fetch_array($result)) {
    extract($raekke);
}
?>
<FORM ACTION="../Lager/_lager_rediger.php" METHOD=POST>
<p><b>Navn:</b><br>
<input type=text name="navn" size="25" value=<?php echo $navn ?>>
<p><b>Varenummer:</b><br>
<input type=text name="varenummer" size="25" value=<?php echo $varenummer ?>>
<p><b>Lokation:</b><br>
<input type=text name="lokation" size="25" value=<?php echo $lokation ?>>
<p><b>Pris:</b><br>
<input type=text name="pris" size="25" value=<?php echo $pris ?>>
<p><b>Genbestil:</b><br>
<input type=text name="genbestil" size="25" value=<?php echo $genbestil ?>>
<p><b>Beskrivelse:</b><br>
<input type=text name="beskrivelse" size="25" value=<?php echo $beskrivelse ?>>

<br>
<p><input type=submit name="submit" value="Gem ændringer">
</p>
</FORM>



_lager_rediger.php:

<?php
include("../inc/connect.php");
$id = $_GET["id"];
$navn = mysql_real_escape_string($_POST['navn']);
$varenummer = mysql_real_escape_string($_POST['varenummer']);
$lokation = mysql_real_escape_string($_POST['lokation']);
$pris = mysql_real_escape_string($_POST['pris']);
$genbestil = mysql_real_escape_string($_POST['genbestil']);
$beskrivelse = mysql_real_escape_string($_POST['beskrivelse']);

$sql = "UPDATE brugere SET 'navn'='$navn','varenummer'='$varenummer','lokation'='$lokation', 'pris'='$pris', 'genbestil'='$genbestil', 'beskrivelse'='$beskrivelse',  WHERE 'id'='$id'";
if (mysql_query($sql, $conn)) {
    echo "<center><b>Ændringerne er gemt!</b></center>";
} else {
    echo "<center><b>Der er sket en fejl... Prøv igen!</b></center>";
}
?>
Avatar billede coderdk Praktikant
29. maj 2006 - 15:25 #1
Du har et , for meget, plus dine ' skal vist være ` altså:

$sql = "
  UPDATE
      brugere
  SET
      `navn` = '$navn'
      ,`varenummer` = '$varenummer'
      ,`lokation` = '$lokation'
      ,`pris` = '$pris'
      ,`genbestil` = '$genbestil'
      ,`beskrivelse` = '$beskrivelse'
  WHERE
      `id` = '$id'";
Avatar billede lassemelbye Nybegynder
29. maj 2006 - 15:26 #2
Hej.
1.
Øverst på siden mangler du vist at sige hvilken rækkefølge, det skal kommer ud i:
ex.
beskrivelse FROM lager ORDER BY navn ASC";

2.
Prøv istedet at skrive:
$sql = "UPDATE brugere SET navn='$navn',varenummer='$varenummer',lokation='$lokation', pris='$pris', genbestil='$genbestil', beskrivelse='$beskrivelse',  WHERE id='$id'";
Avatar billede hamzter Nybegynder
29. maj 2006 - 15:39 #3
Jeg har prøvet begge forslag, men jeg får stadig en fejl! :(

Men når jeg trykker på linket kommer jeg godt nok ind på lager_rediger, men der er ikke skrevet noget i felterne, så den har åbenbart ikke hentet id'et?

Jeg har i stedet, for at afprøve forslagene, sat $id = 9; og så henter den id nummer 9, men når jeg redigere kommer der fejl!
Avatar billede hamzter Nybegynder
29. maj 2006 - 15:48 #4
Nu virker coderdk's forslag! Det sku være 'FROM lager' i stedet for 'FROM brugere'! Det var en fejl fra min side. (har også prøvet dit lasse, men det virker ikke, selvom jeg ændrer til 'lager')

Nu kan den opdatere, men jeg mangler stadig at kunne redigere  gennem id'et?? Nogen der kan hjælpe der?

(Kan bare dele pointene op hvis det er...)
Avatar billede hamzter Nybegynder
29. maj 2006 - 17:20 #5
Smid et svar coderdk, så får du point.. :)

Nogen der har en idé til hvordan jeg får linket til id til at virke? altså at når jeg trykker på linket, kan jeg redigere i den række som har det id?
Avatar billede coderdk Praktikant
29. maj 2006 - 23:18 #6
Ok :)

Det er ofte en god ide at lave din query om fra:

if (mysql_query($sql, $conn)) {

til:

$qh = mysql_query($sql, $conn) or die( mysql_error() );
if ($qh) {
Avatar billede hamzter Nybegynder
30. maj 2006 - 15:32 #7
Ja selvfølgelig.. Troede egentlig jeg havde brugt or die! :) Men jeg har fundet ud af det med id'et, så du får bare alle pointene.
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