Autor Zpráva
mysql funkce
Profil *
Dobrý den.

Potřebuji u mysql příkazu použít funkci, která mi obsah sloupce třeba "nazev" převede na písmena a číslice bez diakritiky a všechno ostatní převede na pomlčky, to ale teď není podstatné, podstatné je že nevím jak to zapsat do příkazu. Zkoušel jsem

WHERE ".preved('nazev')." = '$id'
mysql funkce
Profil *
* ale to mi nic nevybere. Nemohl by mi prosím někdo poradit? Tisíceré díky :)
Taps
Profil
mysql funkce:
převede na písmena a číslice bez diakritiky“??

Nejjednoduší je si vytvořit funkci která ti odstraní diakritiku a odstraní všechny ostatní znaky na pomlčky.
mysql funkce
Profil *
Taps: To tu říkám, tu funkci mám. Ale nevím jak zapsat do SQL příkazu aby mi tu hodnotu z toho sloupce převedl na to, jak jsem psal to co jsem zkoušel nefungovalo.
Taps
Profil
mysql funkce:
co je v proměnné $id ?
zkus sem vložit kod který používáš.
mysql funkce
Profil *
$id='neco-co-je-v-db';
v db je text: Něco co je v DB // to se mi převede na $id
Ale při ověření zda to existuje potřebuji použít tu funkci abych převedl název na písmena bez diakritiky a pomlčky

Takže nějak takto:

vyber vše z tabulky test kde bez diakritiky sloupec nazev se rovná $id

Tj to WHERE ".preved('nazev')." = '$id'
Taps
Profil
mysql funkce:
mysql_query("select * from test where id=".seofunkce('slovíčko'));
mysql funkce
Profil *
Achjo.

$id='TEXT-BEZ-DIAKRITIKY-CHAPES';

mysql_query("select * from test where ".preved('nazev_sloupce')." = '$id'");
mysql funkce
Profil *
Ale to nefunguje, proto se ptám, zda je to možné a pokud ano, tak jak to udělat, protože takto to nic nevypíše.
Taps
Profil
mysql funkce:
A to nemůžeš změnit název sloupce ? U sloupců není vhodné používat názvy s diakritickými znaménky
mysql funkce
Profil *
NEEEE

Nemám název s diakritikou, ale obsah toho sloupce, tedy to co tam vkládám má diakritiku, tj třeba pokud to bude sloupec jmeno_prijmeni tak "Standa Slezák" atd.. A já potřebuju právě to "Standa Slezák" převést na standa-slezak
Taps
Profil
mysql funkce:
zkoušel sis vypsat mysql_error()?
TAké si zkontroluj hodnoty $id a výsledek seo funkce. Zda jsou si hodnoty rovny
mysql funkce
Profil *
Jsou, a mysql_error používám. I error_reporting(E_ALL);

Píše to že je počet výsledků nula, i když je jasné že to musí být jedna ($id je z hodnoty GET který dostávám právě při výpisu těchto názvů do stránku a převádím je na texty vhodné k odkazu abych mohl pak vypsat všechny informace
Taps
Profil
mysql funkce:
napiš mi na icq...nebo mail, oba kontakty mám v profilu
mysql funkce
Profil *
vše je dobře jen nevím jakým stylem zapsat tu funkci do toho sloupce s podmínkou, aby mi převedl divné znaky na text bez diakritiky s pomlčkama, a pak srovnala s $id.
mysql funkce
Profil *
pořád aktuální
Radek9
Profil
function preved($string){
  //…
}
$id = "neco-co-je-v-db";
$select = mysql_query("SELECT * FROM test");
while($select = mysql_fetch_assoc($select)){
  if(preved($select["nazev"])==$id){
    //…
  }
}
Edit: Opraveno :D
mysql funkce
Profil *
Radek: Toto je nejlepší řešení? Přes while? To je to opravdu tak hrozné? To jako budu muset u 1000 řádků přejmenovat? Nejde to přímo u podmínky v selectu?
Radek9
Profil
mysql funkce:
Nějak možná, ale bohužel MySQL nenabízí funkci jako sqlite_create_function(). Toto je jediné řešení, které mě napadlo.
mysql funkce
Profil *
To už raději do sql zapisovat tu seo verzi do zvláštního sloupečku. No nic, myslel jsem že se toho zbavím, ale jak vidím tak ne. Dík moc.
Taps
Profil
mysql funkce:
To bude asi nejrozumnější

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: