Online 32 uživatelů Přihlášení | Registrace | Zaslat heslo | Prohlížení bez přihlášení

 

PHP a MySQL programování [ ID: 12341 ] - [ Počítače (hardware, software) / Programování ]
1 / 34
Mini Home

FAQ


Q: Mám problémy s kódováním
A: Zkontroluj zda správně používáš SET NAMES a za je správně nastavené kódování tabulek.

Q: Je nějaký způsob, jak zkombinovat několik řádků z výsledku nějakého dotazu do jediného řádku?
A: GROUP_CONCAT()
MELDIK   15:50:43 22.07.2018
mohl by mi nekdo poradit jak odstranit nasledujici chybu?
Nainstaloval jsem si PHP7.0, Apache 2.4 a MySQL 8. V phpmyadminu jsem ale narazil na casty problem jak jsem se docetl na netu, s tim ze mi hlasi myadmin mysqli Server sent charset(255) unknow to the client. Dlouho jsem hledal co s tim a zatim jedine reseni mi nepomohlo. Pridal jsem do my.ini od SQL polozky default-character-set=UTF8 pro clienta,mysql a mysqld ale ted to pro zmenu hlasi chybu mysqli_real_connect() Server requested authentification_method unknow to the client a druhou mysqli_real_connect() (HY000/2054). Je nejake jednodussi resni tohohle problemu nez jak jsem se docetl downgrade MySQL atd
KRYSPIN   12:18:14 19.04.2018
KRYSPIN [ 09:07:40 19.04.2018 ]: Tak už mi to funguje. Chyba byla v unikátním klíči.
KRYSPIN   09:07:40 19.04.2018
Zdravím. Mám dotaz zda jde udělat tato operace - potřebuji vložit do tabulky záznam, a když pro unikátní klíče již záznam existuje tak jej aktualizovat. V SELECTU pro vložení je ale agragační funkce. Když udělám SELECT, tak mi to krásně udělá více řádků. Když použiji INSERT, tak se vloží pouze jeden. Nevidíte někde chybu? Jde takto vložit více řádků, a když existují, tak jen aktualizovat danou hodnotu?

INSERT INTO AktivitaToday (AktivitaTodayTypeID, AktivitaTodayUserID, AktivitaTodayTypeValue)
  SELECT * FROM (
SELECT AktivitaTyp, AktivitaUzivatel, COUNT(AktivitaTyp) AS AktivitaTodayTypeValue FROM aktivita AS b
WHERE AktivitaTyp > 0 AND DATE(AktivitaDatum) = CURDATE() GROUP BY AktivitaTyp, AktivitaUzivatel) AS a
  ON DUPLICATE KEY UPDATE AktivitaTodayTypeValue = a.AktivitaTodayTypeValue;
YODA   22:03:39 09.10.2016
Ahoj, kdyby se chtělo někomu poradit / pomoci: PŘÍSPĚVEK
TRIM   12:05:35 04.02.2015
Zdar, nepotřebujete někdo job? :-) Potřeboval bych najít Junior SW Developera, klidně zatím na částečný úvazek, potom na plný. Smlouva na dobu neurčitou ;) Kdžytak klikejte http://bit.ly/18MSukK
JMV   16:44:09 09.01.2014
OMNISLASH [ 14:01:37 03.01.2014 ]: funguje to, diky moc ! ja tam to -d proste podruhy nedaval (a ani me to nenapadlo)
KRYSPIN   18:00:00 03.01.2014
když to nepůjde, tak to zkusit oddělit pomocí "|" nějak takto:


Arguments="-d open_basedir=C:\www.php\web1\|-d log_errors=Off"
KRYSPIN   17:55:45 03.01.2014
KRYSPIN [ 22:26:41 02.01.2014 ]: tak nic nenalezeno.

ale jak píše  OMNISLASH [ 14:01:37 03.01.2014 ]:  - to vypadá nadějně
OMNISLASH   14:01:37 03.01.2014
JMV [ 12:34:19 03.01.2014 ]: to -d imo neni jedinecny parametr, jen rika, ze php ma zaregistrovat nasledujici ini promennou, takze neco jako:
Arguments="-d open_basedir=C:\www.php\web1\ -d log_errors=Off"
JMV   12:34:19 03.01.2014
OMNISLASH [ 22:45:04 02.01.2014 ]: no ja nevim jak ho dostat za ten prvni -d, protoze open base dir se zbavit nechci. napis mi to pls, cely co bys zkusil v radku Arguments a ja to overim. Me uz dosla fantazie, jelikoz moje stredniky a uvozovky jaksi nezabiraly >::H
OMNISLASH   22:45:04 02.01.2014
JMV [ 16:25:46 01.01.2014 ]: a parametr:
-d log_errors=Off
jsi pridat zkousel?
KRYSPIN   22:26:41 02.01.2014
JMV [ 16:25:46 01.01.2014 ]: hele ještě se ti mrknu na SUSE, tak to mají uděláno přes konfiguráky docela pěkně a třeba to tam bude.
JMV   16:25:46 01.01.2014
RATTUS [ 15:14:55 01.01.2014 ]: takto jsem tam, kde jsem. hledam parametr, resp. jeho spravne uziti. kazdopadne mi prijde, kdyz umim lze vyuzit vlastni open base dir, proc by nemel jit nastavit log. Ale google mi zatim neporadil a dokumentace k php a ani MS k fastcgi >::H

