Ik heb een database met films
rijen Filmnummer, Naam, Genre, Jaar, Speelduur_in_min

ik wil dus de rij kunnen bewerken
Iemand tips hoe ik dit aan moet pakken?

Alvast bedankt


[edit]

Ben even helemaal opnieuw begonnen


<?php
if (isset($_GET['bewerk_Filmnummer']))
{
$bewerkfilm = mysql_real_escape_string($_GET['bewerk_Filmnummer']);
$bewerkdefilm = mysql_query("UPDATE filmdatabase WHERE Filmnummer ='$bewerkfilm'") or die (mysql_error());
}

$queryfilm = mysql_query("SELECT * FROM filmdatabase ORDER BY Naam");

while ($film = mysql_fetch_array($queryfilm)) {
echo '<a href="ophalen.php?Naam=';
echo $film['Naam'];
echo '">';
echo $film['Naam'];
echo '</a>   |   ';
echo '<a href="itembewerken.php?bewerk_Filmnummer=';
echo $film['Filmnummer'];
echo '">Bewerken</a><br />';
}
?>


Normaal staat de verbinding en layout er nog boven maar dat is niet van belang.

Hoe zorg ik er nu voor dat dit formulier (zie hieronder) te voor schijn komt als ik op bewerken klik?


<form name="itembewerken" method="post" action="itembewerken.php" class="box1">
		<fieldset><legend>Items bewerken:</legend>
		<p><label for="Naam">Naam:</label><input type='text' name="Naam" class="txt"/></p>
		<p><label for="Genre">Genre:</label><input type='text' name="Genre" class="txt"/></p>
		<p><label for="Jaar">Jaar:</label><input type='text' name="Jaar" class="txt"/></p>
		<p><label for="Speelduur_in_min">Speelduur in minuten:</label><input type='int' name="Speelduur_in_min"  class="txt"/></p>
		<p><input type='submit' name="submit" value='Verstuur' class="btn"/></p>
		</fieldset>
		</form>


???

Ik reageer net op je topic van verwijderen graag. Ik zou je eerst even door willen verwijzen naar de F.A.Q. want jij hebt niet door wat php HULP inhoud. In elk geval niet php ZOEKWERKVOORNIKS.

en nu een nuttige reactie;

Welkom bij PHPhulp

Voor scripts -> raadplaag de library, tutorials of google!

Voor aanvragen -> maak dan een vacature conform de regels van PHPhulp. en vermeldt wat de vergoeding is.

Voor nutteloze vragen en onnodige topic -> laat dit forum met rust

Voor nuttige vragen waar je daadwerkelijk zelf als iets hebt zitten prutsen -> bedenk dan pas of het nuttig is een topic te plaatsen voor hulp.

Om dit menu nogmaals te lezen -> scroll naar boven


HOBBYLOOOS
Even een vraagje... Filmnummer, dit is gewoon een auto_increment ID veld?
Verder is het verder vrij simpel, ik hou je website al een tijdje in de gaten (ben zelf ook bezig met een film/tv script, alleen wat groter) en weet nu wel zo'n beetje wat je kan.

Je moet gewoon de gegevens ophalen uit de database (makkelijkste is uiteraard via $_GET['id']) en die gegevens in arrays zetten. Vervolgens een formuliertje maken waarbij in elke input field bij value de array gezet word. Vervolgens kan je dat aanpassen, en verwerken op dezelfde manier als dat je een film post. Enkel gebruik je dan geen INSERT maar UPDATE. En uiteraard even een WHERE filmnummer = $_GET['id'].

Verder zoals Nimtex al aangeeft, let even op je posts. Probeer verder eerst zelf altijd iets en als je er niet uitkomt, laat hier even zien wat je geprobeerd hebt. Het is niet de bedoeling dat wij kant en klare scripts aan je geven natuurlijk. En kijk ook eens wat beter rond bij tutorials en scripts. Want voor wat jij hier zoekt staan er echt tientallen voorbeelden in de tutorials en scripts secties.

