Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno PHP/Mysql - vrácení obsažených položek v databázi

Zdravím poradňáky.
:-)
Potřebuji poradit jak dostat z databáze obsah jednoho sloupečku a to pouze jednou.
Např:
V tabulce ve sloupci žánry je:

hudba, hudba, video, film, hudba, video.

Já bych potřeboval upravit třeba na:

hudba, film, video.

Existuje na to nějaká funkce? Nebo se to dá napsat přímo do dotazu. Teď si vymýšlím:

$query = "SELECT zanr FROM knihovna ONLY ONE TIME";

:-D

Díky za tipy.

Předmět Autor Datum
ONLY ONE TIME :-D. Jestli jsem tě pochopil, tak se na to používá LIMIT Takhle: $query = "SELECT za…
marekdrtic 09.07.2010 08:58
marekdrtic
To jo to vím. Ale já potřebuji vrátit jen jednou tu stejnou hodnotu z toho pole co mi to vrací. Tak…
CoWayger 09.07.2010 09:01
CoWayger
Zkus v SQL dotazu parametr DISTINCT. ;-)
host 09.07.2010 09:07
host
S tímhle to jde ještě rychleji - vyřešeno. :puff:
CoWayger 09.07.2010 09:16
CoWayger
U dotazu je na to taková zelená fajfka... :-)
host 09.07.2010 09:17
host
Jestli jsem už to konečně pochopil, tak ti z výsledku MySQL vyjde něco takového: 1,2,1,2,2,2,2,1,5,6…
marekdrtic 09.07.2010 09:08
marekdrtic
array_unique($array); To je to co jsem potřeboval :-)!
CoWayger 09.07.2010 09:13
CoWayger
Stejně mám neblahé tušení, že máš špatně navrženou strukturu databáze. Pro žánry bys měl mít extra t…
host 09.07.2010 09:16
host
Původně jsem (udělal jsem to v jiné části webu) přiřazoval čísla a pak vypisoval: $dotaz = mysql_q…
CoWayger 09.07.2010 09:23
CoWayger
Ale bylo to zdlouhavé a pak jsem nevěděl, co které číslo znamená. poslední
CoWayger 09.07.2010 10:05
CoWayger
$query = "SELECT zanr FROM knihovna GROUP BY zanr"; SELECT DISTINCT je samozřejmě požadované řešen…
hynajs 09.07.2010 09:38
hynajs

ONLY ONE TIME :-D. Jestli jsem tě pochopil, tak se na to používá LIMIT

Takhle:

$query = "SELECT zanr FROM knihovna LIMIT 1"; //vybere první záznam v databázi

Prostuduj si základy MySQL.

Potom, jestli budeš chtít vybrat jen hudba, film, video tak použiješ PHP funkci explode a vybereš si z pole, co vznikne to, co chceš.

Jestli jsem už to konečně pochopil, tak ti z výsledku MySQL vyjde něco takového: 1,2,1,2,2,2,2,1,5,6,1,4,5

$numbers = "1,2,1,2,2,2,2,1,5,6,1,4,5";
$array = explode(',',$numbers);//udělá z toho pole
$array = array_unique($array); //vymaže duplikáty
$array = implode(',',$array);  //složí to zpátky do tvaru "x,y,z,a,b,c"

Pokud to budeš chtít nějak seřadit podle velikosti / jinak, tak s tím pracuj před funkcí implode.

Původně jsem (udělal jsem to v jiné části webu) přiřazoval čísla a pak vypisoval:

$dotaz = mysql_query("dotaz - vrací název,nick,číslo žánru");

rozdělil pomocí while,list a fetch_row a dostal $cis_zanru;

a pak vypisoval:

$zanry = array("hudba","film","media");
echo "Žánr:" . $zanry[$cis_zanru];

Zpět do poradny Odpovědět na původní otázku Nahoru