KRYSPIN [ 19:20:41 31.12.2013 ]: jasne ze jo. nejde jen o pool, ale i o cely iisko. kdyz pridavam novy php web, vim, co mam udelat aby "bezel". ale tohle se mi proste nechyta, takze to budu mit nekde dost spatne.

Ja obecne nemuzu najit parametry php.exe, na to "-d open_basedir" jsem taky kapnul spise nahodou nez dle oficialni dokumentace. Podle me by tam proste mel jit jako argument pridat normalni parametr pro no error_log ale syntax netusim (pokud teda parametr existuje). Dokumentace se toci jen o php.ini a prekopavat desitky webu aby mel kazdy svuj je pro me v tuto chvili podstatne pracnejsi, nez si potvrdit, zda nahodou nelze muj pozadavek resit zkrze parametr (a ja jsem si prakticky jistej, ze jo)
RATTUS   15:14:55 01.01.2014
JMV [ 15:27:13 31.12.2013 ]: nema to nahodou parametr pro phpini ?
ze bys jim dal jinej phpini nastavenej bez logovani
KRYSPIN   19:20:41 31.12.2013
JMV [ 15:27:13 31.12.2013 ]: jen pro jistotu: po změně zrestarteješ daný "application pool"?
JMV   15:27:13 31.12.2013
Neresil jste nekdo v PHP 5.3 na IIS6 pres Fast-cgi tento pozadavek:

PHP slape vyborne, benchmarky krasny. Krom globalni konfigurace zkrze php.ini jsou jednotlivy weby konfigurovany ve fcgext.ini tak, aby kazdy web mel omezen requesty a hlavne svuj open base dir.

[WEB1]
ExePath=C:\Inetpub\PHP536\php-cgi.exe
Arguments="-d open_basedir=C:\www.php\web1\"
InstanceMaxRequests=10000
EnvironmentVars=PHP_FCGI_MAX_REQUESTS:10000

to facha vyborne. Ja bych ale nyni potreboval, aby pro nektere (a pouze pro nektere - globalne to umim) weby nebyl generovan log_error. Existuji totiz worpresy joomly a pod., ktery ten log priserne plnej a nejde s tim nic delat, pritom ty weby slapou ok a chyby tam zminovany jsou spise upozorneni nez chyby.
Uroven logovani ale globalne snizovat nechci. Potreboval bych, aby treba vyse zminovany web1 mel logovani "override" parametrem vypnute. Ale nemuzuse dokopat ke spravnemu zapisu nebo nastaveni, lze li vubec.

neco jako:

[WEB1]
ExePath=C:\Inetpub\PHP536\php-cgi.exe
Arguments="-d open_basedir=C:\www.php\web1\;-nolog_error"
InstanceMaxRequests=10000
EnvironmentVars=PHP_FCGI_MAX_REQUESTS:10000
nebo
EnvironmentVars=PHP_FCGI_MAX_REQUESTS:10000;LOG_ERROR:0

ale ani jedno z toho mi nechodi. Nakopne me prosim nekdo?
FISCH   13:03:19 28.08.2013
ARO [ 23:21:02 27.08.2013 ]: SELECT * FROM STUDENT LEFT OUTER JOIN ( SELECT * TOP 10 ZNAMKA WHERE ID_STUDENT = STUDENT.ID ) on ID_STUDENT = STUDENT.ID

ale teď si nejsem jistej jestli to bude fungovat protože se to asi bude snažit o merge a nebude to dělat ten select pro každý řádek a select jako sloupeček nejde protože to sumu udělá leda by se tam udělala temp tabulka a to je asi moc velka jebačka
ARO   23:21:02 27.08.2013
FISCH [ 22:03:47 27.08.2013 ]: napiš, uvidíme ...
FISCH   22:03:47 27.08.2013
ARO [ 19:18:51 27.08.2013 ]: nebyl by jednodužší join na select který má prostě TOP X?
ARO   19:18:51 27.08.2013
YODA [ 14:44:56 27.08.2013 ]: Co udělat obyč join, setřídit, očíslovat ve formátu XXXXX YYYY (kde xxx je id nebo pořadí studenta a yyy pořadí známky) a do hoaving hodit že výsledek celočíselného dělení toho čísla pětkou je nula?
číslování takto
SELECT @rownum:=@rownum+1 rownum, t.*FROM (SELECT @rownum:=0) r, mytable t;
ale je tam třeba IFem pořešit to +1 ať se přičíta pouze  u stejného studenta, jinak třeba +10000 (viz formát XXXXYYYYY nahoře)
1 / 34