Anonymní profil VelkyBubak – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil VelkyBubak – Programujte.comAnonymní profil VelkyBubak – Programujte.com

 

Příspěvky odeslané z IP adresy 94.113.99.–

MySQL › Lze vypsat neexistující id?
16. 12. 2015   #207372

#6 Kit

Ok.
Přesouvání obrázků bylo důvodem, proč jsem chtěl využít na krátkou chvilku již odstraněné id (jediná souvislost s tématem spočívá v tom že záznam o obrázku je řádkem v tabulce. Aktuálně se snažím vyřešit situaci, kdy potřebuji prohodit id dvou řádků, nicméně je tu vlastně ještě varianta s prohozením všech ostatních hodnot krom id pomocí php, což mi z nějakého důvodu uniklo. Zdá se že málokdy přijdu na nejsnažší řešení.

MySQL › Lze vypsat neexistující id?
16. 12. 2015   #207370

#3 Kit
#4 z_moravec

Ook, tohle mi bylo jasné šlo mi o to, jak to udělat ve chvíli, kdy už jsou smazané.

Respektive původní myšlenka která mne sem dovedla byla, jak prohodit obrázky, které jsou pojmenovány po těchto id.

1. Musím najít nějaký odkladový prostor, kde nic není (tedy jeden z těch neexistujících id, protože nechci zasahovat do auto increment a zbytečně přidělávat nová prázdná místa), 2. přesunu tam první z obrázků (přepíšu id na ono volné a v závislosti na tom, přesunu data obrázku na odpovídající místo) 3. na takto uvolněné místo a s tím i id přesunu druhý obrázek 4. přesunu první obrázek na místo druhého - a mám stejná neexistující id jako na počátku

MySQL › Lze vypsat neexistující id?
16. 12. 2015   #207366

#1 VelkyBubak
Ještě mě napadla jedna možnost s mysql, která je ve svém základním tvaru vypíše ale k mému překvapení jen poslední z nich - očekával jsem že to bude fungovat pro:

(a.id+1) as ids /* první */

(pokud je jich za sebou odebraných více nezobrazí se a zviditelnění ostatních neexistujících id by bylo tímto způsobem velice obtížné)

SELECT (a.id-1) as ids FROM tabulka as a left join tabulka as b on a.id=(b.id+1) where b.id is null
MySQL › Lze vypsat neexistující id?
16. 12. 2015   #207365

Dejme tomu že mám tabulku s auto increment číselným klíčem. Pokud nějaký řádek vymažu, není již dané id k dispozici. Existuje v mysql nějaká možnost jak vypsat tato již neexistující id?

Mimo případné MySQL řešení, mne napadají jen dvě jiná s použitím php:

1) pomocí cyklu bych pro každé id {for ($i=1; $i<=30000;$i++)} dal dotaz na db a pokud mysql_num_rows($dotaz) bude 0 tak ho vypsal

2) převedu všechna existující id z db do pole a pak porovnám pole s cyklem {for ($i=1; $i<=30000;$i++)}

PHP › Reset v poli z DB
1. 11. 2015   #206077

#7 Kit

Důvod: Mám obrázky. K nim si uživatelé mohou vybrat tagy, z nějakého seznamu již používaných tagů uloženého v DB. Tato tabulka neslouží pochopitelně jen k výpisu všech tagů, ale i jako číselník k dalším funkcím.

#9 JacobCZ
Mě přijde jako stejná pitomost používat zbytečně cizí jazyk - ty si pro mě za mě používej třeba tatarštinu, mě stačí čeština (bez dia, bodek a podobných vymožeností + těch pár zkratek, jako třeba sql)

PHP › Reset v poli z DB
31. 10. 2015   #206027

#5 Kit
Né že by o toto šlo, ale když js to tak nakousl. Vím že se neshodneme na více věcech, včetně třeba jmen proměnných a extra mi to nevadí (je pro mě více důležité abych se v tom vyznal sám) - tady jde o sql příkaz na výpis tagů ;)

PHP › Reset v poli z DB
28. 10. 2015   #205951

#1 VelkyBubak
Tak si odpovím sám. Jde to takto: 

while ($res = mysql_fetch_array($sql_tagy)) {...}
mysql_data_seek($sql_tagy, 0);
while ($res = mysql_fetch_array($sql_tagy)) {...}
VelkyBubak
PHP › Reset v poli z DB
28. 10. 2015   #205950

hm, ... jde nějakým způsobem zkopírovat surová data z db uložená v php proměnné $sql_tagy?

Chtěl bych na jednom výsledku dvakrát spustit while

while ($res = mysql_fetch_array($sql_tagy)) { ... } 
...
while ($res = mysql_fetch_array($sql_tagy)) { ... }

Moc mě nekřekvapilo že nefunguje 

reset($sql_tagy);

ale nefunguje ani zápis

