webForumDet fria alternativet

problem med editering

4 svar · 227 visningar · startad av zeuz

zeuzMedlem sedan sep. 20038 inlägg
#1

den här koden ska hämta data från databasen och visa den i ett
formulär men den hämtar inte datan om 'namn' har mellanrum.
det går inte heller att spara datan... tack i förväg // nybörjare

<?php 
 	include("variablar.php");
   
   	$connect = mysql_connect("$server","$anvandare","$losen") or die("Kunde inte ansluta till databasen.");
	mysql_select_db("$databas") or die("Kunde inte välja databas.");
?>

<?php 
	if(!empty($_POST['perform'])) 
	 {
	 	$id   = $_POST['id'];
	 	$bild = $_POST['bild'];
	  	$namn = $_POST['namn'];
	  	$pris = $_POST['pris'];
	  	$info = $_POST['info'];
	  	$plats = $_POST['plats'];
	  	$del = "UPDATE itemdb SET itembild = '$bild', itemnamn = '$namn', itempris = '$pris', iteminfo = '$info', itemplats = '$plats' WHERE itemid = '$id3'";
	  	mysql_query($del) or die("Det gick inte att radera från databasen.");
			  		  			  		  
	  	print("Uppdaterade en såndära grej :-)<p>");
	 }
?>

	Välj en såndär grej som skall uppdateras...<br>
	<form method="POST" action="edit.php">		  
	<select name="namn">
			  
<?php $hamta = "SELECT itemnamn FROM itemdb";
	$resultat = mysql_query($hamta) or die("Det gick inte att hämta information från databasen.");
			     
	while($rad = mysql_fetch_array($resultat))
	print("<option value=" . $rad["itemnamn"] . ">" . $rad["itemnamn"]);

	mysql_free_result($resultat);	  		
?>
			  		   
	</select>
	<input type="submit" value="Redigera">
	</form>
	
<?php
	if(!empty($_POST['namn']) and empty($_POST['perform'])) 
	{
				  
				  
		$namn = $_POST['namn'];
		$hamta = "SELECT * FROM itemdb WHERE itemnamn = '$namn'";
		$resultat = mysql_query($hamta) or die("Det gick inte att hämta information från databasen.");
			  
		$rad = mysql_fetch_object($resultat);
			  
		print("Hämtade begärd såndär grej för redigering:");
		print("<form method=POST action=edit.php>");
		print("<input type=hidden name=id value=" . $rad->itemid . ">");
		print("<input type=hidden name=perform value=upd>");
				  
		print("Bild<br/>");				  
		print("<input type=text size=30 name=bild value=" . $rad->itembild . "><br/>");			  
				  
		print("Namn<br/>");				  
		print("<input type=text size=30 name=namn value=" . $rad->itemnamn . "><br/>");
				  
		print("Pris<br/>");				  
		print("<input type=text size=30 name=pris value=" . $rad->itempris . "><br/>");
				  
		print("Info<br/>");				  
		print("<input type=text size=30 name=info value=" . $rad->iteminfo . "><br/>");
	
		print("Plats<br/>");				  
		print("<input type=text size=30 name=plats value=" . $rad->itemplats . "><br/>");
				  
		print("<input type=submit value=Uppdatera><p/>");
	
		mysql_free_result($resultat);
			  
	}		  
?>
			  
<?php 
mysql_close($connect);
?>
MatteMedlem sedan aug. 20002 970 inlägg
#2

Du måste omge dina värden med citationstecken eller apostrofer om det finns mellanslag i värdet, något du bör göra i vilket fall:

        print("Namn<br/>");                  
        print("<input type=\"text\" size=\"30\" name=\"namn\" value=\"" . $rad->itemnamn . "\"><br/>");

Du har heller inte avslutat formuläret med ett </form>.

zeuzMedlem sedan sep. 20038 inlägg
#3

nu har jag satt ut citationstecken och apostrofer och lagt till </form>, tack :) men den vill fortfarande inte hämta namn med mellanslag, då menar jag från droplisten man väljer namn ifrån. och den vill heller inte spara.

MatteMedlem sedan aug. 20002 970 inlägg
#4

Har du lagt till citationstecken även i droplisten ?

print("<option value=\"" . $rad["itemnamn"] . "\">" . $rad["itemnamn"]);

Sedan slutar din UPDATE med:

... WHERE itemid = '$id3'

Varifrån kommer $id3 ?

zeuzMedlem sedan sep. 20038 inlägg
#5

det var de grejer du sa så nu funkar det, tack Matte :)

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