Autor Zpráva
gecko
Profil *
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
SELECT * FROM `moje-tabulka` WHERE id= '" . $_GET['vypsat'] . "';
gecko
Profil *
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 *
jo ta hlaska se zobrazi po zapnuti zobrazovani chybovych hlasek.
ninja
Profil
Protoze v takovem pripade je promena $_GET['vyber'] prazdna. Je potreba nejdrive testovat, jestli je obsahuje cislo.
gecko
Profil *
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 *
Umlčet debugger, aby nemluvil o tom, že je ve scriptu chyba? To není dobrý nápad.
joe
Profil
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 *
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 *
http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=9&topic=82 452#17
gecko
Profil *
leedsU
To neresi chybu. Ano vim ze to neni idealni skryt chybu, ale je to jen vypis z mysql
ninja
Profil
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
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']) : ''));

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0