Nahrazeni foreach konstrukce SQL rubrika: Databáze: SQL
Ahoj :) V MySQL mam tabulku users, answers, questions. Uzivatel odpovida ANO/NE (boolean) na serii otazek, ktera jsou dana pro casove obdobi. Otazek je vetsi mnozstvi a pocet je variabilni pro kazdy casovy usek. Vystup za jednotliva casova obdobi potrebuji vyexportovat do vicerozmerneho pole v PHP. Zatim to resim tak, ze projedu vsechny otazky v danem case, pak projedu vsechny odpovedi, v nich projedu uzivatele a vytvorim pole, ktere ma nasledujici strukturu:
$rows = [ user_id => [ name => 'Name', answers => [ 1 => 0 2 => 1 3 => 1 ... ] ] ];
Pro kazdou otazku odpovidaji jini uzivatele. Vytvarim ale podle me moc SQL dotazu, tim prochazenim v PHP kodu, myslim, ze by se to dalo vyrazne zjednodusit. Nemel by nekdo, prosim, nastrel? Mozna, ze by slo vyuzit GROUP CONCAT, ktery by mi ulozil do radku jednotlive odpovedi do jednoho sloupce a s tim bych pak umel pracovat, ale po hodine laborovani nemuzu prijit na to, jak presne. S tim souvisi i druha cast dotazu, rad bych konecne pronikl do SQL, ale nemuzu najit nejaky pekny, aktualni tutorial ani v EN. Predem diky :)
Ještě mi tam chybí tabulka user_question, ve které bude seznam otázek, na které má uživatel odpovídat a ve které budou uvedeny i jeho odpovědi a případně body.
Netuším, k čemu bych použil to pole v PHP.
Tutoriál nemusí být úplně aktuální, jazyk SQL se téměř nemění. Namátkou jsem našel http://www.tutorialspoint.com/mysql/ , jen je dobré v PHP místo MySQLi použít modernější PDO.
Komentáře
- jirka_doubek : PDO používám, vlastně ani tak nejde o jazyk PHP, ale o konstrukci SQL dotazu, který můžu potom libovolně zpracovat, díky za tutoriál, mám pocit, že SQL je prostě mimo moje chápaní :) hlavně ty věci, které nějak procedurálně nechápu, jako kombinace JOINů a dalších funkcí jazyků. — 28.7.2015
- Kit : SQL je jazyk, ve kterém neříkáš, jak má databáze něco dělat, ale jen co má udělat. To nejsou procedurální záležitosti, ale deklarativní. — 28.7.2015
Pro zobrazení všech 2 odpovědí se prosím přihlaste:
Nebo se přihlaste jménem a heslem:
Komentáře