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ó...
  1. <html>  
  2. <head>  
  3. <title> ellenőrzés </title>  
  4. </head>  
  5. <body>  
  6. <form action = "eladas_3.php" method= "POST">  
  7. <?php  
  8.   
  9. $ossz = mysql_connect("localhost""root""***");  
  10. mysql_select_db("test", $ossz);  
  11. mysql_query("INSERT INTO termekek SET   
  12. rend_menny2 = '" .  mysql_real_escape_string($_POST['rend_menny']) . "');  
  13.   
  14. print "<h1>Ellenőrzés</h1><p>\n\n";  
  15. if(!empty($_POST[kival_azon])) {  
  16.       
  17.     foreach ($_POST[kival_azon] as $ertek){  
  18.       
  19.         print " <h2>$ertek</h2><br>\n";  
  20.         }  
  21.     print "</ul>";  
  22. }  
  23.   
  24. print "az általad választott termékek: <p>\n\n";  
  25. if(!empty($_POST[rend_menny])) {  
  26.     print "<ul>\n\n";  
  27.       
  28.     foreach ($_POST[rend_menny] as $ertek){  
  29.     if($ertek){  
  30.         print "<li> $ertek<br>\n";  
  31.           
  32.         }}  
  33.           
  34.           
  35.     print "</ul>";  
  36. }  
  37.   
  38. ?>  
  39.   
  40. <input type="submit" value ="mentés adatbázsba (végleges)">  
  41. </form>  
  42. </body>  
  43. </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.