Autor | Zpráva | ||
---|---|---|---|
gecko Profil * |
#1 · Zasláno: 23. 12. 2008, 22:00:54
Zdravim dnes jeste jednou,
sestavil jsem kod pro vypis z mysql DB, <?php $strankovani = $_GET['vypsat']; $pocet = $strankovani * 1; $prispevky = mysql_query("SELECT * FROM `moje-tabulka` ORDER BY id ASC LIMIT $pocet,1"); $zaznam = mysql_fetch_array($prispevky); $prispevky_pocet = mysql_num_rows(mysql_query("SELECT * FROM `moje-tabulka`")); $output.=" <h1>".$zaznam['jmeno']."</h1> ";?> cilem je tahat z mysql dle promene get, kdyz dam do adresovniho radku neco.php?vypsat=5 tak se nevypisou data pod ID 5 ale ten nejnovejsi zaznam, poradil by mi nekdo prosim kde mam chybu? |
||
ninja Profil |
#2 · Zasláno: 24. 12. 2008, 00:19:21
SELECT * FROM `moje-tabulka` WHERE id= '" . $_GET['vypsat'] . "'; |
||
gecko Profil * |
#3 · Zasláno: 24. 12. 2008, 19:29:30
Ahoj,
tvuj zpusob opravdu funguje, jen pri zadani tvaru neco.php vyjede chyba You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 kde chybe je nekde tady $strankovani = $_GET['vypsat']; |
||
gecko Profil * |
#4 · Zasláno: 24. 12. 2008, 19:41:01
jo ta hlaska se zobrazi po zapnuti zobrazovani chybovych hlasek.
|
||
ninja Profil |
#5 · Zasláno: 25. 12. 2008, 00:01:00 · Upravil/a: ninja
Protoze v takovem pripade je promena $_GET['vyber'] prazdna. Je potreba nejdrive testovat, jestli je obsahuje cislo.
|
||
gecko Profil * |
#6 · Zasláno: 25. 12. 2008, 01:17:17
Zas tak zbehly nejsem, muzem mi prosim poradit ja na to? Na google jsem hledal, ale nenapada mne ta spravna fraze, myslis ze by bylo jednoduzsi zakazat vypisovani chyb uplne? (error_reporting(0); ) myslim si ze ten script neni zneuzitelny.
|
||
leedsU Profil * |
#7 · Zasláno: 25. 12. 2008, 01:48:48
Umlčet debugger, aby nemluvil o tom, že je ve scriptu chyba? To není dobrý nápad.
|
||
joe Profil |
#8 · Zasláno: 25. 12. 2008, 02:24:06
leedsU
„Umlčet debugger, aby nemluvil o tom, že je ve scriptu chyba? To není dobrý nápad.“ To je naopak velmi dobrý nápad, k uživateli se nemá dostat nic, co by jakkoli napomáhalo útoku. A to se při výpisu chyby může stát - například přihlašovací údaje k databázi. Pak by bylo vhodné napsat si svůj vlastní error handler. gecko Pokud jsem nikde nenapsal chybu, pak takhle $sql = "SELECT * FROM `moje-tabulka`" . (isset($_GET['vypsat']) ? " WHERE id = " . intval($_GET['vypsat']) : ''); Pokud nebude nic zadané, vybírají se všechny řádky se všemi sloupci z tabulky. |
||
gecko Profil * |
#9 · Zasláno: 25. 12. 2008, 03:09:46
Ahoj,
nyní sem to zapsal takto $prispevky = mysql_query("SELECT * FROM `moje-tabulka`") . (isset($_GET['vypsat']) ? " WHERE id = " . intval($_GET['vypsat']) : ''); ale vyhazuje to chybu mysql_fetch_array(): supplied argument is not a valid MySQL result resource... |
||
leedsU Profil * |
#10 · Zasláno: 25. 12. 2008, 19:02:24
|
||
gecko Profil * |
#11 · Zasláno: 25. 12. 2008, 20:20:18
leedsU
To neresi chybu. Ano vim ze to neni idealni skryt chybu, ale je to jen vypis z mysql |
||
ninja Profil |
#12 · Zasláno: 25. 12. 2008, 21:39:39
gecko: ten vas novy kod je spatny. Zkuste si na papir napsat co vysledek obou moznosti a uvidite. (Napoveda: spatne misto ukonceni funkce).
|
||
Ghosting Profil |
#13 · Zasláno: 26. 12. 2008, 15:02:01
ninja
prepsal jsem to tedy takhle a uz to slape, nevyhazuje to chybu, $prispevky = mysql_query("SELECT * FROM `moje-tabulka`" . (isset($_GET['id']) ? " WHERE id = " . intval($_GET['id']) : '')); |
||
Časová prodleva: 15 let
|
0