Just nu i M3-nätverket
Gå till innehåll

id-problem


Micro90

Rekommendera Poster

Jag har en formulärsida med denna kod:

<?php

session_start(); // Alltid överst på sidan

 

include "conn.php"; // Databasanslutningen

?>

<html>

<head>

<title>Register - ändra/spara</title>

</head>

<body>

<br><br><br><br><br>

<?php

$SQL = "SELECT * FROM links WHERE id ='{$id}'";

$result = mysql_query($SQL);

mysql_query($SQL) or die(mysql_error());

while ($rad = mysql_fetch_array($result)) {

echo " Länk: " . $rad[lank] ."<br>";

echo "ID: ".$rad[id]. " Beskrivning: " . $rad[beskrivning] ."<br>";

echo " Kategori: " . $rad[kategori] ."<br>";

echo $sql;

}

?>

<input type="hidden" name="id" value="<?=$rad['id'] ?>">

 

<form action="update.php" method="post">

<input type="text" name="lank" value="<?=$rad['lank']?>"><br>

<input type="text" name="beskrivning" value="<?=$rad['beskrivning']?>"><br>

<input type="text" name="kategori" value="<?=$rad['kategori']?>"><br>

<input type="submit" name="submit" value="spara">

</form>

 

</body>

</html>

 

Sedan kommer man till spara-sidan, update.php:

 

<?php

session_start(); // Alltid överst på sidan

 

include "conn.php"; // Databasanslutningen

?>

<html>

<head>

<title>Register - spara</title>

</head>

<body>

<br><br><br><br><br>

<?php

if(isset($_POST['submit'])) {

$sql = "UPDATE links SET lank='{$_POST['lank']}', beskrivning='{$_POST['beskrivning']}', kategori='{$_POST['kategori']}' WHERE id='{$_POST['id']}' AND anvandare='{$_SESSION['sess_user']}'";

$result = mysql_query($sql);

mysql_query($sql) or die(mysql_error());

echo "Posten $lank blev uppdaterad <br><br>";

echo $sql;

}

?>

 

</body>

</html>

 

På den sidan visas sedan meddelandet:

UPDATE links SET lank='xcvxv', beskrivning='xvcxvcx', kategori='xcvxv' WHERE id='' AND anvandare='pellep'

 

Men id är tomt! Vad är felet?

 

Länk till kommentar
Dela på andra webbplatser

Men id är tomt! Vad är felet?
Id ligger utanför formuläret (ovanför form).

 

 

_________

TicoRoman - The One And Only

 

Länk till kommentar
Dela på andra webbplatser

Ändrad det:

<form action="update.php" method="post">

<input type="hidden" name="id" value="<?=$rad['id']?>">

<input type="text" name="lank" value="<?=$rad['lank']?>"><br>

<input type="text" name="beskrivning" value="<?=$rad['beskrivning']?>"><br>

<input type="text" name="kategori" value="<?=$rad['kategori']?>"><br>

<input type="submit" name="submit" value="spara">

</form>

 

Men id är fortfarande tomt...

Samma meddelande:

UPDATE links SET lank='ngnhgn', beskrivning='ghngng', kategori='ngng' WHERE id='' AND anvandare='pellep'

 

Länk till kommentar
Dela på andra webbplatser

Det andra problemet är att du skriver ut $rad['id'], $rad['lank'] m fl utanför loopen (while). Utanför loopen kommer du inte åt $rad.

 

Som jag ser det så returnerar SQL-frågan alltid en post. Då behöver du ingen loop, utan kan göra så här:

$result = mysql_query($SQL) or die(mysql_error()); 
$rad = mysql_fetch_array($result);

dvs inte använda en loop. Då kan du skriva ut $rad på flera ställen.

 

Det tredje felet (inte direkt fel, men onödigt) är:

$result = mysql_query($SQL);

mysql_query($SQL) or die(mysql_error());

Den andra raden har egentligen ingen funktionen. Ersätt de ovanstående två raderna med
$result = mysql_query($SQL) or die(mysql_error());

 

_________

TicoRoman - The One And Only

 

 

[inlägget ändrat 2003-04-16 20:19:44 av TicoRoman (Almir)]

Länk till kommentar
Dela på andra webbplatser

Bra. ;)

 

 

_________

TicoRoman - The One And Only

 

[inlägget ändrat 2003-04-16 20:25:41 av TicoRoman (Almir)]

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...