Verder succes met je website! Het is altijd een leuk iets om te doen, een film/tv website. Ikzelf ben momenteel druk bezig met een Nederlandse soort-van IMDB.
Ja het is een auto increment veld

Ik heb geprobeerd mijn script op items toe te voegen aan te passen, maar dit wou niet echt lukken
Ik zal nog even wat verder prutsen met je tips

Ik heb gezocht om voorbeelden maar die kon ik niet vinden,

Jij ook succes met je website
nimtex schreef op 25.11.2009 12:12
???

Ik reageer net op je topic van verwijderen graag. Ik zou je eerst even door willen verwijzen naar de F.A.Q. want jij hebt niet door wat php HULP inhoud. In elk geval niet php ZOEKWERKVOORNIKS.

en nu een nuttige reactie;

Welkom bij PHPhulp

Voor scripts -> raadplaag de library, tutorials of google!

Voor aanvragen -> maak dan een vacature conform de regels van PHPhulp. en vermeldt wat de vergoeding is.

Voor nutteloze vragen en onnodige topic -> laat dit forum met rust

Voor nuttige vragen waar je daadwerkelijk zelf als iets hebt zitten prutsen -> bedenk dan pas of het nuttig is een topic te plaatsen voor hulp.

Om dit menu nogmaals te lezen -> scroll naar boven


HOBBYLOOOS


Ik heb hem aangepast hoor

Maar er zijn genoeg die dit ook doen -.-

Gelieve Niet Bumpen:

Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de knop om je tekst aan te passen.

SanThe.

Had toch niks te doen dus bij deze:


<?PHP

# Errors weergeven
error_reporting(E_ALL);

# Connectie met database
require_once 'database.php';

# Array message
$Message = array();
# Error is false
$Error = false;

# Kijken of er een id wordt meegezonden
if(!empty($_GET['id']) && ctype_digit($_GET['id']))
{
	# Query uitvoeren om de gegevens te selecteren
	$Query =
	"
		SELECT
			Naam,
			Genre,
			Jaar,
			Speelduur_in_min
		FROM
			films
		WHERE
			Filmnummer = '".intval($_GET['id'])."'
	";
	
	# Resultaat van de query
	$Result = mysql_query($Query);
	
	# Kijken of de query is gelukt
	if(!$Result)
	{
		# Foutje in query
		$Message[] = 'Fout opgetreden met selecteren, fout is: '.mysql_error();
		# Error true
		$Error = true;
	}
	else
	{
		# Kijken of id wel voorkomt in database
		if(mysql_num_rows($Result) == 0)
		{
			# Geen resultaat gevonden
			$Message[] = 'Er is geen resultaat gevonden met opgegeven id.';
			# Error true
			$Error = true;
		}
		else
		{
			# Info fetchen
			$Row = mysql_fetch_assoc($Result);
		}
	}
}
else
{
    # Geen id meegestuurd of het is geen cijfer
    $Message[] = 'Dit id is niet geldig.';
    # Error true
    $Error = true;
}

# Kijken of er gepost wordt
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
	# Kijken of er wel een naam is ingevuld
	if(empty($_POST['naam']))
	{
		# Geen naam ingevuld
		$Message[] = 'Vul a.u.b een naam in.';
		# Error true
		$Error = true;
	}
	
	# Kijken of er wel een genre is ingevuld
	if(empty($_POST['genre']))
	{
		# Geen genre ingevuld
		$Message[] = 'Vul a.u.b een genre in.';
		$Error = true;
	}
	
	# Kijken of er wel een jaar is ingevuld
	if(empty($_POST['jaar']) && !ctype_digit($_POST['jaar']))
	{
		# Geen gjaartal ingevuld
		$Message[] = 'Jaar moet ingevuld worden en een cijfer zijn.';
		$Error = true;
	}
	
	# Kijken of er wel een speelduur is ingevuld
	if(empty($_POST['speelduur']))
	{
		# Geen genre ingevuld
		$Message[] = 'Vul a.u.b de speelduur van de film in.';
		$Error = true;
	}
	
	# Kijken of er geen error is
	if($Error == false)
	{
		# Query uitvoeren
		$Query =
		"
			UPDATE
				films
			SET
				Naam = '".mysql_real_escape_string($_POST['naam'])."'
				Genre = '".mysql_real_escape_string($_POST['genre'])."'
				Jaar = '".intval($_POST['jaar'])."'
				Speelduur_in_min = '".mysql_real_escape_string($_POST['speelduur'])."'
			WHERE
				Filmnummer = '".intval($_GET['id'])."'
		";
		
		# Resultaat van de query
		$Result = mysql_query($Query);
		
		# Kijken of de query is gelukt
		if(!$Result)
		{
			# Foutje in query
			$Message[] = 'Fout opgetreden met updaten, fout is: '.mysql_error();
		}
		else
		{
			# Succesvol geupdate
			$Message[] = 'Film is succesvol bewerkt.';
		}
	}
}

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Bewerk</title>
</head>

