Hittar inte kodfelet (Löst)
Här är det något fel..Sidan ska hämta upp en post som bara den som lagt in den ska få ändra.. Men det dyker inte upp information från databasen.
<code>
<?php
session_start(); // Alltid överst på sidan
include "conn.php"; // Databasanslutningen
?>
<html>
<head>
<title>Register - ändra</title>
</head>
<body>
<br><br><br><br><br>
<?php
if( (!empty($_SESSION['sess_user'])) && (!empty($_SESSION['sess_id'])) ) {
$sql = "UPDATE links SET lank='$lank', beskrivning='$beskrivning', kategori='$kategori' WHERE id = '{$id}' AND anvandare='{$_SESSION['sess_user']}'";
mysql_query($sql);
$sql = "SELECT * WHERE id = '{$id}' AND anvandare='{$_SESSION['sess_user']}'";
}
$result = mysql_query($sql);
while ($kolumn = mysql_fetch_array ($resultat));
print "<b>Länk:</b> ".$kolumn['lank']."<br>\n";
print "<b>Beskrivning:</b> ".$kolumn['beskrivning']."<br>\n";
print "<b>Kategori:</b> ".$kolumn['kategori']."<br>\n";
?>
</body>
</html>
</code>
Svara
Sv: Hittar inte kodfelet
Varför har du "måsvingar" här? Har du lagrat det så i databasen?
$sql = "SELECT * WHERE id = '{$id}' AND anvandare='{$_SESSION['sess_user']}'";
Man kanske kan ha det, men jag har aldrig sett det tidigare... Testa med:
$sql = "SELECT * WHERE id = '$id' AND anvandare='$_SESSION['sess_user']'";
/Johan
Svara
Sv: Hittar inte kodfelet
Jo dom skulle nog vara där.., annars blir det felmeddelande.
Men jag har ändrat sidan och kommit ett steg längre nu: Så här ser den nya koden ut:
<?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);
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 $rad["id"];
}
?>
<form action="update.php" method="post">
<input type="text" name="lank" value="<?=$row['lank']?>"><br>
<input type="text" name="beskrivning" value="<?=$row['beskrivning']?>"><br>
<input type="text" name="kategori" value="<?=$row['kategori']?>"><br>
<input type="submit" name="submit" value="spara">
</form>
</body>
</html>
Den verkar funka..
Men nästa sida, update.php funkar inte. Den ser ut så här:
<?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='$lank', beskrivning='$beskrivning', kategori='$kategori') WHERE id='{$id}' AND anvandare='{$_SESSION['sess_user']}'";
$resultat = mysql_query($sql);
echo "Posten $lank blev uppdaterad <br><br>";
}
?>
</body>
</html>
Nåt verkar galet här - men vad??
Svara
Sv: Hittar inte kodfelet
En lösning skulle kunna vara att inte byta variabelnamn ($result --> $resultat) mellan raderna:
<code>
$result = mysql_query($sql);
while ($kolumn = mysql_fetch_array ($resultat));
</code>
Svara
Sv: Hittar inte kodfelet
Kan det vara frågorna som misslyckas. Lägg in enkel avlusningskod efter mysql_query()-anropen:
<code>
mysql_query($sql) or die(mysql_error());
</code>
Svara
Sv: Hittar inte kodfelet
ok.. på update.php får jag detta felmeddelande:
You have an error in your SQL syntax near '(lank='9898989', beskrivning='8988989', kategori='898989') WHERE id='' AND anvan' at line 1
vad göra?
Senaste koden på den sidan ser ut så här:
<?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='{$id}' AND anvandare='{$_SESSION['sess_user']}'";
$result = mysql_query($sql);
mysql_query($sql) or die(mysql_error());
echo "Posten $lank blev uppdaterad <br><br>";
}
?>
</body>
</html>
Svara
Sv: Hittar inte kodfelet
Tjena
I felmeddelandet ser det ut som att $id inte är initierad till nånting... Vad är $id och varifrån kommer det?
mvh Jonas
Svara
Sv: Hittar inte kodfelet
ja.. kan vara nåt galet där, men nu har jag ändrat lite.. så här ser raden ut nu:
$sql = "UPDATE links SET (lank='{$_POST['lank']}', beskrivning='{$_POST['beskrivning']}', kategori='{$_POST['kategori']}' WHERE id='{$_POST['id']}' AND anvandare='{$_SESSION['sess_user']}'");
Jag får parse error på den raden. Ser att det är nåt galet med parenteserna, tror jag...
Svara