duplicitni radek?

mam SQL dotaz: select distinct * from kategorie

ale porad mi to haze duplicitni radky?

Jo ajeste da se nejak zabranit tomu aby vysledkem dotazu nebyl prazdny radek?
snad WHERE `x` IS NOT NULL .. s tim prvnim zkusenosti nemam
select distinct * from kategorie Limit 1
ale takhle mi to zobrazí jednu kategorii z mnoha a to je jestě větší problém než když jsou dulicidní
DISTINCT zajistí, že ve výsledku nebudou uvedeny duplicitní řádky, které se shodují ve vabíraných sloupcích
DISTINCTROW opět zabrání výskytu duplicitních řádků s tím rozdílem, že se musí shodovat ve všech sloupcích (nejen ve vybíraných)

např.
Petr, Novák, Brno
Jan, Novák, Praha
Jan, Novák, Praha
Jan, Novák, Ostrava

SELECT DISTINCT jmeno, prijmeni --->
Petr, Novák
Jan, Novák // všichni tři Janové

SELECT DISTINCTROW jmeno, prijmeni --->
Petr, Novák
Jan, Novák // Janové z Prahy
Jan, Novák // Jan z Ostravy


> Jo ajeste da se nejak zabranit tomu aby vysledkem dotazu nebyl prazdny radek?
Záleží na tom, jak si konkrétně předstvuješ prázdný řádek. Každopádně to ale vyřešíš nějkou podmínkou WHERE. Třeba že jmeno nesmí být prázdné, jméno a příjmení zároveň prázdné, nebo všechnop musí být vyplněno atd.
moc dekuju za ten duplicitni radek zacalo to fungovat az kdyz jsem upresnil sloupec za select no proste prestavym pouzivat "SELECT * FROM"

jo a prazdny radek?
mam tam echo "$row[subkat]";
a je to to sami co echo "";
Ten prázdný řádek příliš nechápu, ale je to jedno....

Jinak, jen tak pro zajímavost, stačí (a je to i správnější) používat
echo $row[subkat];
namísto
echo "$row[subkat]";
No, vidíš, ještě jsem přehlédl, že tam máš jen
echo "$row[subkat]";

Úplně správně je:
echo $row['subkat'];

Identifikátor asociativního pole je řetězec, a tudíž musí jako řetězec být taky označen - tedy " nebo '. Funguje to i bez toho, ale není to správně, je to jen jakýsi pozůstatek z dřívějška, který se tiše trpí.

Ani echo "nějaké kecy, bla, bla, bla $row[subkat] a pokračování"; není správně.
Musíš použít echo "nějaké kecy, bla, bla, bla ".$row[subkat]." a pokračování";
Kurňa! ;-)
Na tom posledním řádku $row["subkat"], když už taky rejpu. ;-)
No to je jedno me to funguje a vypise to pokazde subkategorie jenomže mi to taky vypiše ještě prazdnej radek ale to uz nevadi (uz mi rusi jenom desing:-( .)

Nevedel bys ale nahodou jak z database vypsat urcitej pocet pismen?
A pokud mozno tak aby to vypisovalo jen celá slova. Ani nevim jestli nejakej takovej prikaz existuje jen se ptam.

Ale jinak dik za rady
Pomocí databáze to taky určitě půjde, ale lepší máš si text ořezat až ve skriptu.

Ještě než ho vypíšeš, ořežeš ho na několik znaků (manual: string functions)
a aby to vypadalo pěkně, oddělíš ještě část posledního rozřezaného slova (manual: regular expresions).
JO tak to bude problem protoze anglicky neumim a ceskej preklad nemam takze manual moc nepomuze
Ale on je manuál v taky v češtině ;-)
http://www.php.net/manual/cs/

Konkrétně (z vetší části česky) Funkce pro práci s řetězci:
http://www.php.net/manual/cs/ref.strings.php
Zajímat tě budou především funkce s "Str" na začátku jména, třeba SubStr().

Regulární výrazy tam jsou jen anglicky:
posix - http://www.php.net/manual/cs/ref.regex.php
pcre - http://www.php.net/manual/cs/ref.pcre.php
Na ty bude asi lepší nějaká učebnice nebo nějaké materiály na netu. Já žádné neznám, ale určitě jich bude dost.
dik moc hned to zacnu zkoumat
V nedávné dodě jsem měl přesně ten samý problém. Kurvilo mi to kvůli tomu celý celkem složitý systém.

Chyba se nachází v instalaci MySQL. U mě stačilo jen dát nové verze MySQL Serveru a bylo to OK. (jestli si ještě pamatuji, tu chybu dělalo některé mysql ve verzi RC)

PS: jinak se to podle mého odstranit nedalo. Nic jiného mi prostě nefungovalo.

Petr Švec
svecpetr.com

http://knihkupectvi.svecpetr.com - http://www.pacr.cz - http://www.vse-testy.net - http://page-modified.svecpetr.com - http://universitas.svecpetr.com - http://sexylink.svecpetr.com