<body>
<?PHP

# Kijken of er een error is
if($Error == true)
{
	# Kijken of er een message is
	if(!empty($Message))
	{
		# Laat message zien
		foreach($Message as $Msg)
		{
			echo $Msg.'<br/>';
		}
	}
}
else
{
	# Laat hier je formulier zien.
	# Met $Row kan je de gegevens laten zien in de tekstvelden.
	# Voorbeeld
	echo '<input name="naam" type="text" id="naam" value="'.$Row['Naam'].'" />';
}

?>
</body>
</html>


Let op: is niet getest.
ik test hem even

<?PHP

# Errors weergeven
error_reporting(E_ALL);

# Connectie met database
require_once 'verbinding.php';

# Array message
$Message = array();
# Error is false
$Error = false;

# Kijken of er een id wordt meegezonden
if(!empty($_GET['id']) && ctype_digit($_GET['id']))
{
    # Query uitvoeren om de gegevens te selecteren
    $Query =
    "
        SELECT
            Naam,
            Genre,
            Jaar,
            Speelduur_in_min
        FROM
            filmdatabase
        WHERE
            Filmnummer = '".intval($_GET['id'])."'
    ";
    
    # Resultaat van de query
    $Result = mysql_query($Query);
    
    # Kijken of de query is gelukt
    if(!$Result)
    {
        # Foutje in query
        $Message[] = 'Fout opgetreden met selecteren, fout is: '.mysql_error();
        # Error true
        $Error = true;
    }
    else
    {
        # Kijken of id wel voorkomt in database
        if(mysql_num_rows($Result) == 0)
        {
            # Geen resultaat gevonden
            $Message[] = 'Er is geen resultaat gevonden met opgegeven id.';
            # Error true
            $Error = true;
        }
        else
        {
            # Info fetchen
            $Row = mysql_fetch_assoc($Result);
        }
    }
}
else
{
    # Geen id meegestuurd of het is geen cijfer
    $Message[] = 'Dit id is niet geldig.';
    # Error true
    $Error = true;
}

# Kijken of er gepost wordt
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
    # Kijken of er wel een naam is ingevuld
    if(empty($_POST['naam']))
    {
        # Geen naam ingevuld
        $Message[] = 'Vul a.u.b een naam in.';
        # Error true
        $Error = true;
    }
    
    # Kijken of er wel een genre is ingevuld
    if(empty($_POST['genre']))
    {
        # Geen genre ingevuld
        $Message[] = 'Vul a.u.b een genre in.';
        $Error = true;
    }
    
    # Kijken of er wel een jaar is ingevuld
    if(empty($_POST['jaar']) && !ctype_digit($_POST['jaar']))
    {
        # Geen gjaartal ingevuld
        $Message[] = 'Jaar moet ingevuld worden en een cijfer zijn.';
        $Error = true;
    }
    
    # Kijken of er wel een speelduur is ingevuld
    if(empty($_POST['speelduur']))
    {
        # Geen genre ingevuld
        $Message[] = 'Vul a.u.b de speelduur van de film in.';
        $Error = true;
    }
    
    # Kijken of er geen error is
    if($Error == false)
    {
        # Query uitvoeren
        $Query =
        "
            UPDATE
                films
            SET
                Naam = '".mysql_real_escape_string($_POST['naam'])."'
                Genre = '".mysql_real_escape_string($_POST['genre'])."'
                Jaar = '".intval($_POST['jaar'])."'
                Speelduur_in_min = '".mysql_real_escape_string($_POST['speelduur'])."'
            WHERE
                Filmnummer = '".intval($_GET['id'])."'
        ";
        
        # Resultaat van de query
        $Result = mysql_query($Query);
        
        # Kijken of de query is gelukt
        if(!$Result)
        {
            # Foutje in query
            $Message[] = 'Fout opgetreden met updaten, fout is: '.mysql_error();
        }
        else
        {
            # Succesvol geupdate
            $Message[] = 'Film is succesvol bewerkt.';
        }
    }
}

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Bewerk</title>
</head>

