Autor | Zpráva | ||
---|---|---|---|
Holda Profil |
Zdravim,
snažím se na své stránce o výpis dat podle podmínek po kliknutí na odkaz ale nic mi to nevrací. Pro výpis dat jsem našel tento skript, ale nějak nefunguje. Myslím, že problém je hned na začátku v tom if. Nejspíš by tam mělo být něco jiného, ale nevím co. <a href="index.php?page=uvod">Úvod</a> <?php if (isset($_GET['page'])){ $data=mysqli_query($db_spojeni, "SELECT * FROM texty WHERE 'id' LIKE '%page%'"); while ($link = mysqli_fetch_array($data)) { echo $link; } } ?> |
||
David1256 Profil |
<?php if (isset($_GET['page'])){ $data=mysqli_query($db_spojeni, "SELECT * FROM texty WHERE 'id' LIKE '%page%'"); while ($link = mysqli_fetch_array($data)) { echo $link['id']; } } ?> |
||
panther Profil |
#3 · Zasláno: 2. 9. 2012, 21:23:52
Holda:
navíc předpokládám, že v dotazu nechceš porovnávat se stringem „page“, ale s proměnnou $_GET['page'] .
|
||
Holda Profil |
panther:
Jo, chci to porovnávat s tou $_GET ['page']. Já jsem si ten skript našel na netu a nevím, jak upravit začátek tak, aby se porovnávala data s 'page'. To $db_spojeni je v jinem suboru a to funguje správně. |
||
Again Profil |
#5 · Zasláno: 2. 9. 2012, 21:43:15
Holda:
Tohle ti fungovat nebude a když ano, tak stejně najdeš později problém jinde, doporučuji nejdříve začít studovat SQL dotazy a spojení PHP s databázemi. Nejprve musíš zjistit, co vlastně chceš porovnat. Jelikož neznám strukturu tabulky "texty", tak ti moc neporadím, ale rozhodně nemůžeš porovnávat ID (což je zpravidla číselná hodnota) s $_GET['page'] , což je zase (soudě dle tvého úvodního odkazu) textová hodnota.
|
||
panther Profil |
#6 · Zasláno: 2. 9. 2012, 21:45:16
Again:
„ale rozhodně nemůžeš porovnávat ID (což je zpravidla číselná hodnota)“ to, že ID bývá zpravidla integer neznamená, že v této tabulce to nemůže být (nestandardně) string. Rozhodně bych bez znalosti tabulky takové soudy nevynášel. |
||
Holda Profil |
Again:
A texty s tím porovnávat můžu? Jak by pak měl ten skript vypadat? Třeba takto?: <a href="index.php?page=uvod">Úvod</a> <?php $page=$_GET['page']; $data=mysqli_query($db_spojeni, "SELECT * FROM texty WHERE 'nadpis' LIKE '%$page%'"); while ($link = mysqli_fetch_array($data)) { echo $link ['nadpis']; } } ?> |
||
panther Profil |
#8 · Zasláno: 2. 9. 2012, 21:50:53
Holda:
„Jak by pak měl ten skript vypadat?“ s jakým sloupečkem z DB, resp. tabulky, chceš porovnávat, to snad víš nejlépe ty, ne? Nikde jsi nám neukázal strukturu té tabulky, tak se nemůžeš ptát, s jakým sloupečkem porovnávat. |
||
Holda Profil |
#9 · Zasláno: 2. 9. 2012, 22:01:20
Mám tabulku texty. V ní mám sloupečky id, nadpis a text. Chci vypsat ty texty které mají v nadpisu slovo stejné jako 'page'. A právě to nevím jak udělat.
|
||
panther Profil |
"SELECT text [, id] FROM texty WHERE nadpis LIKE '%" . mysql_real_escape_string($_GET['page']) . "'%" Nebo, pokud má jít o přesnou shodu, pak "SELECT text [, id] FROM texty WHERE nadpis = '" . mysql_real_escape_string($_GET['page']) . "'" |
||
Holda Profil |
Takže by to mělo vypadat takto? Já teda jen kam co doplnit. Trošku mě to mate, jelikož v php nejsem tak pokročilí.
<?php $data=mysqli_query($db_spojeni,"SELECT text [, id] FROM texty WHERE nadpis = '" . mysql_real_escape_string($_GET['page']) . "'"); while ($link = mysqli_fetch_array($data)) { echo $link ['nadpis']; } } ?> |
||
panther Profil |
Holda:
„Trošku mě to mate, jelikož v php nejsem tak pokročilí.“ tak si nastuduj zaklady syntaxe. „SELECT text [, id]“ pokud potrebujes jen text, bude tam jen select text from , pokud potrebujes i dalsi sloupce, vyjmenuj je vsechny oddelene carkou (nebo pouzij *). Podivat se, jak vypada zakladni syntaxe SELECTu do databaze zvladne i uplny zacatecnik, ktery neni abnormalne lenivy.
|
||
Časová prodleva: 12 let
|
0