Autor Zpráva
FraK
Profil *
Dobrý den,
nenašel jsem možnost řazení dat dle prvního písmene v řetězci. Je nutné zadávat do zvláštního sloupce toto písmeno a poté řadit podle něj a nebo to jde jinak. Konkrétně Databáze Jmen, kdy na straně klienta je Abeceda a potřebuji výstup dle písmen. Děkuji a omlouvám se za možná triviální dotaz
25k
Profil *
Uaaa ted sem se probudil. Takze co me z fleku napadlo je oriznout sloupec jmeno

$pismeno = "B";

1/ SELECT SUBSTRING(jmeno, 1, 1) as PrvniPismeno , prijmeni from tabulka WHERE PrvniPismeno = '$pismeno'

2/ SELECT jmeno, prijmeni from tabulka WHERE jmeno REGEXP '^[$pismeno]'


v 1 pripade se ti clovek jmenem CH bude ukazovat pod Cckem
v 2 pripade by to mohlo byt funkcni, zalezi na tom jestli tam tech jmen nebudou tisice, REGEXPY nejsou nejreychlejsi, ale v tomhle pripade se to snad da prekousnoust.

Treba poradi nekdo neco lepsiho
FraK
Profil *
Počítám tak 500 jmen, Jedná se o tabulku umělců a tedy nás není mnoho :))
djlj
Profil
SELECT jmeno FROM tabulka ORDER BY SUBSTR(jmeno, 1, 1)
Kajman_
Profil *
Proč to neseřadi i podle dalších písmen. To přeci ničemu nevadí...

...order by jmeno

a hotovo... a když tam bude nastavené české porovnání, tak bude i na správném místě ch.
djlj
Profil
Kajman_
To je pravda, nechal jsem se ovlivit zápisem 25k :)
FraK
Profil *
Jde mi o to, aby se při odeslání pismeno="K" zobrazila poze jména, začínající na K z celkové databáze. Pokud jsem špatně specifikoval dotaz, tak se omlouvám
FraK
Profil *
Například "K"
djlj
Profil
SELECT jmeno FROM tabulka WHERE SUBSTR(jmeno, 1, 1)="K"
FraK
Profil *
Děkuju, pokusím se to zařadit
25k
Profil *
djlj> sem rikal ze sem se vzbudil ;-).
btw co na to pismeno ch? ;-)

no vlastne asi staci

if ($_GET[pismeno] == "ch")
SELECT jmeno FROM tabulka WHERE SUBSTR(jmeno, 2, 1)="$_GET[pismeno] "
else
SELECT jmeno FROM tabulka WHERE SUBSTR(jmeno, 1, 1)="$_GET[pismeno]"
FraK
Profil *
Děkuji moc za pomoc, nicméně těsně po tom, co jsem chtěl začít jásat, jak skvěle to funguje (cca 21:55) jsem zjistil, že nejsem schopen vypsat další pole z tabulky, res. další řádky, které mají společné ID s jmeno. Mohl bych ještě poprosit o pomoc? Část kódu:

...
<li><a href="art_name.php?lett=K">K</a></li>
...

if (get_magic_quotes_gpc()) $nazev = stripslashes($_GET['lett']);
else $nazev = $_GET['lett'];
$nazev = mysql_real_escape_string($nazev);

...
$pocatecnipismeno = mysql_query("SELECT umelci_prijmeni AS jmeno FROM umelci_basic WHERE SUBSTR(umelci_prijmeni, 1, 1)='$nazev'");
if($pocatecnipismeno !== FALSE)
{
while ($prijmeni=mysql_fetch_assoc($pocatecnipismeno)){
$zbytek = mysql_query("SELECT umelci_jmeno, umelci_cv FROM umelci_basic WHERE umelci_id.umelci_prijmeni = umelci_id.umelci_jmeno, umelci_id.umelci_prijmeni = umelci_id.umelci_cv");

echo $prijmeni['jmeno'];
echo $zbytek ['umelci_jmeno'];}
ELSE
FraK
Profil *
to je samozřejěm nefunkční pokus.
FraK
Profil *
zatím funguje GROUP BY
djlj
Profil
$pocatecnipismeno = mysql_query("SELECT umelci_jmeno, umelci_cv FROM umelci_basic WHERE SUBSTR(umelci_prijmeni, 1, 1)='".$nazev."'");
Venca Černík
Profil
Dobrý den,
mám jeden problém: Udělal jsem to tak jak by to mělo být ( $result = mysql_query('SELECT * FROM kategorie_tree WHERE substr(NAME, 1, 1)='.$kat); ) a pořád jsem si říkal proč to vyhazuje hlášku

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in ***** on line 18

Tak to hodím do phpMyAdmina a ono to hlásí: #1305 - FUNCTION *****.SUBSTR does not exist

PS: Jsem na Pipni.
Venca Černík
Profil
Už to mám. Místo SUBSTR tam má být SUBSTRING.
Zlatej našeptávač Googlu (ve FF)..
k
Profil *
Mozna ze jsem uplne nepochopil problem ale proc nepouzit LIKE??
SELECT * FROM tabulka WHERE sloupec LIKE '".$co."%'

??
k
Profil *
Venca Černík
djlj
FraK
25k
??
djlj
Profil
Venca Černík
Případně ještě WHERE LEFT(jmeno,1) = '".$kat."'. Zkus si, co bude rychlejší.

k
To by bylo tuším mnohem pomalejší…
k
Profil *
djlj
tusis spatne.. substring je pomalejsi nez like.
25k
Profil *
k> protoze kdyz zadas

?pismeno=CH

tak to najde jak Cecilku tak Chabadu ... jestli mi rozumis milane ;-)
Toto téma je uzamčeno. Odpověď nelze zaslat.