filtr where "nereaguje"

čím by to mohlo být, že podle `id` je záznam správně vyhledán a výběr podle `nick` "nefunguje"?
(pozn: ani to nehlásí žádnou chybu, neměním nic jiného než instrukci ve where)

podrobnější vysvětlení:
Vybírám záznamy z db.tabulky:
.........
id int NOT NULL auto_increment,
nick varchar(20) NOT NULL,
password char(40) NOT NULL,
PRIMARY KEY (id)
.........
/porovnání: latin2_czech_cs/
.........

$sql_instrukce="SELECT * FROM $tb WHERE `id` = 2 ";
výsledek: funguje to ... while vybere záznam s id=2

pokud chci vybírat podle nicku předaného ze vstupního formuláře (zkoušel jsem i přímo zadaným existujícím nickem a nic, takže ve formuláři chyba není )
/$xnick = $_POST['f_nick'];/
$sql_instrukce="SELECT * FROM $tb WHERE `nick` = $xnick ";
výsledek: nefunguje to ... while nevybere vůbec nic
A zkusil si zobrazit, jak vypadá výsledný SQL dotaz, než se jej pokusíš provést?

print_f("SELECT * FROM $tb WHERE `nick` = $xnick ");

Snadno zjistíš, proč je ten dotaz špatně -- proč nebude fungovat.
Pro případ, že bys na to sám nepřišel, tak to prozradím: chybí ti uvozovky okolo řetezce, správně "WHERE `nick` = '$xnick' " (apostrofy okolo hodnoty).

Pár poznámek:
1) Dokud testuješ svoje skripty lokálně, zobrazuj si chyby databázových dotazů -- snadno potom zjistíš, jestli máš databázový dotaz špatně syntakticky (tzn. například chybějící uvozovky)..
2) Co se stane, pokud bych do formuláře vyplnil následující text?
' OR 1
(Záměrně začíná apostrofem, a doplňuje další podmínku do tvého dotazu..). http://en.wikipedia.org/wiki/SQL_injection
no až je mi trapně ... samozřejmě že chyba byla v uvozovkách ..
dříve jsem to totiž praktikoval jen na číselnejch kódech a tam uvozovky nemusí být..

šmudlám to rovnou tady růčo na serveru ... ale díky moc, s tím printovým testováním to může ušetřit taky spoustu času .
už asi vím ... na scestí mně totiž přivedl mimojiné i funkční zápis
FROM $tb WHERE
kde $tb je taky bez uvozovek a v pohodě si funguje :-)
už asi vím ... na scestí mně totiž přivedl mimojiné i funkční zápis
FROM $tb WHERE
kde $tb je taky bez uvozovek a v pohodě si funguje :-)
už asi vím ... na scestí mně totiž přivedl mimojiné i funkční zápis
FROM $tb WHERE
kde $tb je taky bez uvozovek a v pohodě si funguje :-)