<body>
<?PHP

# Kijken of er een error is
if($Error == true)
{
    # Kijken of er een message is
    if(!empty($Message))
    {
        # Laat message zien
        foreach($Message as $Msg)
        {
            echo $Msg.'<br/>';
        }
    }
}
else
{
    # Laat hier je formulier zien.
    # Met $Row kan je de gegevens laten zien in de tekstvelden.
    # Voorbeeld
    echo '<input name="naam" type="text" id="naam" value="'.$Row['Naam'].'" />';
}

?>
</body>
</html>


even aangepast naar eigen gegevens
uhm
ik krijg foutmelding
Dit id is niet geldig

gelijk als ik hem opstart zeg maar

Ik denk dat ik de fout al weet (A)
Er staat geen invoerveld etc in dit script, dus eerst even een script maken met invoervelden e.d.

Gelieve Niet Bumpen: Herhaling

Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de knop om je tekst aan te passen.

SanThe.


[edit]
Oh nee dat veld is er wel
Hou nou eens op met bumpen.

Je moet wel een id mee sturen, pagina.php?id=1 als voorbeeld zeg maar..
Dan is er (nog) geen $_GET en dat test je niet.
Sorry ik wist niet dat dat niet mocht
(bumpen, en dat bericht verwijderen)

hoe bedoel je dat?

[edit]

Ben even helemaal opnieuw begonnen


<?php
if (isset($_GET['bewerk_Filmnummer']))
{
$bewerkfilm = mysql_real_escape_string($_GET['bewerk_Filmnummer']);
$bewerkdefilm = mysql_query("UPDATE filmdatabase WHERE Filmnummer ='$bewerkfilm'") or die (mysql_error());
}

$queryfilm = mysql_query("SELECT * FROM filmdatabase ORDER BY Naam");

while ($film = mysql_fetch_array($queryfilm)) {
echo '<a href="ophalen.php?Naam=';
echo $film['Naam'];
echo '">';
echo $film['Naam'];
echo '</a>   |   ';
echo '<a href="itembewerken.php?bewerk_Filmnummer=';
echo $film['Filmnummer'];
echo '">Bewerken</a><br />';
}
?>


Normaal staat de verbinding en layout er nog boven maar dat is niet van belang.

Hoe zorg ik er nu voor dat dit formulier (zie hieronder) te voor schijn komt als ik op bewerken klik?


<form name="itembewerken" method="post" action="itembewerken.php" class="box1">
		<fieldset><legend>Items bewerken:</legend>
		<p><label for="Naam">Naam:</label><input type='text' name="Naam" class="txt"/></p>
		<p><label for="Genre">Genre:</label><input type='text' name="Genre" class="txt"/></p>
		<p><label for="Jaar">Jaar:</label><input type='text' name="Jaar" class="txt"/></p>
		<p><label for="Speelduur_in_min">Speelduur in minuten:</label><input type='int' name="Speelduur_in_min"  class="txt"/></p>
		<p><input type='submit' name="submit" value='Verstuur' class="btn"/></p>
		</fieldset>
		</form>


Reageren