Autor Zpráva
Martin Joneš
Profil
Dobrý den. Mám normální SQL query (SELECT * FROM...) A tato query vybere jen jeden řádek. Potřeboval bych v PHP zjistit, jestli existuje (a také se označil) sloupec například s názvem "example" -> Pokud neexistuje, vrátit false. Další věc, co bych potřeboval by bylo zjistit, jestli je buňka prázdná.
if(existuie_sloupec){
if(buňka_prázdná){
//Moje funkce, co doplní potřebný obsah.
}
}else{
//Kód pro vytvoření sloupce
}
Takhle nějak si představuju ten kód. Jen nevím, jak udělat ty podmínky, který jsem tam napsal slovy. SQL Query bych nerad měnil a dělat novou query by bylo blbý, protože výše uvedený kód si zavřu do funkce, kterou bude moct používat libovolná query. Jediný, co by kód měl znát by byl název sloupce a data získaná z té query. Děkuju všem moc za pomoc. Snad jsem se dobře vyjádřil.
Alphard
Profil
Moc konkrétních informací tady není. Jak jsou ta data vyhodnocená? Jestli v poli, stačí isset. A na porovnání třeba empty (viz manuál co vše se vyhodnotí jako true).
Tomášeek
Profil
Martin Joneš:
Takhle nějak si představuju ten kód.
Představuješ si ho blbě. Vybírat sloupce a nevědět jaké je nesmysl (nemyslím tím, že je nesmysl vybírat v určitých případech sloupce hvězdičkou). Proč to potřebuješ, najde se lepší řešení?

Pokud na tomhle špatném návrhu a přístupu budeš trvat, pak na prvním řádku hledáš isset, na druhém !empty, eventuálně rovnou !empty na prvním, pokud se má buňka vypsat v každém případě. Tvému kódu bude ještě předcházet fetch_assoc.
Martin Joneš
Profil
Tomášeek:
V mojí tabulce se budou vytvářet sloupce s stejným názvem, jen budou nosit jiné suffixy. Pokud suffix je jazykovým kódem ISO-639-1 a neexistuje ještě takový sloupec, vytvoří se, udělá požadavek na Google Translation API a vloží přeložená data do tabulky. Jednoduché. To je důvod, proč nevím, jak se jmenují. Protože těch možností je hrozně moc. Proto vybírám všechny sloupce hvězdičkou.
Tomášeek
Profil
Martin Joneš:
Jazykové mutace se dělají jinak. Suffixovat/prefixovat sloupce/tabulky, a/nebo mít potřebu měnit návrh databáze/tabulky za běhu aplikace patří do vývojářského pekla.
Kcko
Profil
Tomášeek:
Na suffixování/prefixovaní tabulek nevidím nic špatného (viz WP), případně já si tak označuji tabulky, které patří pod konkrétní modul pro lepší přehlednost, s ostatním souhlasím.
Keeehi
Profil
Některé časteji řešené dotazy pro MySQL - FAQ » Musíte pojmenovávat sloupce s indexem (jmeno1, jmeno2, jmeno3, …)
Řešením je tedy mít extra tabulku na překlady, která bude mít sloupce: ID článku, jazyk, text samotného překladu.
Tomášeek
Profil
Kcko:
U tabulek ano, v tom příspěvku jsem je uvedl v domnění kompletního "výpisu" neduhů, ale sám je také používám. Ono záleží, jestli tím suffixem je "wp" nebo "cms", nebo "1", "2", "3" (alias mesto_1, mesto_2, mesto_3), že? :-)

Nicméně tazatel se zmiňoval o suffixech sloupců, navíc dynamicky tvořených aplikací. To peklo je a nejde ničím odůvodnit.
Kajman
Profil
Tomášeek:
Jazykové mutace se dělají jinak.

Ale dělají se i takto - kolik překladů, tolik sloupců. Lze pak mít např. indexy s porovnáním odpovídající jazyku.

Moved Permanently
Moved Permanently
Martin Joneš
Profil
Díky všem za nápady a připomínky. Každého komentáře si vážím.

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: