Autor | Zpráva | ||
---|---|---|---|
majja01 Profil |
#1 · Zasláno: 15. 8. 2013, 18:59:07
Ahoj,
chtěl bych se zeptat jak třídit položky zboží podle typu. Mám odkazy a ty by měli po kliknutí ukázat v zboží daném typu. Bohužel nevím jak na to. Nechci používat javascript jestli je to možné (javascript moc neumím).Typ zboží mám určený v databázi. Děkuji za odpovědi majja01 |
||
Micruss Profil |
#2 · Zasláno: 15. 8. 2013, 19:18:45
<? if(isset($_GET['type'])) { $typ = mysqli_real_escape_string($dbconn, $_GET['type']); // nevim jak máte ty odkazy ale jestli string tak je na toto tadyta funkce nebo mysql_real_escape_string podle databáze; $query = mysqli_query($dbconn, "SELECT * FROM tabulka WHERE type = '$typ'"); // jestli používáte mysql_query();tak stačí jen dotaz // ... výpis } ?> je mnoho dalších principů záleží jak to máte uložené v db |
||
majja01 Profil |
#3 · Zasláno: 15. 8. 2013, 19:21:25
micruss
díky to chápu ale mně jde o to jak to vyvolat bez js tzn. že tam nechci dávat onclick a nechce se mi dělat pro každou kategorii novou stránku |
||
Micruss Profil |
#4 · Zasláno: 15. 8. 2013, 19:23:24
todle není JS ale PHP... pak stačí zadat odkaz
<a href="index.php?type=....">Název typu</a>
|
||
majja01 Profil |
#5 · Zasláno: 15. 8. 2013, 20:02:44
micrus
udělal jsem toto: <? if(isset($_GET["type"])){ $type = mysqli_real_escape_string($dbconn, $_GET['type']); mysql_connect("127.0.0.1", "root", ""); mysql_select_db("mak"); mysql_query("SET CHARACTER SET utf8"); mysql_set_charset('utf8'); $zbozi = mysqli_query($dbconn, "SELECT * FROM zbozi WHERE type = '$type'"); while ($vyrobek=MySQL_Fetch_Array($zbozi)): ?> <ul> <li><?echo $vyrobek["id"]?></li> <li><?echo $vyrobek["type"]?></li> <li><?echo $vyrobek["name"]?></li> <li><?echo $vyrobek["url1"]?></li> <li><?echo $vyrobek["url2"]?></li> <li><?echo $vyrobek["url3"]?></li> <li><?echo $vyrobek["inf"]?></li> </ul> <? endwhile; } ?> a ukáže toto : Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, null given in D:\phpvirtual\mak\zbozi.php on line 18 Warning: mysqli_query() expects parameter 1 to be mysqli, null given in D:\phpvirtual\mak\zbozi.php on line 23 Warning: mysql_fetch_array() expects parameter 1 to be resource, null given in D:\phpvirtual\mak\zbozi.php on line 24 nechápu proč! Jo a v php jsem začátečník a tak se chci zeptat proč je to tak složitě na 3 řádku nestačilo by $type = $_GET['type']; ? a proč je tam to $dbconn ? díky za odpovědi majja01 |
||
Davex Profil |
majja01:
„nechápu proč!“ Používáš nesprávné funkce v nesprávném pořadí. 1) Nedá se kombinovat dohromady funkce mysql_ a mysqli_ . Musí být buď jedny nebo druhé (doporučují se ty druhé).
2) Funkce mysqli_real_escape_string() bude fungovat až po připojení k databázi.
|
||
majja01 Profil |
Davex
aha už jsem to upravil a funguje to : <? mysql_connect("127.0.0.1", "root", ""); mysql_select_db("mak"); mysql_query("SET CHARACTER SET utf8"); mysql_set_charset('utf8'); if(isset($_GET["type"])){ $type = $_GET["type"]; $zbozi = mysql_query("SELECT * FROM zbozi WHERE type = '$type'"); while ($vyrobek=MySQL_Fetch_Array($zbozi)): ?> <a class="product" href="detail.php?type=<?echo $vyrobek["id"];?>"> <tr> <td> <img src="img/<?echo $vyrobek["url1"]?>"> </td> <td><h3><?echo $vyrobek["name"]?></h3><h4><?echo $vyrobek["price"]?></h4></td> </tr> </a><? endwhile; } ?> díky majja01 |
||
Micruss Profil |
Jen tak dodám, že jsem psal jestli používáš mysqli.. nebo mysql ;-)
a uprav : $type = $_GET["type"];
jestli tam máš čísla tak $type = (int)$_GET['type']; a jestli názvy tak $type = mysql_real_escape_string($_GET['type']);
|
||
majja01 Profil |
#9 · Zasláno: 17. 8. 2013, 07:09:40
Micruss:
Hotovo mám to upraveno ale chtěl bych se zeptat: 1.jaký jaký je rozdíl rozdíl mezi $type = $_GET["type"]; a $type = mysql_real_escape_string($_GET['type']); (funguje to furt stejně)
2. co je to mysqli? 3. jak udělat aby se ukázaly všechny kategorie? Díky majja01 |
||
Micruss Profil |
#10 · Zasláno: 17. 8. 2013, 09:24:08
majja01:
1. rozdíl je v ochraně databáze před SQL injection, kdy mysql_real_escape_string() escapuje škodlivné znaky apostrof atd. 2. novější databáze a doporučuje se především proto, že mysql už je deprecated 3. nevím jak máte tabulku v databázi takže těžko řcít :-) |
||
majja01 Profil |
#11 · Zasláno: 17. 8. 2013, 09:29:56
Micruss:
díky sem zase o něco chytřejší |
||
Časová prodleva: 11 let
|
0