webForumDet fria alternativet

Update kod som inte skriver in nytt värde

PHP

3 svar · 385 visningar · startad av Beat

Medlem sedan okt. 200732 inlägg
Frågan#1

Jag håller på och tränar på lite olika php skript och sitter nu och försöker göra en update kod, jag har hittat denna kod och modifierat den lite och så men jag får den inte att fungera.

Felet är att den tar bort det gamla värdet när jag kör en update men den lägger inte in något nytt värde. Jag har inte en aning om vad som är fel men jag hoppas att någon av er kanske kan se vad det är för fel.

Formulär filen

<?php
// Connect database.
$host="localhost"; // Host name.
$db_user="root"; // MySQL username.
$db_password=""; // MySQL password.
$database="currant"; // Database name.
mysql_connect($host,$db_user,$db_password);
mysql_select_db($database);

// Select all data records in table "name_list" and put them into $result.
$result=mysql_query("select * from blog order by blogg_id asc");
?>
<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>

<body>
<form id="form1" name="form1" method="post" action="update.php">
<table border="1" cellpadding="3" cellspacing="0">
<tr>
<td align="center" bgcolor="#FFCC00"><strong>ID</strong></td>
<td align="center" bgcolor="#FFCC00"><strong>Name</strong></td>
</tr>
<?php
// Fetch record rows in $result by while loop and put them into $row.
while($row=mysql_fetch_assoc($result)){
?>
<tr>
<td bgcolor="#FFFFCC"><?php echo $row['blogg_id']; // Show record's ID ?></td>
<td bgcolor="#FFFFCC"><input name="name_<?php echo $row['blogg_id']; ?>" type="text" id="name_<?php echo $row['blogg_id']; ?>" value="<?php echo $row['rubrik']; ?>" /></td>
</tr>
<?php } // End while loop. ?>
</table>
<input type="submit" name="Submit" value="Update" />
</form>
</body>
</html>

update.php (Kopplad till formuläret)

<?php
if($_POST['Submit']){ // If receive Submit button variable.

// Connect database.
$host="localhost"; // Host name.
$db_user="root"; // MySQL username.
$db_password=""; // MySQL password.
$database="currant"; // Database name.
mysql_connect($host,$db_user,$db_password);
mysql_select_db($database);

// Select all data records in table "name_list" and put them into $result.
$result=mysql_query("select blogg_id from blog order by blogg_id asc");

// Fetch record rows in $result by while loop and put them into $row.
while($row=mysql_fetch_assoc($result)){
// Get the posted value "name_ID value" from form.php. This variable change it's value by while loop.
$name=$_POST["rubrik_".$row[blogg_id]];

// Update field "name", matching with "id" value by while loop.
mysql_query("UPDATE blog set rubrik='$rubrik' where blogg_id='$row[blogg_id]'");
}
echo "--- Update Complete ---";
}
?>
Medlem sedan jan. 2004140 inlägg
#2

Du har ju snurrat till det på namn och variabler så vitt jag kan se.

Följande har du i formuläret:

name="name_<?php echo $row['blogg_id']; ?>"

Dvs. textfältet får ex. namnet: name_23

I php koden för mysql satsen har du istället:

// Get the posted value "name_ID value" from form.php. This variable change it's value by while loop.
$name=$_POST["rubrik_".$row[blogg_id]];

// Update field "name", matching with "id" value by while loop.
mysql_query("UPDATE blog set rubrik='$rubrik' where blogg_id='$row[blogg_id]'");

Du hämtar ($_POST) textfältet ex. rubrik_23 som inte existerar i formuläret, samt sätter denna till variabeln $name som inte använts i mysql satsen. Här använder du istället rubrik=$rubrik, en variabel du inet definerat.

Följande ska du ändra till i formuläret:

<input name="rubrik_<?php echo $row['blogg_id']; ?>" type="text" ..

Och i update.php

// Get the posted value "name_ID value" from form.php. This variable change it's value by while loop.
$rubrik=$_POST["rubrik_".$row[blogg_id]];

Lycka till!

Medlem sedan okt. 200732 inlägg
#3

Tack så mycket, jag har lyckats fixa felet. Men nu sitter jag och försöker lösa ett annat problem jag har fått men jag hoppas jag kan klara det själv men annars så kommer det nog en till post i denna tråd. :)

Medlem sedan jan. 2004140 inlägg
#4

Toppen! :)

287 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
159 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)