Autor | Zpráva | ||
---|---|---|---|
Křemílek Profil |
#1 · Zasláno: 30. 8. 2005, 11:03:02 · Upravil/a: Křemílek
Ahoj, mám jednoduchý select
<select name="typ" on-Change="this.form.submit();" class="zapasy_menu" id="typ"> <option selected>- vyber -</option> <option value="HQ_FW">Headquarters FW</option> <option value="HQ_ESL">Headquarters ESL</option> <option value="SaD_FW">Search & Destroy FW</option> <option value="SaD_ESL_3vs3">Search & Destroy ESL 3vs3</option> <option value="SaD_ESL_6vs6">Search & Destroy ESL 6vs6</option> <option value="SaD_GZ_5vs5">Search & Destroy GZ 5vs5</option> <option value="TDM_FW">TeamDeathMatch FW</option> <option value="TDM_ESL_1vs1">TeamDeathMatch ESL 1vs1</option> <option value="TDM_ESL_2vs2">TeamDeathMatch ESL 2vs2</option> </select> (VALUE jsou nahodna, jen pro ukazku) a potrebuji, aby se mi z databáze vypsalo to, co vyberu v menu, tzn. ze tam budou urcita kriteria pro vypis jako napr. "WHERE `LIGA` = 'ESL' AND `KOLIK_OF` = '3vs3' AND `TYP` = 'SaD'" Nevim, jestli je to podstatné, ale udaje z databaze se mi generuji ve vnorene strance, tzn. <html> <body> ... <select name="typ" ... > ... <? include ("vypis.php"); ?> <!-- jako default je zde vygenerováno vsechno --!> ... </body> </html> Budu vam moc vdecny za pomoc :-) |
||
apofis Profil |
#2 · Zasláno: 30. 8. 2005, 12:15:43
vždyť jsi si odpověděl.
pokud přebereš data z value např přes post (get) to je jedno tak dáš dotaz SELECT * FROM tabulka WHERE LIGA = $_POST['data z formuláře'] to je vše. |
||
Křemílek Profil |
#3 · Zasláno: 30. 8. 2005, 12:43:42 · Upravil/a: Křemílek
teprve se s php ucim:)
ale nejak mi to nefunguje a nevim proc.. $vysledek = mysql_query("SELECT `DATUM`,`LIGA`,`SOUPER_NAZEV`,`SCORE_CELKOVE` FROM `Zapasy` WHERE = $_POST[''] ORDER BY `ID` DESC LIMIT 0,50",$db); <form name="menu" method="post"> <select name="typ" class="zapasy_menu" id="typ" tabindex="3" lang="cs" onChange="this.form.submit();"> <option selected>- vyber -</option> <option value="`LIGA` = 'FW' AND `TYP` = 'HQ'">Headquarters FW</option> <option value="`LIGA` = 'ESL' AND `TYP` = 'HQ'">Headquarters ESL</option> <option value="`LIGA` = 'FW' AND `TYP` = 'SaD'">Search & Destroy FW</option> <option value="`LIGA` = 'ESL' AND `KOLIK_OF` = '3vs3' AND `TYP` = 'SaD'">Search & Destroy ESL 3vs3</option> </select> </form> Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in /3w/wz.cz/m/maniackittens/zapasy_vypis.php on line 14 Asi mam chybu v tom $vysledku ne? Kdy v selectu na neco kliknu, tak se stranka loaduje a loaduje a nakonec naloaduje to co tam bylo predtim, tedy vsechno.. PS: SOUBOR seznam_vypis.php <table width="766" border="1" align="center" cellpadding="1" cellspacing="1" bordercolor="#F3F3F3" bgcolor="#FFFFFF"> <tr bordercolor="#7793AE" bgcolor="#DFE4EA"> <td width="65" class="zapasy_nadpis1"><div align="center">datum</div></td> <td width="45" bordercolor="#7793AE"><div align="center" class="zapasy_nadpis2">liga</div></td> <td width="488" bordercolor="#7793AE" class="zapasy_nadpis3">soupeø</td> <td width="70" bordercolor="#7793AE"><div align="center" class="zapasy_nadpis2">skóre</div></td> <td width="70" bordercolor="#7793AE"><div align="center" class="zapasy_nadpis2">detaily</div></td> </tr> <!-- zacatek vypisu --> <?php $db = mysql_connect("mysql.webzdarma.cz", "nick", "heslo"); mysql_select_db("nick",$db); mysql_query("SET CHARACTER SET utf8"); $vysledek = mysql_query("SELECT `DATUM`,`LIGA`,`SOUPER_NAZEV`,`SCORE_CELKOVE` FROM `Zapasy` WHERE = $_POST[''] ORDER BY `ID` DESC LIMIT 0,50",$db); while(list($datum,$liga,$souper_nazev,$score_celkove)=Mysql_fetch_arra y($vysledek)): echo"<tr class=zapasy_radek1 onMouseOver=this.className='zapasy_radek2' onMouseOut=this.className='zapasy_radek1'>\n"; echo"<td width=65><div align=center class=zapasy_datum>$datum</div></td>\n"; echo"<td width=45><div align=center class=zapasy_liga>$liga</div></td>\n"; echo"<td width=488 bordercolor=#F3F3F3><div align=left class=zapasy_souper>$souper_nazev</div></td>\n"; echo"<td width=70><div align=center class=zapasy_skore>$score_celkove</div></td>\n"; echo"<td width=70><div align=center class=zapasy_info>info</div></td></tr>\n"; endwhile; ?> <!-- konec vypisu --> </table> |
||
Křemílek Profil |
#4 · Zasláno: 30. 8. 2005, 12:55:49 · Upravil/a: Křemílek
PS: seznam_vypis.php ma byt zapasy_vypis.php
a po vyberu selectu se nenaloaduje nic, jen tak chybova hlaska.. |
||
apofis Profil |
#5 · Zasláno: 30. 8. 2005, 14:05:09 · Upravil/a: apofis
já ti nevím kdybych to psal já taky bych to napsal asi takhle (předpoklad názvy sloubců jsou malými písmeny)
<form name="menu" method="post"> <select name="typ" class="zapasy_menu" id="typ" tabindex="3" lang="cs" onChange="this.form.submit();"> <option selected>- vyber -</option> <option value="liga = 'FW' AND typ = 'HQ'">Headquarters FW</option> <option value="liga = 'ESL' AND typ = 'HQ'">Headquarters ESL</option> <option value="liga = 'FW' AND typ = 'SaD'">Search & Destroy FW</option> <option value="liga = 'ESL' AND kolik_of = '3vs3' AND typ = 'SaD'">Search & Destroy ESL 3vs3</option> </select> </form> <?php $co_vypsat = $_POST["typ"]; echo "$co_vypsat"; //nemusí tam být ale v takovýhlech případech se rád mrknu co mi to posílá do databáze //definice databáze mám v souboru s názvem config.php a vkládám kde je všude potřeba databáze a nemusím nic vypisovat // include ("config.php"); $id_spojeni = @mysql_connect($server, $uz_jmeno, $heslo); if (!$id_spojeni) die('<h1>Prosím omluvte potíže<br>Spojení s MySQL databází se nezdařilo<br>Server zřejmě nepracuje sdprávně<br>Prosím zkuste to za chvíli.</h1>'); $vysledek_vybrani = @mysql_select_db($database, $id_spojeni); if (!$vysledek_vybrani) die("<h1>Databáze $database je poškozena prosím vyčkejte nápravy</h1>."); @mysql_query("SET CHARACTER SET utf8",$id_spojeni); $sql = "SELECT datum,liga,souper_nazev,skore_celkove FROM zapasy WHERE $co_vypsat ORDER BY id DESC LIMIT 0,50"; $vysledek = mysql_query($sql,$id_spojeni); if(!$vysledek)die("$sql"); //Pokud je chyba vypíše sql aby se dala najít (např vložením do phpMyAdmin sql řádku) while($zaznam = mysql_fetch_row($vysledek)): //využívám row páč je silně rychlejší než array echo"<tr class=zapasy_radek1 onMouseOver=this.className='zapasy_radek2' onMouseOut=this.className='zapasy_radek1'>\n"; echo"<td width=65><div align=center class=zapasy_datum>$zaznam[0]</div></td>\n"; //první záznam je 0 (datum) echo"<td width=45><div align=center class=zapasy_liga>$zaznam[1]</div></td>\n"; echo"<td width=488 bordercolor=#F3F3F3><div align=left class=zapasy_souper>$zaznam[2]</div></td>\n"; echo"<td width=70><div align=center class=zapasy_skore>$zaznam[3]</div></td>\n"; echo"<td width=70><div align=center class=zapasy_info>info</div></td></tr>\n"; endwhile; pokud jsem nenapsal někde překlep mohlo by to fungovat |
||
apofis Profil |
#6 · Zasláno: 30. 8. 2005, 14:21:35
pokud by to nevybíralo správně za příkaz $sql = ..... vlož na další řádek echo $sql; a když se ti vypíše tak mrkni do phpMyAdmin a vlož tam ten vypsaný příkaz myAdmin většinou řekne co je špatně.
|
||
Křemílek Profil |
#7 · Zasláno: 30. 8. 2005, 15:56:35
dekuji moc na rozsahlou odpoved, podivam se na to..
|
||
Křemílek Profil |
#8 · Zasláno: 30. 8. 2005, 16:56:46
ja nevim, asi nekde neco delam spatne, ale nevidim kde, v php se nevyznam..
<?php $vyber = $_POST["menu"]; echo"$vyber"; $database = ("uz_jmeno"); $id_spojeni = @mysql_connect("mysql.webzdarma.cz", "uz_jmeno", "heslo"); if (!$id_spojeni) die("<h1>Prosím omluvte potíže<br>Spojení s MySQL databází se nezdarilo<br>Server zrejme nepracuje sdprávne<br>Prosím zkuste to za chvíli.</h1>"); $vysledek_vybrani = @mysql_select_db($database, $id_spojeni); if (!$vysledek_vybrani) die("<h1>Databáze $database je poškozena prosím vyckejte nápravy.</h1>"); @mysql_query("SET CHARACTER SET utf8",$id_spojeni); $sql = "SELECT DATUM,LIGA,SOUPER_NAZEV,SCORE_CELKOVE FROM Zapasy WHERE $vyber ORDER BY ID DESC LIMIT 0,50"; $vysledek = mysql_query($sql,$id_spojeni); if(!$vysledek)die("$sql"); while($zaznam = mysql_fetch_row($vysledek)): echo"<tr class=zapasy_radek1 onMouseOver=this.className='zapasy_radek2' onMouseOut=this.className='zapasy_radek1'>\n"; echo"<td width=65><div align=center class=zapasy_datum>$zaznam[0]</div></td>\n"; echo"<td width=45><div align=center class=zapasy_liga>$zaznam[1]</div></td>\n"; echo"<td width=488 bordercolor=#F3F3F3><div align=left class=zapasy_souper>$zaznam[2]</div></td>\n"; echo"<td width=70><div align=center class=zapasy_skore>$zaznam[3]</div></td>\n"; echo"<td width=70><div align=center class=zapasy_info>info</div></td></tr>\n"; endwhile; ?> vypisuje mi to: SELECT DATUM,LIGA,SOUPER_NAZEV,SCORE_CELKOVE FROM Zapasy WHERE ORDER BY ID DESC LIMIT 0,50 |
||
apofis Profil |
#9 · Zasláno: 30. 8. 2005, 18:10:47
tak pokud ti tenhle kód vypisuje chybu tak ten příkaz "$sql" je špatně, zkontroloval jsi správné názvy, tabulek, sloupců, atd...
pokud to je ok tak mi můžeš na e-mail "mirek(zavináč)i-page(tečka)net" poslat přístup do té databáze a do souborů a já se na to mrknu on-line abych viděl jak to máš postavený protože jinek mě už nic nenapadá protože zápis kódu je OK (nebo alespoň se tak tváří) |
||
Časová prodleva: 20 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0