webForumDet fria alternativet

mysql_fetch_object

9 svar · 351 visningar · startad av cindra

cindraMedlem sedan juli 200417 inlägg
#1

Tja!

Jag ska uppdatera en rad i databasen o har gjort ett formulär där den befintliga informationen ska visas. Problemet är att bara en rad från databasen hämtas o visas i mitt formulär.

Jag har förstått att det har något att göra med mysql_fetch_object. Jag har provat att sätta in mysql_fetch_array o några andra kommando men inget funkar.

Hur gör jag???

LarsGMedlem sedan dec. 200012 465 inlägg
#2

Visa den kod du har.

Det låter som om detta är mer relaterat till PHP än SQL.

The_HulkMedlem sedan juni 20031 937 inlägg
#3

har du gjort så att den nuvarande informationen visas i formuläret?

för att uppdatera kan man använda t.ex mysql_query() där du skickar med din SQL-sats.

vet du hur SQL-satsen ska se ut?
UPDATE tabell SET kolumn=nytt_värde WHERE kolumn=gammalt_värde

var ett litet exempel för att försöka beskriva hur man gör.

cindraMedlem sedan juli 200417 inlägg
#4

Såhär ser min kod ut nu...

<?php
					if(!empty($_POST['id']) and empty($_POST['perform'])) 
			  		{
				  
					$id = $_POST['id'];
					$hamta = "SELECT * FROM dagbok WHERE id = '$id'";
					$resultat = mysql_query($hamta) or die("Det gick inte att hämta information från databasen!");
				
					$rad = mysql_fetch_object($resultat);
			  
					print("<form method=POST action=upd.php>");
				  	print("<input type=hidden name=id value=" . $rad->id . ">");
				  	print("<input type=hidden name=perform value=upd>");
				  
				 	print("<tr heigt=23>");
				 	print("<td width=60 align=right>"); 
				 	print("<span class=rubrik>Bild</span>");
				 	print("</td>");
				 	print("<td>");
				 	print("<input type=text class=input size=50 name=bild value=" . $rad->bild . ">");	
				 	print("</td>");
				 	print("</tr>");
				 	print("<tr heigt=23>");
				 	print("<td width=60 align=right>"); 
				  	print("<span class=rubrik>Datum</span>");	
				  	print("</td>");
				 	print("<td>");
				  	print("<input type=text class=input size=50 name=datum value=" . $rad->datum . ">");			  
				  	print("</td>");
				  	print("</tr>");
				 	print("<tr heigt=23>");
				 	print("<td width=60 align=right>"); 
				  	print("<span class=rubrik>Rubrik</span>");	
				  	print("</td>");
				 	print("<td>");
				  	print("<input type=text class=input size=50 name=rubrik value=" . $rad->rubrik . ">");			  
				  	print("</td>");
				  	print("</tr>");
				  	print("<tr heigt=23>");
				 	print("<td width=60 align=right>"); 
				 	print("<span class=rubrik>Text</span>");
				 	print("</td>");
				 	print("<td>");
				 	print("<textarea class=input cols=50 rows=30 name=text value=" . $rad->text . ">");	
				 	print("</textarea></td>");
				 	print("</tr>");
				 	print("<tr heigt=23>");
				 	print("<td width=60 align=right>"); 
				 	print("</td>");
				 	print("<td>");
				  	print("<input type=submit class=knapp value=Uppdatera>");
					print("</td>");
					print("</tr>");
					mysql_free_result($resultat);
			  
		  			}
			  
			  	?>
The_HulkMedlem sedan juni 20031 937 inlägg
#5

är det från filen upd.php?

istället för att ha print() på varje rad brukar det vara enklare att lägga den största delen av HTLM-koden utanför PHP-koden alltså:

<?
// php-kod
?>
html-kod
<?
// php-kod
?>

för att skriva ut värdet från en variable när man är i HTLM-området skriver man:

<?=$variabel?>
The_HulkMedlem sedan juni 20031 937 inlägg
#6

upd.php kan se ut lite så här:

if($_POST['perform']=="upd" && $_POST['id'] != "")
{
$sql = "UPDATE dagbok SET bild='".$_POST['bild']."', datum='".$_POST['datum']."' WHERE ID=".$_POST['id'];
mysql_query($sql);
}

du får bygga ut SQL-satsen så den får med alla värden du vill

LarsGMedlem sedan dec. 200012 465 inlägg
#7

Flyttas från SQL.

cindraMedlem sedan juli 200417 inlägg
#8

Asså, allting funkar perfekt förutom att bara en del av innehållet i databasen hämtas till formulärfälten. I tex rubriken hämtas bara första ordet...

@ndersMedlem sedan juni 200026 914 inlägg
#9

Så blir det när man inte omsluter sina value:s i formulärfälten med citationstecken eller apostrofer. Så här ska det vara:

				  	print("<input type=text class=input size=50 name=rubrik value=\\"" . $rad->rubrik . "\\">");
cindraMedlem sedan juli 200417 inlägg
#10

Tjoohoo... Du e bäst @anders, nu funkar det perfekt! :L

Genererad på 627 ms · cache AV · v20260730165559-full.f96bc7eb