simpele edit pagina maken
anyways het gaat om een update script.
Ik heb een database met 3 tabellen aangemaakt en toevoegen daarin gaat allemaal goed hoero voor mij :P
nu wil ik dus een record updaten welke ik uiteindelijk via een pull down list ofzo wil gaan maken, maar daar kom ik dus tegen een probleem aan waar ik dus vast loop.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
include("config.php");
mysql_connect($dbhost,$dbuser,$dbpass);
@mysql_select_db($database) or die( "Unable to select database");
$query="SELECT * FROM games WHERE title='$title'";
$result=mysql_query($query);
$num=mysql_numrows($result);
mysql_close();
$i=0;
while ($i < $num) {
$platform=mysql_result($result,$i,"platform");
$genre=mysql_result($result,$i,"genre");
$title=mysql_result($result,$i,"title");
$status=mysql_result($result,$i,"status");
?>
<form action="updated.php" method="post">
<input type="hidden" name="ud_id" value="<?php echo "$id" ?>">
Platform: <input type="text" name="ud_platform" value="<?php echo "$platform" ?>"><br>
Genre: <input type="text" name="ud_genre" value="<?php echo "$genre" ?>"><br>
Title: <input type="text" name="ud_title" value="<?php echo "$title" ?>"><br>
Status: <input type="text" name="ud_status" value="<?php echo "$status" ?>"><br>
<input type="Submit" value="Update">
</form>
<?php
++$i;
}
?>
include("config.php");
mysql_connect($dbhost,$dbuser,$dbpass);
@mysql_select_db($database) or die( "Unable to select database");
$query="SELECT * FROM games WHERE title='$title'";
$result=mysql_query($query);
$num=mysql_numrows($result);
mysql_close();
$i=0;
while ($i < $num) {
$platform=mysql_result($result,$i,"platform");
$genre=mysql_result($result,$i,"genre");
$title=mysql_result($result,$i,"title");
$status=mysql_result($result,$i,"status");
?>
<form action="updated.php" method="post">
<input type="hidden" name="ud_id" value="<?php echo "$id" ?>">
Platform: <input type="text" name="ud_platform" value="<?php echo "$platform" ?>"><br>
Genre: <input type="text" name="ud_genre" value="<?php echo "$genre" ?>"><br>
Title: <input type="text" name="ud_title" value="<?php echo "$title" ?>"><br>
Status: <input type="text" name="ud_status" value="<?php echo "$status" ?>"><br>
<input type="Submit" value="Update">
</form>
<?php
++$i;
}
?>
Nu zal ik vast wel iets enorm doms fout doen maar na enkele dagen afstruinen naar mogelijke oplossingen kom ik helaas niet verder dan de error melding "Undefined variable: title in ..\lijst\update.php on line 5
jouw code zou een beetje aangepast moeten worden:
- haal je $vars buiten de quotes
- gebruik een foutafhandeling voor je query
- je kan beter mysql_fetch_assoc gebruiken idpv _result
- je gebruikt beter enkele quotes (') voor php en de dubbele voor html (")
- gebruik geen @ om een fout te onderdrukken, ook hier is een foutafhandeling nodig.
De foutmelding zegt dat de var $title niet te vinden is, je gebruikt op lijn 5 $title in je query. Vanwaar haal je die var?
lees deze zeker eens door:
sql-beginners-handleiding
php-beginners-handleiding
foutafhandeling
Jasper
Gewijzigd op 20/05/2011 20:12:53 door Jasper DS
Pagina 1
geeft een selectiebox van titels alfabetisch gesort
pagina 2
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
include("config.php");
$title=$_GET['title'];
mysql_connect($dbhost,$dbuser,$dbpass);
@mysql_select_db($database) or die( "Unable to select database");
$result = mysql_query("SELECT * FROM games WHERE title='$title'");
while($row = mysql_fetch_array($result))
{
echo "<form action=\"updated.php\" method=\"post\">";
echo "<input type=\"hidden\" name=\"ud_id\" value=\"" . $row['id'] . "\">";
echo "Platform: <input type=\"text\" name=\"ud_platform\" value=\"" . $row['platform'] . "\"><br>";
echo "Genre: <input type=\"text\" name=\"ud_genre\" value=\"" . $row['genre'] . "\"><br>";
echo "Title: <input type=\"text\" name=\"ud_title\" value=\"" . $row['title'] . "\"><br>";
echo "Status: <input type=\"text\" name=\"ud_status\" value=\"" . $row['status'] . "\"><br>";
echo "<input type=\"Submit\" value=\"Update\">";
echo "</form>";
}
mysql_close();
?>
include("config.php");
$title=$_GET['title'];
mysql_connect($dbhost,$dbuser,$dbpass);
@mysql_select_db($database) or die( "Unable to select database");
$result = mysql_query("SELECT * FROM games WHERE title='$title'");
while($row = mysql_fetch_array($result))
{
echo "<form action=\"updated.php\" method=\"post\">";
echo "<input type=\"hidden\" name=\"ud_id\" value=\"" . $row['id'] . "\">";
echo "Platform: <input type=\"text\" name=\"ud_platform\" value=\"" . $row['platform'] . "\"><br>";
echo "Genre: <input type=\"text\" name=\"ud_genre\" value=\"" . $row['genre'] . "\"><br>";
echo "Title: <input type=\"text\" name=\"ud_title\" value=\"" . $row['title'] . "\"><br>";
echo "Status: <input type=\"text\" name=\"ud_status\" value=\"" . $row['status'] . "\"><br>";
echo "<input type=\"Submit\" value=\"Update\">";
echo "</form>";
}
mysql_close();
?>
pagina 3 doet de uiteindelijke query update en brengt je terug naar pagina 1.
Het zal vast makkelijker kunnen maar ik heb iets werkend en na meerdere dagen zoeken ben ik nu officieel blij.
Thanks voor de hulp iig.
Gewijzigd op 20/05/2011 21:37:53 door F Smidt
Indien dat je voor php enkele quotes had gebruikt had je al die html niet moeten escapen. Verder is het beter fetch_assoc te gebruiken idpv fetch_array. En het belangrijkste -> je script is lek, sql injectie is mogelijk! Voeg mysql_real_escape_string() toe aan $titel en haal je vars buiten quotes.
Ik hoop dat je zeker de laatste tip volgt want dit is zeer belangrijk!
Jasper