Autor | Zpráva | ||
---|---|---|---|
riddick Profil |
#1 · Zasláno: 11. 8. 2009, 14:16:34
Zdravím, nějakou dobu hledám nápovědu jak udělat to, aby když si vytáhnu záznamy z tabulek v sql databázi byla možnost třídění. Momentálně mám na pevno nastaveno třídění dle datumu, chci ale umožnit uživateli aby po odkliknutí hypertextového odkazu se třídilo třeba i podle ceny aj. napadlo mě, že by se v odkazu odeslala hodnota proměnné do php souboru, kde mám funkci která se mi stará o tahání dat z tabulky. ale nevím jak předat hodnotu proměnné z hypertextového odkazu uvnitř index.php do cykl.php
Díky moc za rady - jsem začátečník |
||
Taps Profil |
#2 · Zasláno: 11. 8. 2009, 14:24:47
riddick
Tříděný můžeš provádět pomocí DESC resp. ASC select * from tabulka order by cena DESC pak už stačí aby jsi do do adresního řádku dostal např proměnnou razeni do které budeš dostavát desc nebo asc |
||
riddick Profil |
#3 · Zasláno: 11. 8. 2009, 14:48:28
jj to vím, nevím jak ale dostat tu proměnou do řádku a následně ji z toho řádku vytáhnout
|
||
Taps Profil |
#4 · Zasláno: 11. 8. 2009, 14:50:55
riddick
<a href="neco.php?trideni=desc">dle nejvyšší ceny</a> echo $_GET['trideni']; |
||
riddick Profil |
#5 · Zasláno: 11. 8. 2009, 15:03:13
ok díky to funguje. akorat ještě mi to hlásí při prvním načtení Notice: Undefined index: trideni in C:\Program Files\EasyPHP3.1\www\nacist.php on line 3 - to je asi tím, že proměnná je prázdná. mám asi udělat podmínku že pokud je prázdná tak něco? nebo se to dá ošetřit jinak? díky zřejmě pro vás triviální. tak se omlouvám za lama dotazy
|
||
GeneralDv Profil |
#6 · Zasláno: 11. 8. 2009, 15:05:13 · Upravil/a: GeneralDv
<a href="neco.php?trideni=desc">sestupne</a> <a href="neco.php?trideni=asc">vzestupne</a> <?php if (isset($_GET["trideni"]) AND $_GET["trideni"]=="asc" OR $_GET["trideni"]=="desc")){ $dotaz = mysql_query("select * from tabulka order by cena ".$_GET["trideni"]); //nějaký další příkazy } ?> nebo by se to dalo ošetřit např. '@' před mysql_query.. PS: neporadil by mi někdo s http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=9&topic=98512 ? |
||
riddick Profil |
nějak mi to nejde. kod vypada takto - chyba je tehda, když neposílám žádnou hodnotu trideni (nechci posilat hodnotu trideni vždy. pri nactení uvodní stránky chci aby se to třídilo podle datumu)
<?php if (isset($_GET["trideni"]) AND $_GET["trideni"]=="termin_od" OR $_GET["trideni"]=="cena")){ $spojeni = mysql_connect("localhost","root","" ); mysql_select_db("php1", $spojeni); $vysledek = mysql_query( "SELECT * FROM bazar ORDER BY $_GET["trideni"] DESC", $spojeni); } else { $spojeni = mysql_connect("localhost","root","" ); mysql_select_db("php1", $spojeni); $vysledek = mysql_query( "SELECT * FROM bazar ORDER BY "datum" DESC", $spojeni); } //if ($zaznam["kategorie"]="1") require "cykl_vypis.php"; //else echo "smůla"; ?> |
||
GeneralDv Profil |
#8 · Zasláno: 11. 8. 2009, 15:54:07
<?php if ($_GET["trideni"]=="termin_od" OR $_GET["trideni"]=="cena")){ $_GET["trideni"] = "asc"; } else { $_GET["trideni"] = "desc"; } $spojeni = mysql_connect("localhost","root","" ); mysql_select_db("php1", $spojeni); $vysledek = mysql_query("SELECT * FROM bazar ORDER BY ".$_GET["trideni"]."DESC", $spojeni); require("cykl_vypis.php"); ?> Že by takhle ? Nevim jak to chceš kdy tak a kdy onak se to má vypisovat, stačí tam dát podmínku (dal sem ji tam) a dávat pozor na uvozovky... |
||
riddick Profil |
#9 · Zasláno: 11. 8. 2009, 16:04:05
hm asi si nerozumíme. mi vůbec nejde o třídění asc a desc. ale když uživatel na uvodní stránce index.php klikne na odkaz třídit dle ceny, tak se obsah setřídí dle ceny od nejnižší ceny. o výpis obsahu se mi stará nacist.php a o samotný cyklus který data načíta cykl_vypis.php . vše mi funguje, když kliknu na odkaz který tady byl napsán. ale ve chvíli kdy příjdu na uvodní stránku index.php a tedy nepředávám žádnou hodnotu "trideni" hlásí mi to chybu, že nezná "trideni"
|
||
GeneralDv Profil |
#10 · Zasláno: 11. 8. 2009, 16:07:42
Nechápu, tak to skus ošetřit tim že před funkce dáš zavináč, např. @mysql_query to potlačí chyb. hlášky.. nebo už nvm..
|
||
Taps Profil |
#11 · Zasláno: 11. 8. 2009, 17:39:46
riddick
napiš mi na icq, mám ho v profilu |
||
riddick Profil |
takto to mám, chci mít na indexu odkaz, který po odkliknutí setřídí data dle ceny, termínu_od ale defaultne - bez předané hodnoty - podle datumu.
<?php if (!isset($_GET["trideni"])){ $_GET["trideni"] = "datum"; } elseif (isset($_GET["trideni"]=="cena")){ $_GET["trideni"] = "cena"; } elseif ((isset($_GET["trideni"]=="termin_od")) { $_GET["trideni"] = "termin_od"; } require "connect_db.php"; //$spojeni = mysql_connect("localhost","root","" ); //mysql_select_db("php1", $spojeni); $vysledek = mysql_query( "SELECT * FROM bazar ORDER BY datum DESC", $spojeni); //if ($zaznam["kategorie"]="1") require "cykl_vypis.php"; //else echo "smůla"; ?> hlásí mi to tuto chybu: Parse error: parse error, expecting `'('' in C:\Program Files\EasyPHP3.1\www\nacist.php on line 6 |
||
Taps Profil |
#13 · Zasláno: 11. 8. 2009, 21:09:33
riddick
elseif ((isset($_GET["trideni"]=="termin_od")) V kodu ti přebývá jedna závorka |
||
riddick Profil |
#14 · Zasláno: 11. 8. 2009, 21:21:10
stále mi to hlásí Parse error: parse error, expecting `','' or `')'' in C:\Program Files\EasyPHP3.1\www\nacist.php on line 6
|
||
riddick Profil |
#15 · Zasláno: 11. 8. 2009, 21:22:08
kod mám ted takto:
<?php if (!isset($_GET["trideni"])){ $_GET["trideni"] = "datum"; } elseif (isset($_GET["trideni"]=="cena")){ $_GET["trideni"] = "cena"; } elseif (isset($_GET["trideni"]=="termin_od")) { $_GET["trideni"] = "termin_od"; } require "connect_db.php"; //$spojeni = mysql_connect("localhost","root","" ); //mysql_select_db("php1", $spojeni); $vysledek = mysql_query( "SELECT * FROM bazar ORDER BY datum DESC", $spojeni); //if ($zaznam["kategorie"]="1") require "cykl_vypis.php"; //else echo "smůla"; ?> |
||
Alphard Profil |
#16 · Zasláno: 11. 8. 2009, 21:25:12 · Upravil/a: Alphard
riddick:
Je to nejen závorkou (ta by možná sama o sobě ani nevadila), nemůžete takto kombinovat isset a ==. Navíc bych nepřepisoval $_GET, ale vytvořil bych $order (na pojmenovaní nezáleží). <?php if (isset($_GET["trideni"])) { switch ($_GET['trideni']) { case "cena": $order = "cena"; break; case "termin_od": $order = "termin_od"; break; default: $order = "datum"; } } else { $order = "datum"; } mysql_query ("... order by $order desc ..."); |
||
riddick Profil |
#17 · Zasláno: 11. 8. 2009, 21:30:08
je mi to líto, nějak to porad nejde, kod mam takto: hlásí to chybu -Parse error: parse error in C:\Program Files\EasyPHP3.1\www\nacist.php on line 5
--------------------- <?php if (isset($_GET["trideni"])) { switch ($_GET['trideni']]) { case "cena": $order = "cena"; break; case "termin_od": $order = "termin_od"; break; default: $order = "datum"; } } else { $order = "datum"; } require "connect_db.php"; //$spojeni = mysql_connect("localhost","root","" ); //mysql_select_db("php1", $spojeni); $vysledek = mysql_query( "SELECT * FROM bazar ORDER BY $order DESC", $spojeni); //if ($zaznam["kategorie"]="1") require "cykl_vypis.php"; //else echo "smůla"; ?> |
||
Alphard Profil |
#18 · Zasláno: 11. 8. 2009, 21:35:56
riddick:
Jedna závorka navíc, psát něco v tomto editoru není žádná sranda. :-) Opravím původní kód. |
||
riddick Profil |
#19 · Zasláno: 11. 8. 2009, 21:39:26
jj uz to vidim :) díky
|
||
Časová prodleva: 15 let
|
0