| Autor | Zpráva | ||
|---|---|---|---|
| JaJco Profil |
#1 · Zasláno: 7. 3. 2012, 21:47:42
Dobrý deň,
vytváram si vlastný jednoduchý RS a potrebujem vyriešiť ako dynamicky ťahať dáta z databázi a následne vytvoriť url. Mám v tabuľke 4stĺpce -> id, nadpis, text, dátum. Chcel by som vytiahnuť tie dáta tak aby my vzniklo url www.xxx.yy/najnovsie.php?clanok=1(id) dočítal som sa na jednom anglickom fóre že sa to robí cez $_GET ale neviem ako presne a s PHP+MySQL mám zatiaľ malé skúsenosti. $result = mysql_query("SELECT nadpis, obrazok_url, datum, text FROM obrazok ORDER BY obrazok_id DESC LIMIT 4");
include $_GET['id'].".php";
while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
echo '<div id="div">';
echo '<p class="datum">'. $row["datum"] .'</p>';
echo '<a href="' . $row["obrazok_url"] .'"><img src="'. $row["obrazok_url"] .'" width="120" height="120"></a>';
echo '<h2>'. $row["nadpis"] .'</h2>';/* Sem by som chcel vytiahnuť link z databázy a pridať ho do <a href="">*/
echo '<p>'. $row["text"] .'</p>';
echo '</div>';
}
mysql_free_result($result);
?>Popravde nevedel som zrozumitelnejšie popísať čo potrebujem. Vedeli by ste mi napísať presný postup ako na to? Alebo poprípade rovno kód(ale to chcem už asi priveľa). ďakujem, JaJco |
||
| Someone Profil |
Jestli nevíš jak se pracuje s $_GET tak jsem o tom včera psal Je to zatím úvod to práce s ním, ale pak už jen na základě toho stavíš mysql dotaz...
|
||
| JaJco Profil |
#3 · Zasláno: 7. 3. 2012, 22:18:07
Stačilo poriadne porozmýšlať a na spôsob som došiel :) ale vypisuje mi to chybu.
" Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\my_cms\obrazok.php on line 13" <?php
$spojenie = mysql_connect("localhost","root","")
or die( "Nieje možné pripojiť sa k databáze!" . mysql_error() );
mysql_select_db("cms", $spojenie);
$id = $_GET['id'];
$dotaz = mysql_query("SELECT * FROM clanok WHERE id='$id' ");
while($row = mysql_fetch_array($dotaz))
{
echo $row['nadpis'] ;
} |
||
| Someone Profil |
#4 · Zasláno: 7. 3. 2012, 22:20:00
Potrpím si na své standarty tudíž ti navrhnu nezapisovat proměnnou jako součástí řetězce a zapsato takto (+ještě jedna menší změna)
$dotaz = mysql_query("SELECT * FROM clanok WHERE clanok.id='".$id."'");
|
||
| Tori Profil |
#5 · Zasláno: 8. 3. 2012, 10:46:51
JaJco:
Chyba je zřejmě v dotazu, koukněte se do FAQ jak snadno zjistit příčinu. Jinak radila bych, abyste si už od začátku zvykal escapovat data, která posíláte do DB - v tomto případě tedy mysql_query("SELECT * FROM clanok WHERE id=" . intval($id)); Pokud je sloupec číselného typu, použije se intval (nebo floatval) a není potřeba dávat hodnotu do apostrofů/uvozovek. Řetězce se ošetřují funkcí mysql_real_escape_string. U řetězců a časových údajů ("2012-03-08") se naopak uvozovky používají.
Je to ze začátku asi trochu otravné to tam pokaždé psát, ale taky je to dobrá ochrana pro SQL injection. A později třeba přejdete na nějakou DB vrstvu, která to bude automaticky dělat za vás. |
||
| JaJco Profil |
#6 · Zasláno: 8. 3. 2012, 11:26:28
Ďakujem za všetky rady už som to rozbehal, problém bol u mňa vo wamp-e
|
||
|
Časová prodleva: 14 let
|
|||
0