NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Avatar
Zdenek
Člen
Avatar
Zdenek:14.2.2017 7:09

Ahojte,
lze aplikovat příkaz SELECT pro poslední řádek v DB ? Mám pouze jednu tabulku a v ní několik záznamů. Z posledního řádku/záznamu bych chtěl dostat "jmeno", "pohlavi", "email", "cas" a ze sloupců qA01_1 až qA30_5 jen ty, které mají hodnotu 1 nebo 0 a současně sečíst všechny 1. Děkuji za případnou radu.

 
Odpovědět
14.2.2017 7:09
Avatar
Odpovídá na Zdenek
Michal Štěpánek:14.2.2017 12:07

Ano, záleží na tom, podle čeho určuješ, že je ten záznam/řádek poslední...

SELECT MAX(id), jmeno, pohlavi... FROM tabulka WHERE podmínky
Nahoru Odpovědět
14.2.2017 12:07
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Zdenek
Člen
Avatar
Zdenek:14.2.2017 15:39

A existuje pro SELECT příkaz něco jako pole :) ?

 
Nahoru Odpovědět
14.2.2017 15:39
Avatar
Odpovídá na Zdenek
Michal Štěpánek:15.2.2017 7:17

To jsem asi nepochopil... Co to je "něco jako pole"? SELECT ti vytáhne přesně to, co mu přikážeš (pokud to samozřejmě v té DB je). S výsledkem si můžeš naložit dle libosti => nechat vypsat do listu, uložit do DataTable, apod...
P.S. Používej tlačítko odpovědět, jinak mi nepřijde notifikace do mailu a pak o tvé reakci nevím...

Nahoru Odpovědět
15.2.2017 7:17
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Nikola Sterziková (PaNika):16.2.2017 15:36

Taky úplně nerozumím tomu, co potřebuješ.
Souhlasím s Michalem, že poslední řádek můžeš vybrat pomocí funkce MAX(ID). (Za předpokladu, že sloupec je typu Identity s automatickým inkrementem)

Jestli to dobře chápu, tak se pokoušíš Selectu říct, že má zobrazit slouped qA01_1 pokud má hodnotu 1 nebo 0.
Něco jako:

SELECT jmeno, (Pokud sloupec qA01_1 = 1, tak qA01_1, jinak sloupec nevybírej),
FROM....

Tak tohle NEJDE.

Můžeš ale udělat toho:

SELECT sloupec1, sloupec2, (ISNULL(sloupec1, 0) + (ISNULL(sloupec2, 0) AS soucet
        FROM (
                SELECT CASE WHEN qA01_1 IN (1,0) THEN qA01_1 ELSE NULL END AS sloupec1,
                              CASE WHEN qA01_2 IN (1,0) THEN qA01_2 ELSE NULL END AS sloupec2,
                                and,
                        FROM Tabulka
                        WHERE ID = (SELECT MAX(ID) FROM Tabulka)
) X
 
Nahoru Odpovědět
16.2.2017 15:36
Avatar
Zdenek
Člen
Avatar
Odpovídá na Nikola Sterziková (PaNika)
Zdenek:17.2.2017 22:15

Celkem dobře to chápete. Vždy z posledního záznamu potřebuji zobrazit názvy sloupců, které obsahují buď hodnotu 1 neb 0 a současně bych chtěl udělat součet všech jedniček. Přikládám obrázek.

 
Nahoru Odpovědět
17.2.2017 22:15
Avatar
Odpovídá na Zdenek
Michal Štěpánek:19.2.2017 9:22

Součet jedniček čeho? Ve vybraném záznamu? Nebo součet všech jedniček v nějakém sloupci, nebo součet všech jedniček v tabulce?

Nahoru Odpovědět
19.2.2017 9:22
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Zdenek
Člen
Avatar
Odpovídá na Michal Štěpánek
Zdenek:19.2.2017 10:42

Soucet jednicek posledniho zaznamu (tedy radku).

 
Nahoru Odpovědět
19.2.2017 10:42
Avatar
Odpovídá na Zdenek
Michal Štěpánek:19.2.2017 13:37

Jestli jsem to správně pochopil, ty "sčítané" sloupce můžou být jen 1 nebo 0, takže je pohodlně můžeš sečíst všechny, ne?

SELECT (sloupec1 + sloupec1 + sloupec3 +...) FROM Tabulka WHERE podmínky...
Editováno 19.2.2017 13:38
Nahoru Odpovědět
19.2.2017 13:37
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Zdenek
Člen
Avatar
Odpovídá na Michal Štěpánek
Zdenek:20.2.2017 7:34

Ano, chápeš správně :).Mám to napsané, ale pořád dokola mi to háže součet 7, což je nesmysl. Co se týče podmínek, tak ty jsem neaplikoval. Ale dalo by se napsat nějak zkráceně "sečti hodnoty posledního záznamu, kde jsou hodnoty pouze 1" ?

$qry = mysql_query("SELECT (qA01_1 + qA01_2 + qA01_3 + qA01_4 + qA01_5
                                      + qA02_1 + qA02_2 + qA02_3 + qA02_4 + qA02_5
                                      + qA03_1 + qA03_2 + qA03_3 + qA03_4 + qA03_5
                                      + qA04_1 + qA04_2 + qA04_3 + qA04_4 + qA04_5
                                      + qA05_1 + qA05_2 + qA05_3 + qA05_4 + qA05_5
                                      + qA06_1 + qA06_2 + qA06_3 + qA06_4 + qA06_5
                                      + qA07_1 + qA07_2 + qA07_3 + qA07_4 + qA07_5
                                      + qA08_1 + qA08_2 + qA08_3 + qA08_4 + qA08_5
                                      + qA09_1 + qA09_2 + qA09_3 + qA09_4 + qA09_5
                                      + qA10_1 + qA10_2 + qA10_3 + qA10_4 + qA10_5
                                      + qA11_1 + qA11_2 + qA11_3 + qA11_4 + qA11_5
                                      + qA12_1 + qA12_2 + qA12_3 + qA12_4 + qA12_5
                                      + qA13_1 + qA13_2 + qA13_3 + qA13_4 + qA13_5
                                      + qA14_1 + qA14_2 + qA14_3 + qA14_4 + qA14_5
                                      + qA15_1 + qA15_2 + qA15_3 + qA15_4 + qA15_5
                                      + qA16_1 + qA16_2 + qA16_3 + qA16_4 + qA16_5
                                      + qA17_1 + qA17_2 + qA17_3 + qA17_4 + qA17_5
                                      + qA18_1 + qA18_2 + qA18_3 + qA18_4 + qA18_5
                                      + qA19_1 + qA19_2 + qA19_3 + qA19_4 + qA19_5
                                      + qA20_1 + qA20_2 + qA20_3 + qA20_4 + qA20_5
                                      + qA21_1 + qA21_2 + qA21_3 + qA21_4 + qA21_5
                                      + qA22_1 + qA22_2 + qA22_3 + qA22_4 + qA22_5
                                      + qA23_1 + qA23_2 + qA23_3 + qA23_4 + qA23_5
                                      + qA24_1 + qA24_2 + qA24_3 + qA24_4 + qA24_5
                                      + qA25_1 + qA25_2 + qA25_3 + qA25_4 + qA25_5
                                      + qA26_1 + qA26_2 + qA26_3 + qA26_4 + qA26_5
                                      + qA27_1 + qA27_2 + qA27_3 + qA27_4 + qA27_5
                                      + qA28_1 + qA28_2 + qA28_3 + qA28_4 + qA28_5
                                      + qA29_1 + qA29_2 + qA29_3 + qA29_4 + qA29_5
                                      + qA30_1 + qA30_2 + qA30_3 + qA30_4 + qA30_5) FROM tabulka");
            $row = mysql_fetch_array($qry);
            echo "<br/>Soucet:"." ".round($qry,0);
 
Nahoru Odpovědět
20.2.2017 7:34
Avatar
Odpovídá na Zdenek
Michal Štěpánek:20.2.2017 7:55

Pokud hodnota může být jen 0 nebo 1, tak je přeci zbytečné vybírat podmínkou ty "jedničkové", ale omezit podmínku na konkrétní záznam bys měl...

Nahoru Odpovědět
20.2.2017 7:55
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Zdenek
Člen
Avatar
Odpovídá na Michal Štěpánek
Zdenek:20.2.2017 8:33

Hodnota může být 0 nebo 1 nebo prázdná. A nevím co to udělá, pokud sčítám prázdnou hodnotu. Nevím proč mi to hází pokaždé součet 7, když je třeba součet všech jedniček 9. Ale jak píšeš, může to dělat to, že nemám nadefinovaný poslední záznam. Může to být napsáno takto ?

$qry = mysql_query("SELECT (qA01_1 + qA01_2 + qA01_3 + qA01_4 + qA01_5
                                      + qA02_1 + qA02_2 + qA02_3 + qA02_4 + qA02_5
                                      + qA03_1 + qA03_2 + qA03_3 + qA03_4 + qA03_5
                                      + qA04_1 + qA04_2 + qA04_3 + qA04_4 + qA04_5
                                      + qA05_1 + qA05_2 + qA05_3 + qA05_4 + qA05_5
                                      + qA06_1 + qA06_2 + qA06_3 + qA06_4 + qA06_5
                                      + qA07_1 + qA07_2 + qA07_3 + qA07_4 + qA07_5
                                      + qA08_1 + qA08_2 + qA08_3 + qA08_4 + qA08_5
                                      + qA09_1 + qA09_2 + qA09_3 + qA09_4 + qA09_5
                                      + qA10_1 + qA10_2 + qA10_3 + qA10_4 + qA10_5
                                      + qA11_1 + qA11_2 + qA11_3 + qA11_4 + qA11_5
                                      + qA12_1 + qA12_2 + qA12_3 + qA12_4 + qA12_5
                                      + qA13_1 + qA13_2 + qA13_3 + qA13_4 + qA13_5
                                      + qA14_1 + qA14_2 + qA14_3 + qA14_4 + qA14_5
                                      + qA15_1 + qA15_2 + qA15_3 + qA15_4 + qA15_5
                                      + qA16_1 + qA16_2 + qA16_3 + qA16_4 + qA16_5
                                      + qA17_1 + qA17_2 + qA17_3 + qA17_4 + qA17_5
                                      + qA18_1 + qA18_2 + qA18_3 + qA18_4 + qA18_5
                                      + qA19_1 + qA19_2 + qA19_3 + qA19_4 + qA19_5
                                      + qA20_1 + qA20_2 + qA20_3 + qA20_4 + qA20_5
                                      + qA21_1 + qA21_2 + qA21_3 + qA21_4 + qA21_5
                                      + qA22_1 + qA22_2 + qA22_3 + qA22_4 + qA22_5
                                      + qA23_1 + qA23_2 + qA23_3 + qA23_4 + qA23_5
                                      + qA24_1 + qA24_2 + qA24_3 + qA24_4 + qA24_5
                                      + qA25_1 + qA25_2 + qA25_3 + qA25_4 + qA25_5
                                      + qA26_1 + qA26_2 + qA26_3 + qA26_4 + qA26_5
                                      + qA27_1 + qA27_2 + qA27_3 + qA27_4 + qA27_5
                                      + qA28_1 + qA28_2 + qA28_3 + qA28_4 + qA28_5
                                      + qA29_1 + qA29_2 + qA29_3 + qA29_4 + qA29_5
                                      + qA30_1 + qA30_2 + qA30_3 + qA30_4 + qA30_5) FROM tabulka WHERE id = (SELECT MAX(id))");
            $row = mysql_fetch_array($qry);
            echo "<br/>Soucet:"." ".round($qry,0);
 
Nahoru Odpovědět
20.2.2017 8:33
Avatar
Odpovídá na Zdenek
Michal Štěpánek:20.2.2017 8:43

Ten SELECT je tam asi navíc, musel bys upřesnit odkud má selectovat, podle mě by mělo stačit takto (ale nezkoušel jsem to)

...FROM tabulka WHERE id = MAX(id)");

Abych pravdu řekl nevím, jak je to se sčítáním "null" hodnot, ale myslím, že by je to mělo jednoduše přeskočit...
Pokud by to automaticky nepřeskakovalo null hodnoty, asi bych si udělal nějakou funkci, kde bych null nahrazoval nulou...
P.S. Nebylo by lepší rovnou nastavit výchozí hodnotu na "0"? K čemu tam vlastně to null máš?

Nahoru Odpovědět
20.2.2017 8:43
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Zdenek
Člen
Avatar
Odpovídá na Michal Štěpánek
Zdenek:20.2.2017 13:19

Zkoušel jsem sečíst jen hodnoty obsahující 1 a součet prostě nesčítá. Takže prázdná hodnota asi nato nemá vliv, chová se to stejně. V DB je zdá se vše ok. Takže z mého laického hlediska mám buď špatně "echo" nebo mnou nepostřehnutelná chyba. Ta NULL u mě znamená, že daná otázka nebyla z náhodného výběru pěti otázek vybrána. Hodnota 1 je pak správná odpověď, hodnota 0 je špatná odpověď.

Nebude tu někde zakopaný pes?

$qry = mysql_query("SELECT (qA01_1 + qA01_2 + qA01_3 + qA01_4 + qA01_5
                          + qA02_1 + qA02_2 + qA02_3 + qA02_4 + qA02_5
                          + qA03_1 + qA03_2 + qA03_3 + qA03_4 + qA03_5
                          + qA04_1 + qA04_2 + qA04_3 + qA04_4 + qA04_5
                          + qA05_1 + qA05_2 + qA05_3 + qA05_4 + qA05_5
                          + qA06_1 + qA06_2 + qA06_3 + qA06_4 + qA06_5
                          + qA07_1 + qA07_2 + qA07_3 + qA07_4 + qA07_5
                          + qA08_1 + qA08_2 + qA08_3 + qA08_4 + qA08_5
                          + qA09_1 + qA09_2 + qA09_3 + qA09_4 + qA09_5
                          + qA10_1 + qA10_2 + qA10_3 + qA10_4 + qA10_5
                          + qA11_1 + qA11_2 + qA11_3 + qA11_4 + qA11_5
                          + qA12_1 + qA12_2 + qA12_3 + qA12_4 + qA12_5
                          + qA13_1 + qA13_2 + qA13_3 + qA13_4 + qA13_5
                          + qA14_1 + qA14_2 + qA14_3 + qA14_4 + qA14_5
                          + qA15_1 + qA15_2 + qA15_3 + qA15_4 + qA15_5
                          + qA16_1 + qA16_2 + qA16_3 + qA16_4 + qA16_5
                          + qA17_1 + qA17_2 + qA17_3 + qA17_4 + qA17_5
                          + qA18_1 + qA18_2 + qA18_3 + qA18_4 + qA18_5
                          + qA19_1 + qA19_2 + qA19_3 + qA19_4 + qA19_5
                          + qA20_1 + qA20_2 + qA20_3 + qA20_4 + qA20_5
                          + qA21_1 + qA21_2 + qA21_3 + qA21_4 + qA21_5
                          + qA22_1 + qA22_2 + qA22_3 + qA22_4 + qA22_5
                          + qA23_1 + qA23_2 + qA23_3 + qA23_4 + qA23_5
                          + qA24_1 + qA24_2 + qA24_3 + qA24_4 + qA24_5
                          + qA25_1 + qA25_2 + qA25_3 + qA25_4 + qA25_5
                          + qA26_1 + qA26_2 + qA26_3 + qA26_4 + qA26_5
                          + qA27_1 + qA27_2 + qA27_3 + qA27_4 + qA27_5
                          + qA28_1 + qA28_2 + qA28_3 + qA28_4 + qA28_5
                          + qA29_1 + qA29_2 + qA29_3 + qA29_4 + qA29_5
                          + qA30_1 + qA30_2 + qA30_3 + qA30_4 + qA30_5) FROM dospeli WHERE id = MAX(id)");

echo "<br/>Soucet:"." ".$qry;
 
Nahoru Odpovědět
20.2.2017 13:19
Avatar
Odpovídá na Zdenek
Michal Štěpánek:20.2.2017 13:22

Nesčítá, nebo jen "špatně sčítá", nebo nevyleze žádné číslo?

Nahoru Odpovědět
20.2.2017 13:22
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Jiří Fencl
Člen
Avatar
Jiří Fencl:20.2.2017 13:23

$qry je result (nebo NULL) a ne cislo, stejne jako pouziti

$row = mysql_fetch_array($qry);
            echo "<br/>Soucet:"." ".round($qry,0);

nedava smysl, melo by to byt

$row = mysql_fetch_array($qry);
            echo "<br/>Soucet:"." ".round($row[0],0);
Editováno 20.2.2017 13:23
 
Nahoru Odpovědět
20.2.2017 13:23
Avatar
Zdenek
Člen
Avatar
Odpovídá na Michal Štěpánek
Zdenek:20.2.2017 13:40

@ Michal

  • nevyleze žádné číslo
 
Nahoru Odpovědět
20.2.2017 13:40
Avatar
Odpovídá na Zdenek
Michal Štěpánek:20.2.2017 13:42

zkusil jsi ten příkaz spustit přímo nad databází bez PHP?

Nahoru Odpovědět
20.2.2017 13:42
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Zdenek
Člen
Avatar
Odpovídá na Jiří Fencl
Zdenek:20.2.2017 13:42

@ Jiří

- teď mi to háže tuhle chybu:

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdoc­s\app_form\in­put_form32_pro­cess.php on line 383

Soucet: 0

Nemůže to být tím, že mám záznamy typu VARCHAR ?

 
Nahoru Odpovědět
20.2.2017 13:42
Avatar
Jiří Fencl
Člen
Avatar
Jiří Fencl:20.2.2017 13:46

To vypada na chybu jinde, taky se moc nepares s testovanim vysledku, tak se nediv...

if( !$qry )
 echo mysql_error();
else{
 $row = mysql_fetch_array($qry);
 echo "<br/>Soucet:"." ".round($row[0],0);
}
 
Nahoru Odpovědět
20.2.2017 13:46
Avatar
Zdenek
Člen
Avatar
Zdenek:20.2.2017 14:46

Nahradil jsem toto

$row = mysql_fetch_array($qry);
            echo "<br/>Soucet:"." ".round($row[0],0);

tímto

if( !$qry )
 echo mysql_error();
else{
 $row = mysql_fetch_array($qry);
 echo "<br/>Soucet:"." ".round($row[0],0);
}

a řve to

Invalid use of group function

 
Nahoru Odpovědět
20.2.2017 14:46
Avatar
Odpovídá na Zdenek
Michal Štěpánek:20.2.2017 15:03

Nemůže to být tím, že mám záznamy typu VARCHAR ?

Chceš tím snad říct, že ty qA01_1 + qA01_2 + qA01_3... nejsou v DB jako čísla?
Pak se ale nemůžeš divit, že si to sčítá co chce...
Zkus ten dotaz spustit přímo nad databází, co ti z toho vyleze?

Nahoru Odpovědět
20.2.2017 15:03
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Odpovídá na Zdenek
Neaktivní uživatel:20.2.2017 15:06

Nejsem si jist, nemělo by být v SQL dotazu místo WHERE slovo HAVING?
Jinak dej raději na rady ostatních a předělej to celé. Vážně není normální mít sloupce s názvy qA14_3 a pak psát ty šílené dotazy, ve kterých můžeš mít chyby...

Nahoru Odpovědět
20.2.2017 15:06
Neaktivní uživatelský účet
Avatar
Odpovídá na Zdenek
Nikola Sterziková (PaNika):20.2.2017 16:48

No,

1. v podmínce WHERE by mělo být:

WHERE ID = (SELECT MAX(ID) FROM Tabulka)

a ne

WHERE ID = (MAX(ID) )

2. Pak souhlasím s Míchalem, že pokud sloupce obsahují číslo mají být typu číslo, nebo v tvém případě, pokud obsahují boolean, tak typu bit(na SQL Serveru, nevím zda MySql má sloupec typu bit). Pokud to z nějakého důvodu nemůžeš předělat na číslo/bit, tak musíš přetypovávat v dotazu (a zase hrozí, že ve sloupci číslo nebude a celé to spande)
např.:

CAST(slopec as int)

3. Při sčítání se musí vždy ošetřovat NULL hodnoty. 1 + NULL je totiž NULL. Stejně to platí při skládání stringů. 'text' + NULL = NULL. (tedy na SQL Serveru, ale odhaduji, že MySql se bude chovat stejně)
Tedy např.:

ISNULL(sloupec,0) + ISNULL(sloupec2, 0)

Podívej se na net jaký má MySql ekvivalent funkce ISNUL.

 
Nahoru Odpovědět
20.2.2017 16:48
Avatar
Zdenek
Člen
Avatar
Odpovídá na Michal Štěpánek
Zdenek:20.2.2017 16:54

@Michal
Tak jsem to testnul a dovolím si tvrdit, že chyba bude v zápisu MAX(id). Sloupce jsem změnil na typ INT, akorád mi to ted hází místo prázdných polí samé 0, což jsem nechtěl.

Pokud místo:

...FROM tabulka WHERE id = MAX(id)");

napíšu např.

...FROM tabulka WHERE id = 2;

tak to funguje jako SQL dotaz. Uvidím co to udělá v php.

 
Nahoru Odpovědět
20.2.2017 16:54
Avatar
Odpovídá na Zdenek
Michal Štěpánek:20.2.2017 22:39

Zkus

...Where ID in (select MAX(ID) FROM tabulka)
Nahoru Odpovědět
20.2.2017 22:39
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Zdenek
Člen
Avatar
Zdenek:21.2.2017 9:40

Ahojte,
děkuji všem za pro mě drahocené rady. Správný zápis pro poslední ID je jak uvádí Nikola:

$qry = mysql_query("SELECT (qA01_1 + ...  qA30_5) FROM tabulka WHERE ID = (SELECT MAX(ID) FROM tabulka)");

Takhle to zatím dobře funguje, dokonce jsem změnil v phpMyadmin sloupce na typ VARCHAR a funguje vše i s prázdnými záznamy.

Teď už se jen zbavit hlášek "Undefined index" tedy otázek, které nebyly vybrány a mají prázdnou hodnotu. Vím, že se to dá vypnout, ale raději bych to ošetřil.

 
Nahoru Odpovědět
21.2.2017 9:40
Avatar
Jiří Fencl
Člen
Avatar
Jiří Fencl:21.2.2017 9:45

Undefined index oddelas, kdyz pred pouzitim indexu v poli otestujes tento index pres isset

 
Nahoru Odpovědět
21.2.2017 9:45
Avatar
Odpovídá na Zdenek
Michal Štěpánek:21.2.2017 10:22

Být tebou, tak ty varchary změním na int a hodnocení pak třeba na 0,1,2 místo NULL,0,1
Ušetříš si tím spooooustu práce s ošetřováním "NULLů"

Nahoru Odpovědět
21.2.2017 10:22
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Zdenek
Člen
Avatar
Odpovídá na Jiří Fencl
Zdenek:21.2.2017 10:23

Z níže uvedených 29 sad po 5 otázkách, se vždy z jedné sady vybere jedna a ta nabude hodnoty 1 nebo 0. Ostatní otázky jsou pak prázdné, to jsou ty co mi háží chybu "Undefined index". Takže se snažím nahradit toto:

<?php session_start();
            $nick = $_SESSION['nick'];
            $emailaddress = $_SESSION['emailaddress'];
            $age = $_SESSION['age'];
            $sex = $_SESSION['sex'] ;
// odtud dolů nahrazuji
            $qA01_1 = $_SESSION['qA01_1'];
            $qA01_2 = $_SESSION['qA01_2'];
            $qA01_3 = $_SESSION['qA01_3'];
            $qA01_4 = $_SESSION['qA01_4'];
            $qA01_5 = $_SESSION['qA01_5'];

            $qA02_1 = $_SESSION['qA02_1'];
            $qA02_2 = $_SESSION['qA02_2'];
            $qA02_3 = $_SESSION['qA02_3'];
            $qA02_4 = $_SESSION['qA02_4'];
            $qA02_5 = $_SESSION['qA02_5'];

            $qA03_1 = $_SESSION['qA03_1'];
            $qA03_2 = $_SESSION['qA03_2'];
            $qA03_3 = $_SESSION['qA03_3'];
            $qA03_4 = $_SESSION['qA03_4'];
            $qA03_5 = $_SESSION['qA03_5'];

            $qA04_1 = $_SESSION['qA04_1'];
            $qA04_2 = $_SESSION['qA04_2'];
            $qA04_3 = $_SESSION['qA04_3'];
            $qA04_4 = $_SESSION['qA04_4'];
            $qA04_5 = $_SESSION['qA04_5'];

            $qA05_1 = $_SESSION['qA05_1'];
            $qA05_2 = $_SESSION['qA05_2'];
            $qA05_3 = $_SESSION['qA05_3'];
            $qA05_4 = $_SESSION['qA05_4'];
            $qA05_5 = $_SESSION['qA05_5'];

            $qA06_1 = $_SESSION['qA06_1'];
            $qA06_2 = $_SESSION['qA06_2'];
            $qA06_3 = $_SESSION['qA06_3'];
            $qA06_4 = $_SESSION['qA06_4'];
            $qA06_5 = $_SESSION['qA06_5'];

            $qA07_1 = $_SESSION['qA07_1'];
            $qA07_2 = $_SESSION['qA07_2'];
            $qA07_3 = $_SESSION['qA07_3'];
            $qA07_4 = $_SESSION['qA07_4'];
            $qA07_5 = $_SESSION['qA07_5'];

            $qA08_1 = $_SESSION['qA08_1'];
            $qA08_2 = $_SESSION['qA08_2'];
            $qA08_3 = $_SESSION['qA08_3'];
            $qA08_4 = $_SESSION['qA08_4'];
            $qA08_5 = $_SESSION['qA08_5'];

            $qA09_1 = $_SESSION['qA09_1'];
            $qA09_2 = $_SESSION['qA09_2'];
            $qA09_3 = $_SESSION['qA09_3'];
            $qA09_4 = $_SESSION['qA09_4'];
            $qA09_5 = $_SESSION['qA09_5'];

            $qA10_1 = $_SESSION['qA10_1'];
            $qA10_2 = $_SESSION['qA10_2'];
            $qA10_3 = $_SESSION['qA10_3'];
            $qA10_4 = $_SESSION['qA10_4'];
            $qA10_5 = $_SESSION['qA10_5'];

            $qA11_1 = $_SESSION['qA11_1'];
            $qA11_2 = $_SESSION['qA11_2'];
            $qA11_3 = $_SESSION['qA11_3'];
            $qA11_4 = $_SESSION['qA11_4'];
            $qA11_5 = $_SESSION['qA11_5'];

            $qA12_1 = $_SESSION['qA12_1'];
            $qA12_2 = $_SESSION['qA12_2'];
            $qA12_3 = $_SESSION['qA12_3'];
            $qA12_4 = $_SESSION['qA12_4'];
            $qA12_5 = $_SESSION['qA12_5'];

            $qA13_1 = $_SESSION['qA13_1'];
            $qA13_2 = $_SESSION['qA13_2'];
            $qA13_3 = $_SESSION['qA13_3'];
            $qA13_4 = $_SESSION['qA13_4'];
            $qA13_5 = $_SESSION['qA13_5'];

            $qA14_1 = $_SESSION['qA14_1'];
            $qA14_2 = $_SESSION['qA14_2'];
            $qA14_3 = $_SESSION['qA14_3'];
            $qA14_4 = $_SESSION['qA14_4'];
            $qA14_5 = $_SESSION['qA14_5'];

            $qA15_1 = $_SESSION['qA15_1'];
            $qA15_2 = $_SESSION['qA15_2'];
            $qA15_3 = $_SESSION['qA15_3'];
            $qA15_4 = $_SESSION['qA15_4'];
            $qA15_5 = $_SESSION['qA15_5'];

            $qA16_1 = $_SESSION['qA16_1'];
            $qA16_2 = $_SESSION['qA16_2'];
            $qA16_3 = $_SESSION['qA16_3'];
            $qA16_4 = $_SESSION['qA16_4'];
            $qA16_5 = $_SESSION['qA16_5'];

            $qA17_1 = $_SESSION['qA17_1'];
            $qA17_2 = $_SESSION['qA17_2'];
            $qA17_3 = $_SESSION['qA17_3'];
            $qA17_4 = $_SESSION['qA17_4'];
            $qA17_5 = $_SESSION['qA17_5'];

            $qA18_1 = $_SESSION['qA18_1'];
            $qA18_2 = $_SESSION['qA18_2'];
            $qA18_3 = $_SESSION['qA18_3'];
            $qA18_4 = $_SESSION['qA18_4'];
            $qA18_5 = $_SESSION['qA18_5'];

            $qA19_1 = $_SESSION['qA19_1'];
            $qA19_2 = $_SESSION['qA19_2'];
            $qA19_3 = $_SESSION['qA19_3'];
            $qA19_4 = $_SESSION['qA19_4'];
            $qA19_5 = $_SESSION['qA19_5'];

            $qA20_1 = $_SESSION['qA20_1'];
            $qA20_2 = $_SESSION['qA20_2'];
            $qA20_3 = $_SESSION['qA20_3'];
            $qA20_4 = $_SESSION['qA20_4'];
            $qA20_5 = $_SESSION['qA20_5'];

            $qA21_1 = $_SESSION['qA21_1'];
            $qA21_2 = $_SESSION['qA21_2'];
            $qA21_3 = $_SESSION['qA21_3'];
            $qA21_4 = $_SESSION['qA21_4'];
            $qA21_5 = $_SESSION['qA21_5'];

            $qA22_1 = $_SESSION['qA22_1'];
            $qA22_2 = $_SESSION['qA22_2'];
            $qA22_3 = $_SESSION['qA22_3'];
            $qA22_4 = $_SESSION['qA22_4'];
            $qA22_5 = $_SESSION['qA22_5'];

            $qA23_1 = $_SESSION['qA23_1'];
            $qA23_2 = $_SESSION['qA23_2'];
            $qA23_3 = $_SESSION['qA23_3'];
            $qA23_4 = $_SESSION['qA23_4'];
            $qA23_5 = $_SESSION['qA23_5'];

            $qA24_1 = $_SESSION['qA24_1'];
            $qA24_2 = $_SESSION['qA24_2'];
            $qA24_3 = $_SESSION['qA24_3'];
            $qA24_4 = $_SESSION['qA24_4'];
            $qA24_5 = $_SESSION['qA24_5'];

            $qA25_1 = $_SESSION['qA25_1'];
            $qA25_2 = $_SESSION['qA25_2'];
            $qA25_3 = $_SESSION['qA25_3'];
            $qA25_4 = $_SESSION['qA25_4'];
            $qA25_5 = $_SESSION['qA25_5'];

            $qA26_1 = $_SESSION['qA26_1'];
            $qA26_2 = $_SESSION['qA26_2'];
            $qA26_3 = $_SESSION['qA26_3'];
            $qA26_4 = $_SESSION['qA26_4'];
            $qA26_5 = $_SESSION['qA26_5'];

            $qA27_1 = $_SESSION['qA27_1'];
            $qA27_2 = $_SESSION['qA27_2'];
            $qA27_3 = $_SESSION['qA27_3'];
            $qA27_4 = $_SESSION['qA27_4'];
            $qA27_5 = $_SESSION['qA27_5'];

            $qA28_1 = $_SESSION['qA28_1'];
            $qA28_2 = $_SESSION['qA28_2'];
            $qA28_3 = $_SESSION['qA28_3'];
            $qA28_4 = $_SESSION['qA28_4'];
            $qA28_5 = $_SESSION['qA28_5'];

            $qA29_1 = $_SESSION['qA29_1'];
            $qA29_2 = $_SESSION['qA29_2'];
            $qA29_3 = $_SESSION['qA29_3'];
            $qA29_4 = $_SESSION['qA29_4'];
            $qA29_5 = $_SESSION['qA29_5'];

?>

Tímto

for($i = 0; $i <= 2; $i++) {
                for($j = 0; $j <= 9; $j++) {
                    for($k = 1; $k <= 5; $k++) {
                         if (isset($_SESSION['qA_' . $i . $j. '_' . $k])) {
                            '$qA_' . $i . $j. '_' . $k = $_SESSION['qA_' . $i . $j. '_' . $k];

ale někde mám chybu, jelikož mi to řve už v programu NetBeams. .

 
Nahoru Odpovědět
21.2.2017 10:23
Avatar
Jiří Fencl
Člen
Avatar
Jiří Fencl:21.2.2017 10:30

Nojo to si musis nejdriv precist, jak se v php delaji promenne nazvy promennych :D
toto:

'$qA_' . $i . $j. '_' . $k = $_SESSION['qA_' . $i . $j. '_' . $k];

prirazujes textovymu retezci hodnotu... coz je nesmysl
musis to obalit:

${'qA_' . $i . $j. '_' . $k} = $_SESSION['qA_' . $i . $j. '_' . $k];
 
Nahoru Odpovědět
21.2.2017 10:30
Avatar
Zdenek
Člen
Avatar
Odpovídá na Jiří Fencl
Zdenek:21.2.2017 11:44

Hláška "Undefined index" u definice proměnných sice zmizela, ale objevuje se teď u všech VALUES při zápisu do DB. Tím pádem se ani data nezapisují do DB. Takže asi předchozí zápis nebude optimální.

$query = "INSERT INTO tabulka
                    (datum,time,nick,emailaddress,age,sex,
                     qA01_1,qA01_2,qA01_3,qA01_4,qA01_5,
                     qA02_1,qA02_2,qA02_3,qA02_4,qA02_5,
                     qA03_1,qA03_2,qA03_3,qA03_4,qA03_5,
                     qA04_1,qA04_2,qA04_3,qA04_4,qA04_5,
                     qA05_1,qA05_2,qA05_3,qA05_4,qA05_5,
                     qA06_1,qA06_2,qA06_3,qA06_4,qA06_5,
                     qA07_1,qA07_2,qA07_3,qA07_4,qA07_5,
                     qA08_1,qA08_2,qA08_3,qA08_4,qA08_5,
                     qA09_1,qA09_2,qA09_3,qA09_4,qA09_5,
                     qA10_1,qA10_2,qA10_3,qA10_4,qA10_5,
                     qA11_1,qA11_2,qA11_3,qA11_4,qA11_5,
                     qA12_1,qA12_2,qA12_3,qA12_4,qA12_5,
                     qA13_1,qA13_2,qA13_3,qA13_4,qA13_5,
                     qA14_1,qA14_2,qA14_3,qA14_4,qA14_5,
                     qA15_1,qA15_2,qA15_3,qA15_4,qA15_5,
                     qA16_1,qA16_2,qA16_3,qA16_4,qA16_5,
                     qA17_1,qA17_2,qA17_3,qA17_4,qA17_5,
                     qA18_1,qA18_2,qA18_3,qA18_4,qA18_5,
                     qA19_1,qA19_2,qA19_3,qA19_4,qA19_5,
                     qA20_1,qA20_2,qA20_3,qA20_4,qA20_5,
                     qA21_1,qA21_2,qA21_3,qA21_4,qA21_5,
                     qA22_1,qA22_2,qA22_3,qA22_4,qA22_5,
                     qA23_1,qA23_2,qA23_3,qA23_4,qA23_5,
                     qA24_1,qA24_2,qA24_3,qA24_4,qA24_5,
                     qA25_1,qA25_2,qA25_3,qA25_4,qA25_5,
                     qA26_1,qA26_2,qA26_3,qA26_4,qA26_5,
                     qA27_1,qA27_2,qA27_3,qA27_4,qA27_5,
                     qA28_1,qA28_2,qA28_3,qA28_4,qA28_5,
                     qA29_1,qA29_2,qA29_3,qA29_4,qA29_5,
                     qA30_1,qA30_2,qA30_3,qA30_4,qA30_5) VALUES
                    ('$datum', '$time', '$nick', '$emailaddress', '$age', '$sex',
//odtud až dokonce mi to háže "Undefined variable"
                    '$qA01_1', '$qA01_2', '$qA01_3', '$qA01_4', '$qA01_5',
                    '$qA02_1', '$qA02_2', '$qA02_3', '$qA02_4', '$qA02_5',
                    '$qA03_1', '$qA03_2', '$qA03_3', '$qA03_4', '$qA03_5',
                    '$qA04_1', '$qA04_2', '$qA04_3', '$qA04_4', '$qA04_5',
                    '$qA05_1', '$qA05_2', '$qA05_3', '$qA05_4', '$qA05_5',
                    '$qA06_1', '$qA06_2', '$qA06_3', '$qA06_4', '$qA06_5',
                    '$qA07_1', '$qA07_2', '$qA07_3', '$qA07_4', '$qA07_5',
                    '$qA08_1', '$qA08_2', '$qA08_3', '$qA08_4', '$qA08_5',
                    '$qA09_1', '$qA09_2', '$qA09_3', '$qA09_4', '$qA09_5',
                    '$qA10_1', '$qA10_2', '$qA10_3', '$qA10_4', '$qA10_5',
                    '$qA11_1', '$qA11_2', '$qA11_3', '$qA11_4', '$qA11_5',
                    '$qA12_1', '$qA12_2', '$qA12_3', '$qA12_4', '$qA12_5',
                    '$qA13_1', '$qA13_2', '$qA13_3', '$qA13_4', '$qA13_5',
                    '$qA14_1', '$qA14_2', '$qA14_3', '$qA14_4', '$qA14_5',
                    '$qA15_1', '$qA15_2', '$qA15_3', '$qA15_4', '$qA15_5',
                    '$qA16_1', '$qA16_2', '$qA16_3', '$qA16_4', '$qA16_5',
                    '$qA17_1', '$qA17_2', '$qA17_3', '$qA17_4', '$qA17_5',
                    '$qA18_1', '$qA18_2', '$qA18_3', '$qA18_4', '$qA18_5',
                    '$qA19_1', '$qA19_2', '$qA19_3', '$qA19_4', '$qA19_5',
                    '$qA20_1', '$qA20_2', '$qA20_3', '$qA20_4', '$qA20_5',
                    '$qA21_1', '$qA21_2', '$qA21_3', '$qA21_4', '$qA21_5',
                    '$qA22_1', '$qA22_2', '$qA22_3', '$qA22_4', '$qA22_5',
                    '$qA23_1', '$qA23_2', '$qA23_3', '$qA23_4', '$qA23_5',
                    '$qA24_1', '$qA24_2', '$qA24_3', '$qA24_4', '$qA24_5',
                    '$qA25_1', '$qA25_2', '$qA25_3', '$qA25_4', '$qA25_5',
                    '$qA26_1', '$qA26_2', '$qA26_3', '$qA26_4', '$qA26_5',
                    '$qA27_1', '$qA27_2', '$qA27_3', '$qA27_4', '$qA27_5',
                    '$qA28_1', '$qA28_2', '$qA28_3', '$qA28_4', '$qA28_5',
                    '$qA29_1', '$qA29_2', '$qA29_3', '$qA29_4', '$qA29_5',
                    '$qA30_1', '$qA30_2', '$qA30_3', '$qA30_4', '$qA30_5')";
            //if($query){echo 'data has been placed'}
            mysql_query($query) or die(mysql_error());
 
Nahoru Odpovědět
21.2.2017 11:44
Avatar
Odpovídá na Zdenek
Michal Štěpánek:21.2.2017 13:11

Asi se budu opakovat, ale jak jsem psal výše...

Být tebou, tak ty varchary změním na int a hodnocení pak třeba na 0,1,2 místo NULL,0,1

Ušetříš si tím spooooustu práce s ošetřováním "NULLů"

Nahoru Odpovědět
21.2.2017 13:11
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Zdenek
Člen
Avatar
Odpovídá na Michal Štěpánek
Zdenek:21.2.2017 13:18

Asi máš pravdu, začínám to pociťovat na každém kroku.

 
Nahoru Odpovědět
21.2.2017 13:18
Avatar
Zdenek
Člen
Avatar
Odpovídá na Michal Štěpánek
Zdenek:21.2.2017 16:11

Tím pádem se znovu vracím k otázce, jak vyberu poslední záznam, kde potřebuji sečíst všechny hodnoty nabývající 1 ?

Půjde toto nějak jednoduše upravit?

$qry = mysql_query("SELECT (qA01_1 + ...  qA30_5) FROM tabulka
WHERE ID = (SELECT MAX(ID) FROM tabulka)");

Dále budu muset ošetřit prázdné proměnné, tedy ty otázky, které nebudou vybrány nabudou hodnoty 0 .
tzn. z těchto proměnných můžou nabývat hodnot 0 tj. otázka není vybrána, 1 ot. je vybrána a správně, 5 ot. je vybrána, ale špatně zodpovězena.

            $qA01_1 = $_SESSION['qA01_1'];
            $qA01_2 = $_SESSION['qA01_2'];
            $qA01_3 = $_SESSION['qA01_3'];
            $qA01_4 = $_SESSION['qA01_4'];
            $qA01_5 = $_SESSION['qA01_5'];

// otázky qA01_1 až qA29_5

            $qA29_1 = $_SESSION['qA29_1'];
            $qA29_2 = $_SESSION['qA29_2'];
            $qA29_3 = $_SESSION['qA29_3'];
            $qA29_4 = $_SESSION['qA29_4'];
            $qA29_5 = $_SESSION['qA29_5'];

To jsem malinko mimo. Byl by nápad, prosím?

 
Nahoru Odpovědět
21.2.2017 16:11
Avatar
Odpovídá na Zdenek
Michal Štěpánek:22.2.2017 5:22

Nevím, jestli je to nejlepší řešení, ale zkusil bych to nesčítat přímo v tom dotazu, tam bych to jen "vyselectoval". Pak bych ty hodnoty uložil do nějaké kolekce, tu bych pak už v phpčku prošel cyklem a sčítal ty "správné" hodnoty

Nahoru Odpovědět
22.2.2017 5:22
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Zdenek
Člen
Avatar
Odpovídá na Michal Štěpánek
Zdenek:27.2.2017 21:04

Tak hodny uložené do DB mám nastavené jako INT., nabývají hodnot 0 nebo 1 nebo 5, ale to "vyselectovani" např. posledního ID, kde chci vybrat sloupec obsahující 1 je pro mě nadlický úkol. Věděl by někdo prosím, co s tím ?

 
Nahoru Odpovědět
27.2.2017 21:04
Avatar
Odpovídá na Zdenek
Michal Štěpánek:28.2.2017 6:58

Vyber všechny "sloupce" toho posledního záznamu a pak si je cyklem projdi. Vytvoř si nějakou proměnnou "součet" a když při procházení cyklu bude hodnota toho sloupce = 1, tak ji přičteš do té proměnné...

Nahoru Odpovědět
28.2.2017 6:58
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Zdenek
Člen
Avatar
Odpovídá na Michal Štěpánek
Zdenek:28.2.2017 16:07

Ano, to si už psal, ale nedaří se mi to napsat v SQL dotazu, resp.v PHP. Zkoušel jsem kdo ví co, ale bez mučení se přiznám, že jsem nato krátký. Nevím jak to napsat, aby to dělalo co potřebuji.

 
Nahoru Odpovědět
28.2.2017 16:07
Avatar
Odpovídá na Zdenek
Neaktivní uživatel:28.2.2017 18:27

Zkus to takhle ;-)

SELECT MAX(id), time, nick, emailaddress, age, sex, ifnull(qA01_1, 0) + ifnull(qA01_2, 0) + ifnull(qA01_3, 0) ... + ifnull(qA30_5) AS VotesSum FROM tabulka;
Editováno 28.2.2017 18:27
Nahoru Odpovědět
28.2.2017 18:27
Neaktivní uživatelský účet
Avatar
Zdenek
Člen
Avatar
Odpovídá na Neaktivní uživatel
Zdenek:1.3.2017 21:45

Tohle sice sčítá, ale ne jak bych potřeboval. Potřeboval bych sečíst pouze případy, kdy nabude qA01_1 až qA30_5 hodnotou 1. Může ještě nabývat hodnoty 0 nebo 5, ale ty nepotřebuji sčítat. Děkuji za radu.

 
Nahoru Odpovědět
1.3.2017 21:45
Avatar
Odpovídá na Zdenek
Michal Štěpánek:2.3.2017 6:40

Mrkni se <a href="http://­www.itnetwork­.cz/php/databa­ze/php-tutorial-databaze-pro-zacatecniky-formular-a-vypis-dat-z-tabulky>SEM</a>, je tam návod jak vypsat data z tabulky. Pomocí "foreach" projdeš výsledek dotazu a pokud bude hodnota sloupce rovna 1 přičteš ji do připravené proměnné...

Nahoru Odpovědět
2.3.2017 6:40
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Zdenek
Člen
Avatar
Odpovídá na Michal Štěpánek
Zdenek:2.3.2017 7:38

Díky za nasměrování, ale tvůj odkaz mi píše "Stránka, na kterou se odkazujete, byla pravděpodobně přesunuta.". 8-)

 
Nahoru Odpovědět
2.3.2017 7:38
Avatar
Odpovídá na Zdenek
Michal Štěpánek:2.3.2017 7:50

http://www.itnetwork.cz/…at-z-tabulky
sekce PHP -> Databáze pro začátečníky -> Formulář a výpis dat z databáze do tabulky v PHP
Nicméně to v podstatě už máš, jen musíš výsledek projít cyklem a v něm sčítat potřebné hodnoty...

Nahoru Odpovědět
2.3.2017 7:50
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Zdenek
Člen
Avatar
Odpovídá na Michal Štěpánek
Zdenek:3.3.2017 13:24

Šlo by nějak takhle ? Akorád nevím jak na zápis toho, kde qA01_1 až qA05_30 obsahuje hodnotu 1.

$qry = mysql_query("SELECT (ifnull(qA01_1, 0) + ifnull(qA01_2, 0) + ifnull(qA01_3, 0) ... + ifnull(qA30_5))                             FROM tabulka
                                WHERE ID = (SELECT MAX(ID) FROM tabulka)");

                echo('<h2>Součet všech sloupců mající hodnotu "1" posledniho ID (ostatní sloupce nabývající "0" nebo "5" nesčítat)</h2><table border="1">');

                foreach ($qry as $u)
                {
                        echo('</td><td>' . htmlspecialchars(for($i = 0; $i <= 3; $i++) {
                                                                                        for($j = 0; $j <= 9; $j++) {
                                                                                                for($k = 1; $k <= 5; $k++) {
                                                                                                $u['qA_' . $i . $j. '_' . $k]));

                        echo('</td></tr>');

                }
                echo('</table>');
 
Nahoru Odpovědět
3.3.2017 13:24
Avatar
Odpovídá na Zdenek
Michal Štěpánek:3.3.2017 16:46

teoreticky i jo, ale někde bys měl ještě páchat to sčítání, takže bys měl někde před cyklem definovat proměnnou a do ní v cyklu přičítat, pokud

$u['qA_' . $i . $j. '_' . $k] = 1
Editováno 3.3.2017 16:47
Nahoru Odpovědět
3.3.2017 16:46
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Zdenek
Člen
Avatar
Odpovídá na Michal Štěpánek
Zdenek:4.3.2017 20:55

Tohle jsem vypotil, ale někde musím dělat chybu, nefunguje mi to. Asi ten součet mám špatně napsaný.

$soucet = 0;
                   for ($i = 0; $i <= 3; $i++) {
                       for($j = 0; $j <= 9; $j++) {
                           for($k = 1; $k <= 5; $k++){
                               $u = 'qA_' . $i . $j. '_' . $k;
                               $soucet += ($u = 1);
               }}}


                   echo('<h2>Hodnocení</h2><table border="1">');

                       foreach ($qry as $soucet)
                           {
                           echo('</td><td>' . htmlspecialchars($soucet));

                                   echo('</td></tr>');

                           }
                   echo('</table>');
 
Nahoru Odpovědět
4.3.2017 20:55
Avatar
Michal Štěpánek:5.3.2017 7:56

Nejsem phpčkář, ale bude to nějak takhle v tom cyklu musíš mít podmínku (nevím, jestli je správně syntaxe)

If($u==1)
{$soucet+=1}

A po skončení cyklu musíš ten $soucet někde zobrazit.

Nahoru Odpovědět
5.3.2017 7:56
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Zdenek
Člen
Avatar
Odpovídá na Michal Štěpánek
Zdenek:5.3.2017 17:08

To já taky nejsem PHPčkář, jsem jen začátečník. Zkouším to, ale jak píšeš, ta syntaxe bude asi špatně.

$qry1 = mysql_query("SELECT (ifnull(qA01_1, 0) + ifnull(qA01_2, 0) + ifnull(qA01_3, 0) + ifnull(qA01_4, 0) + ifnull(qA01_5, 0) +
                    ifnull(qA02_1, 0) + ifnull(qA02_2, 0) + ifnull(qA02_3, 0) + ifnull(qA02_4, 0) + ifnull(qA02_5, 0) +
                    ifnull(qA03_1, 0) + ifnull(qA03_2, 0) + ifnull(qA03_3, 0) + ifnull(qA03_4, 0) + ifnull(qA03_5, 0) +
                    ifnull(qA04_1, 0) + ifnull(qA04_2, 0) + ifnull(qA04_3, 0) + ifnull(qA04_4, 0) + ifnull(qA04_5, 0) +
                    ifnull(qA05_1, 0) + ifnull(qA05_2, 0) + ifnull(qA05_3, 0) + ifnull(qA05_4, 0) + ifnull(qA05_5, 0) +
                    ifnull(qA06_1, 0) + ifnull(qA06_2, 0) + ifnull(qA06_3, 0) + ifnull(qA06_4, 0) + ifnull(qA06_5, 0) +
                    ifnull(qA07_1, 0) + ifnull(qA07_2, 0) + ifnull(qA07_3, 0) + ifnull(qA07_4, 0) + ifnull(qA07_5, 0) +
                    ifnull(qA08_1, 0) + ifnull(qA08_2, 0) + ifnull(qA08_3, 0) + ifnull(qA08_4, 0) + ifnull(qA08_5, 0) +
                    ifnull(qA09_1, 0) + ifnull(qA09_2, 0) + ifnull(qA09_3, 0) + ifnull(qA09_4, 0) + ifnull(qA09_5, 0) +
                    ifnull(qA10_1, 0) + ifnull(qA10_2, 0) + ifnull(qA10_3, 0) + ifnull(qA10_4, 0) + ifnull(qA10_5, 0) +
                    ifnull(qA11_1, 0) + ifnull(qA11_2, 0) + ifnull(qA11_3, 0) + ifnull(qA11_4, 0) + ifnull(qA11_5, 0) +
                    ifnull(qA12_1, 0) + ifnull(qA12_2, 0) + ifnull(qA12_3, 0) + ifnull(qA12_4, 0) + ifnull(qA12_5, 0) +
                    ifnull(qA13_1, 0) + ifnull(qA13_2, 0) + ifnull(qA13_3, 0) + ifnull(qA13_4, 0) + ifnull(qA13_5, 0) +
                    ifnull(qA14_1, 0) + ifnull(qA14_2, 0) + ifnull(qA14_3, 0) + ifnull(qA14_4, 0) + ifnull(qA14_5, 0) +
                    ifnull(qA15_1, 0) + ifnull(qA15_2, 0) + ifnull(qA15_3, 0) + ifnull(qA15_4, 0) + ifnull(qA15_5, 0) +
                    ifnull(qA16_1, 0) + ifnull(qA16_2, 0) + ifnull(qA16_3, 0) + ifnull(qA16_4, 0) + ifnull(qA16_5, 0) +
                    ifnull(qA17_1, 0) + ifnull(qA17_2, 0) + ifnull(qA17_3, 0) + ifnull(qA17_4, 0) + ifnull(qA17_5, 0) +
                    ifnull(qA18_1, 0) + ifnull(qA18_2, 0) + ifnull(qA18_3, 0) + ifnull(qA18_4, 0) + ifnull(qA18_5, 0) +
                    ifnull(qA19_1, 0) + ifnull(qA19_2, 0) + ifnull(qA19_3, 0) + ifnull(qA19_4, 0) + ifnull(qA19_5, 0) +
                    ifnull(qA20_1, 0) + ifnull(qA20_2, 0) + ifnull(qA20_3, 0) + ifnull(qA20_4, 0) + ifnull(qA20_5, 0) +
                    ifnull(qA21_1, 0) + ifnull(qA21_2, 0) + ifnull(qA21_3, 0) + ifnull(qA21_4, 0) + ifnull(qA21_5, 0) +
                    ifnull(qA22_1, 0) + ifnull(qA22_2, 0) + ifnull(qA22_3, 0) + ifnull(qA22_4, 0) + ifnull(qA22_5, 0) +
                    ifnull(qA23_1, 0) + ifnull(qA23_2, 0) + ifnull(qA23_3, 0) + ifnull(qA23_4, 0) + ifnull(qA23_5, 0) +
                    ifnull(qA24_1, 0) + ifnull(qA24_2, 0) + ifnull(qA24_3, 0) + ifnull(qA24_4, 0) + ifnull(qA24_5, 0) +
                    ifnull(qA25_1, 0) + ifnull(qA25_2, 0) + ifnull(qA25_3, 0) + ifnull(qA25_4, 0) + ifnull(qA25_5, 0) +
                    ifnull(qA26_1, 0) + ifnull(qA26_2, 0) + ifnull(qA26_3, 0) + ifnull(qA26_4, 0) + ifnull(qA26_5, 0) +
                    ifnull(qA27_1, 0) + ifnull(qA27_2, 0) + ifnull(qA27_3, 0) + ifnull(qA27_4, 0) + ifnull(qA27_5, 0) +
                    ifnull(qA28_1, 0) + ifnull(qA28_2, 0) + ifnull(qA28_3, 0) + ifnull(qA28_4, 0) + ifnull(qA28_5, 0) +
                    ifnull(qA29_1, 0) + ifnull(qA29_2, 0) + ifnull(qA29_3, 0) + ifnull(qA29_4, 0) + ifnull(qA29_5, 0) +
                    ifnull(qA30_1, 0) + ifnull(qA30_2, 0) + ifnull(qA30_3, 0) + ifnull(qA30_4, 0) + ifnull(qA30_5, 0))
                    FROM tabulka WHERE ID = (SELECT MAX(ID) FROM tabulka)");

               $soucet = 0;
                    for ($i = 0; $i <= 3; $i++) {
                        for($j = 0; $j <= 9; $j++) {
                            for($k = 1; $k <= 5; $k++){
                                $u = 'qA_' . $i . $j. '_' . $k;
                                if ($u==1){
                                    $soucet+=1;
                                }
                }}}

                    echo('<h2>Hodnocení</h2><table border="1">');
                        foreach ($qry1 as $soucet)
                            {
                            echo('</td><td>' . htmlspecialchars($soucet));
                                    echo('</td></tr>');
                            }
                    echo('</table>');

Pak mi to vyplivne hlášku :

Warning: Invalid argument supplied for foreach() in C:\xampp\htdoc­s\app_form\in­put_form32_pro­cess.php on line 361

 
Nahoru Odpovědět
5.3.2017 17:08
Avatar
Odpovídá na Zdenek
Michal Štěpánek:5.3.2017 20:31

Který řádek je 361?

Editováno 5.3.2017 20:34
Nahoru Odpovědět
5.3.2017 20:31
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 50 zpráv z 57.