$sql_tagy2 = $sql_tagy;
MySQL › Mysql versus PHP řešení (co…
22. 9. 2015   #205076

#4 Kit
Děkuji ti za vysvětlení i za upozornění na chybu v mém dotazu. Příště se tedy budu snažit své dotazy formulovat co nejsložitěji, aby se na to nedalo odpovědět tak snadno jako je ano/ne (bez vysvětlení proč).

MySQL › Mysql versus PHP řešení (co…
21. 9. 2015   #205074

Hm. Omlouvám se, ale takováhle odpověď se mi moc nelíbí. Ne proto, že by mi snad první řešení přišlo lepší, ale nelze z toho poznat proč. Může za tím být nějaký pádný důvod, ale může to být i čímkoliv dalším.

Přesto vidím určitý přínos v tom že místo dvou fcí v PHP použiju jednu v MySQL

MySQL › Mysql versus PHP řešení (co…
21. 9. 2015   #205062

v dotazu sloupek datum ve tvaru 'YYYY-MM-DD HH:MM:SS'

PHP:

$cisloDne = date("w", strtotime($res["datum"]));

mysql:

(v dotazu přidaný pseudosloupek): WEEKDAY(datum) as cisloDne

$cisloDne = $res["cisloDne"]

co z toho je lepší, nebo jak na to přijít, předem díky za odpovědi

JavaScript, AJAX, jQuery › Promenna z Java Scriptu do p…
18. 8. 2015   #204397

můžete mi prosím vysvětlit jak to má fungovat?

Pokud zkusím, v prohlížeči následující kód:

javascript: var WidthScreen = screen.width; alert(WidthScreen)

funguje to bez problému, pokud ale zkusím do php scriptu dosadit kód:

$width = "<script language=\"JavaScript\">var WidthScreen = screen.width;</script>";

nejde a faktem je že když se zpracuje php, tak se teprve vykoná javascript, nebo ne?


ten kód by se mi líbil, ale čím dál víc mám podezření že jde o žert.

JavaScript, AJAX, jQuery › Menu v JQuery se nechce sbalit
18. 8. 2015   #204383

#1 Coldan
Odpověď nemám, jQuery moc nerozumím, ale z toho mála co vím: nikde nevidím ani pokus o ošetření situace kterou popisuješ.

PHP › Kde je chyba?
10. 8. 2015   #204188

#7 smiesek
Pokud jde o příspěvek #6 , opravdu jsem se vyjadřoval k příspěvku #1 kde je původní kód. Můj hlevní problém spočíval v tom, že jsem nechápal proč se kód chová tak, jak jsem taktéž v prvním příspěvku popsal.

a toto:

což způsobí že to funguje (pravděpodobně jen na písmena bez diakritiky)

bylo vyjádření ke skutečnosti že ucfirst funguje jen pokud na začátku vstupu není mezera

PS: velice se omlouvám za nepříliš pochopitelné zápisy ;)

#8 sakal91
a) a právě proto to není jedno

b) když to říkáš, budu tedy věřit že by v tomto zápisu mohlo být $mod_zanrVal i polem

c) ne, nezkoušel (ještě nejsem zvyklý to používat, takže mě to ani nenapadlo, díky)

PHP › Kde je chyba?
10. 8. 2015   #204168

#5 VelkyBubak
Aha, ok už chápu. Ve třetím řádku se totiž nad proměnnou použitou ve čtvrtém řádku použije trim (které se tak použije před ucfirst ve čtvrtém řádku), což způsobí že to funguje (pravděpodobně jen na písmena bez diakritiky)

VelkyBubak
PHP › Kde je chyba?
10. 8. 2015   #204164

#4 sakal91
jediná chyba byla v tom že se pomocí ucfirst zvětšilo první písmeno prvního prvku pole a ostatní zůstaly s malými - dost pochybuji, že by v tomto případě php nějakou chybu vypsalo (i kdybych to zkusil; mimochodem když už se mi stane, že místo chyby vidím jen bílou stránku, pak zapnutí chyb v php.ini nepomáhá, a vidím bílou stránku dále)

#3 smiesek
hm, v utf-8 to je, takže by to mohl být jedn z problémů

ale opravdu by mne zajímalo, proč daný příklad může fungovat i po odkomentování řádku 3 (ještě bych pochopil, proč nefunguje před trim - pravděpodobně bere cokoliv za mezerou jako další slovo)

VelkyBubak
PHP › Kde je chyba?
10. 8. 2015   #204085

#1 VelkyBubak
hm, přestože pořád netuším v čem byla chyba, zdá se že souvisí s ucfirst, protože když to neodkomentuju a přepíšu řádek 4 na 

$mdl_zanrQ = ucfirst(TRIM($mdl_zanrVal));

také to funguje

VelkyBubak
PHP › Kde je chyba?
10. 8. 2015   #204084

mám kód

   foreach ($mdl_zanr as $mdl_zanrVal)
         {
         //$mdl_zanrVal = TRIM(ucfirst($mdl_zanrVal));
         $mdl_zanrQ = TRIM(ucfirst($mdl_zanrVal));
         
         switch($mdl_zanrVal) {
		default: $occup[] = $mdl_zanrQ; break;
            	
            }
         echo $mdl_zanrVal.", ";
         echo $mdl_zanrQ."; ";
         }


takto nefunguje a pokud odkomentuju třetí řádek, tak funguje - izoloval jsem chybu, ale pořád nechápu v čem spočívá

VelkyBubak
MySQL › alternativa k left join?
14. 7. 2015   #203609

#2 Kit
Vážně?

Hm, to znamená že chybu musím mít jinde než jsem předpokládal, díky. ...

Nevím kde jsem měl chybu, protože se mi zdálo že tento zápis nefunguje a on funguje:

 

select * from a left join b on (a.id_dilo=b.id_dilo and b.id_uzivatel=a.id_uzivatel) where a.id_uzivatel="xyz"

VelkyBubak
MySQL › alternativa k left join?
14. 7. 2015   #203606

existuje nějaká alternativa k left join, pokud na pravé straně není záznam?

Chápu to tak, že left join funguje jen za předpokladu, že vpravo i vlevo jsou záznamy, byť některé části mohou být null.

Pokud tedy udělám nějaký jednoduchý left join:

select * from a left join b on a.id=b.id where a.kniha="abc"

a chci zobrazit tyto záznamy ale i záznamy z tabulky a pro které není odpovídající záznam v b, jde to nějak?

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032022 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý