Adatbázis rekordok betöltése űrlapba
A lenti programmal kapcsolatban szeretnék segítséget kérni.
A program először kapcsolódik a "adatbazis1" nevű adatbázishoz.
Onnét lekérdezi az "azonosito" és "nev" mezők tartalmát.
Az "azonosito" mezők tartalmát be kellene töltenie egy legördülő listába.
Ezt nem csinálja meg a program.
Ez után a kiválasztott azonosítóhoz tartozó "nev" mező értékét tudnánk módosítani.
Ha ez megtörtént, akkor a frissítés gomb megnyomásával a program feltöltené az adatbázisba a "nev" mező új rekordját.
Az adatbázisból kiolvasott mezők értéke nem töltődik be az űrlapba.
Ezzel kapcsolatban szeretnék segítséget kérni.
Ez egy régebbi példa program. Most tanulom a php-t.
Nem világos az sem, hogy hol kell használni a $_POST['azonosito'] formulát...
Köszönöm!
<html>
<head>
<title>Sorok frissítése az adatbázisban</title>
</head>
<body>
<?php
$server = "localhost";
$felhasznalo = "root";
$jelszo = "";
$adatbazis = "adatbazis1";
$kapcsolat = mysql_connect( $server,$felhasznalo, $jelszo );
if ( ! $kapcsolat ) die( "Nem lehet kapcsolódni a MySQL kiszolgálóhoz!" );
print "Sikerült a kapcsolatfelvétel<P>";
mysql_select_db( $adatbazis ) or die ( "Nem lehet megnyitni a $adatbázist: ".mysql_error() );
if ( isset( $_POST['azonosito'] ) && isset( $_POST['nev'] ) )
{
$parancs = "UPDATE table1 SET nev ='$nev' WHERE azonosito=$azonosito";
$eredmeny = mysql_query( $parancs );
if ( ! $eredmeny ) die ("Nem sikerült a módosítás: ".mysql_error());
print "<h1>A tábla módosítva, ".mysql_affected_rows() ." sor változott</h1><p>";
}
?>
<form action="<? print $PHP_SELF ?>" method="POST">
<select name="azonosito">
<?
$eredmeny = mysql_query( "SELECT azonosito, nev FROM table1" );
while( $egy_sor = mysql_fetch_object( $eredmeny ) )
{
print "<option value=\"$egy_sor->azonosito\"";
if ( isset($nev) && $nev == $egy_sor->nev )
print " selected";
print "> $egy_sor->azonosito\n";
}
mysql_close( $kapcsolat );
?>
</select>
<input type="text" name="nev">
<input type="submit" value="Frissítés">
</form>
</body>
</html>
■ A program először kapcsolódik a "adatbazis1" nevű adatbázishoz.
Onnét lekérdezi az "azonosito" és "nev" mezők tartalmát.
Az "azonosito" mezők tartalmát be kellene töltenie egy legördülő listába.
Ezt nem csinálja meg a program.
Ez után a kiválasztott azonosítóhoz tartozó "nev" mező értékét tudnánk módosítani.
Ha ez megtörtént, akkor a frissítés gomb megnyomásával a program feltöltené az adatbázisba a "nev" mező új rekordját.
Az adatbázisból kiolvasott mezők értéke nem töltődik be az űrlapba.
Ezzel kapcsolatban szeretnék segítséget kérni.
Ez egy régebbi példa program. Most tanulom a php-t.
Nem világos az sem, hogy hol kell használni a $_POST['azonosito'] formulát...
Köszönöm!
<html>
<head>
<title>Sorok frissítése az adatbázisban</title>
</head>
<body>
<?php
$server = "localhost";
$felhasznalo = "root";
$jelszo = "";
$adatbazis = "adatbazis1";
$kapcsolat = mysql_connect( $server,$felhasznalo, $jelszo );
if ( ! $kapcsolat ) die( "Nem lehet kapcsolódni a MySQL kiszolgálóhoz!" );
print "Sikerült a kapcsolatfelvétel<P>";
mysql_select_db( $adatbazis ) or die ( "Nem lehet megnyitni a $adatbázist: ".mysql_error() );
if ( isset( $_POST['azonosito'] ) && isset( $_POST['nev'] ) )
{
$parancs = "UPDATE table1 SET nev ='$nev' WHERE azonosito=$azonosito";
$eredmeny = mysql_query( $parancs );
if ( ! $eredmeny ) die ("Nem sikerült a módosítás: ".mysql_error());
print "<h1>A tábla módosítva, ".mysql_affected_rows() ." sor változott</h1><p>";
}
?>
<form action="<? print $PHP_SELF ?>" method="POST">
<select name="azonosito">
<?
$eredmeny = mysql_query( "SELECT azonosito, nev FROM table1" );
while( $egy_sor = mysql_fetch_object( $eredmeny ) )
{
print "<option value=\"$egy_sor->azonosito\"";
if ( isset($nev) && $nev == $egy_sor->nev )
print " selected";
print "> $egy_sor->azonosito\n";
}
mysql_close( $kapcsolat );
?>
</select>
<input type="text" name="nev">
<input type="submit" value="Frissítés">
</form>
</body>
</html>
Lekérdezés
Álljon itt azért egy tisztább kód:
:)
A te kódod működik.
Az enyémmel nem tudom, hogy mi volt a hiba.
Köszönöm a segítséget!
Üdv: Ricsi
short_open_tag
EDIT: ha nem fatal error a hiba, akkor meg valahol logikai bukfenc volt az eredeti kódban, a <? használaton kívül más különbség elsőre nem tűnt fel.