ugrás a tartalomhoz

Adatbázis (mysql) kilistázás, majd a választásaim megjelenítése és adatbázisba írása

Bazsi7 · 2008. Már. 17. (H), 21.40
Sziasztok! Kezdő vagyok, szóval előre is bocsi. Adott egy mysql adatbázis (test), és abban egy tábla (eladok). Ebből szeretném a neveket kilistázni, oly módon, hogy az ilyen választható listában jelenjen meg. (most itt option, de radio button stb. is érdekelne). Majd miután kiválasztok, OK -gomb, kiírja a választásaimat, majd ha azt is elfogadom, akkor a változásokat egy ,másik táblába elmenti (egy tranzakciós tábla). Sajnos már a kilistázásnál elakadtam... Kérlek segítsetek!
Köszi!


<html>
<head>
</head>
<body>

<?php

$ossz = mysql_connect("localhost", "root", "****");
mysql_select_db("test", $ossz);

$nevek_sql = "select nev from eladok";
$nevek = mysql_query($nevek_sql) or die(mysql_error());
?>
<form method ="post" action="$_SERVER[PHP_SELF]">
<P><strong>Válassz egy bejegyzést</strong><br>
<select name "kival_azon">
<?php
while ($ujtomb = mysql_fetch_array($nevek)) {
<option value=\"$nevek\">$nevek</option>
}
?>
</select>
</form>


</body>
</html>


Parse error: syntax error, unexpected '<' in C:\AppServ\www\kezd1\eladas_1.php on line 19

Ez a 19. sor: <option value=\"$nevek\">$nevek</option>

Mi lehet a gond?
 
1

Ahh

s_volenszki · 2008. Már. 17. (H), 22.07
Ez a kérdés, ez nem kis témakört ölel fel! Talán lépésről lépésre:

Olvasd át ezt: http://php.about.com/od/learnphp/qt/php_with_html.htm

és valószíinüleg érteni fogod, a hibaüzenetet.

s_volenszki
2

hello world fix

js · 2008. Már. 17. (H), 22.16
Hirtelen ránézésre két problémát is látok, de először az elmélet: egy PHP fájl nem más, mint valami HTML, amiből a <?php ... ?> közötti részt a PHP értelmező dolgozza fel, majd a kimenetét beilleszti.

A PHP azonban nem érti a HTML-t, tehát a kettőt nem lehet keverni.

A parse error innen jön, egy PHP blokkban direkt HTML-t adtál meg. Ezt a print utasítással kéne megoldani, például.

A másik, még nem látszó hiba az, hogy nem PHP blokkban próbálsz PHP változókat (ha jól látom, a 14. sorban). Ezt <?php echo $valtozo?>-val lehet kiiratni.
3

köszi

Bazsi7 · 2008. Már. 17. (H), 22.55
Kijavítgattam ezeket a hibákat, és le is fut így már. De sajnos nemegészen azt listázza amit kéne...

most így néz ki:

<html>
<head>
</head>
<body>

<?php

$ossz = mysql_connect("localhost", "root", "****");
mysql_select_db("test", $ossz);

$nevek_sql = "select nev from eladok";
$nevek = mysql_query($nevek_sql) or die(mysql_error());
?>
<form method ="post" action="<?php $_SERVER[PHP_SELF] ?>"> <---javítottam
<P><strong>Válassz egy bejegyzést</strong><br>
<select name "kival_azon">
<?php
while ($ujtomb = mysql_fetch_array($nevek)) {
print "<option value=\"$nevek\">$nevek</option>"; <---javítottam
}
?>
</select>
</form>
</body>
</html>

Erre a legördülő választható listában mindenhol Resource id #3 szerepel (kb 16 darab). Szóval nem egészen az aminek kellene.
4

megvan!

Bazsi7 · 2008. Már. 18. (K), 00.47
Megvan! A linken meglett a megoldás! Kilistázza a neveket! Köszi:)

print "<option>".$ujtomb['nev']."</option>";

Így működik. Folytatom tovább! :)
5

Ismét egy probléma

Bazsi7 · 2008. Már. 18. (K), 23.14
Egy hasonló problémám akadt, de nemigazán értem, hogy miért nem jó...

<html>
<head>
<title> ellenőrzés </title>
</head>
<body>
<form action = "eladas_3.php" method= "POST">
<?php

$ossz = mysql_connect("localhost", "root", "***");
mysql_select_db("test", $ossz);
mysql_query("INSERT INTO termekek SET 
rend_menny2 = '" .  mysql_real_escape_string($_POST['rend_menny']) . "');

print "<h1>Ellenőrzés</h1><p>\n\n";
if(!empty($_POST[kival_azon])) {
	
	foreach ($_POST[kival_azon] as $ertek){
	
		print " <h2>$ertek</h2><br>\n";
		}
	print "</ul>";
}

print "az általad választott termékek: <p>\n\n";
if(!empty($_POST[rend_menny])) {
	print "<ul>\n\n";
	
	foreach ($_POST[rend_menny] as $ertek){
	if($ertek){
		print "<li> $ertek<br>\n";
		
		}}
		
		
	print "</ul>";
}

?>

<input type="submit" value ="mentés adatbázsba (végleges)">
</form>
</body>
</html>
Így ebben a formában syntax errort ír a '<' jelre, a 14 sor körül. De ha kiveszem a kódból az adatbázis részt, vagyis ezt:

$ossz = mysql_connect("localhost", "root", "****");
mysql_select_db("test", $ossz);
mysql_query("INSERT INTO termekek SET
rend_menny2 = '" . mysql_real_escape_string($_POST['rend_menny']) . "');


akkor tökéletesen fut...
Gondolom azért nem tettszik neki, mert HTML kód van a PHP-ban, de egyrészt az print-en belül van, másrészt akkor az adatbázis-kód nélkül miért megy? Vagy hogy van ez?

Köszi!
6

Syntax error

janoszen · 2008. Már. 19. (Sze), 00.58
Talán azért ír syntax errort, mert az is van. A 14 sor előtti MySQL query stringjét elfelejtetted lezárni, mint azt a szinezés nagyon szépen mutatja.