NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Zkrácení kódu pomocí funkce pole před odesláním do DB

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Zdenek
Člen
Avatar
Zdenek:11.2.2017 22:03

Ahojte,
potřeboval bych poradit, jak zkrátit dlouhý kód polem pro proměnné a zápis do DB. Níže uvedený kód je konec z formuláře, který sbírá z předchozích hlasování výsledky. Tzn., že např. $qA01_1 až $qA30_5 může mít hodnotu 1 nebo 0 nebo prázdnou hodnotu.

<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>

        <?php session_start();
            $nick = $_SESSION['nick'];
            $emailaddress = $_SESSION['emailaddress'];
            $age = $_SESSION['age'];
            $sex = $_SESSION['sex'] ;

// ad1 - Formular sbira vysledky hlasovani z predchozich otazek, ktere nabivaji hodnot 1 nebo 0 nebo je hodnota prazdna. Lze tento kod zkratit ?
            $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'];

            $qA30_1 = $_POST['qA30_1'];
            $qA30_2 = $_POST['qA30_2'];
            $qA30_3 = $_POST['qA30_3'];
            $qA30_4 = $_POST['qA30_4'];
            $qA30_5 = $_POST['qA30_5'];
             //MySQL Database Connect
             include "mysql_connect.php";

            $datum = date("d. m. Y"); // promena datum
            $time = date("G:i"); // promena cas

// ad.2 a 3 - lze nejak zkratit nize uvedene nazvy sloupcu resp. hodnot ?
            $query = "INSERT INTO abc1234
                    (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',
                    '$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());

        ?>
    </BODY>
</HTML>
 
Odpovědět
11.2.2017 22:03
Avatar
Petr Čech
Tvůrce
Avatar
Odpovídá na Zdenek
Petr Čech:11.2.2017 22:19

O polích jsi už někdy slyšel?
A nepoužívej funkce myslq_ , jsou nebezpečné. Místo toho se nauč PDO, popř. mysqli

Nahoru Odpovědět
11.2.2017 22:19
the cake is a lie
Avatar
Zdenek
Člen
Avatar
Zdenek:11.2.2017 22:30

Slyšel. Snažil jsem se proměnné nahradit tímto, ale asi někde dělám chybu. Proto jako začátečník s tím trošku bojuji. Děkuji za případnou radu.

$data = array();
           for($i = 0; $i <= 3; $i++) {
                for($j = 0; $j <= 9; $j++) {
                    for($k = 1; $k <= 5; $k++) {
                        $key = "qA_{$i}{$j}_{$k}";
                        $data[$key] = $_SESSION[$key];
                    }
                }
            }
 
Nahoru Odpovědět
11.2.2017 22:30
Avatar
Jan Lupčík
Tvůrce
Avatar
Odpovídá na Zdenek
Jan Lupčík:12.2.2017 8:28

To máš pak i do 39, ne? Co nějak takhle?

$data = array();
for ($i = 1; $i <= 30; $i++)
{
    for ($j = 1; $ <= 5; $j++)
    {
        $key = 'qA_' . str_pad($i, 2, '0', STR_PAD_LEFT) . '_' . $j;
        $data[$key] = $_SESSION[$key];
    }
}

Funkce str_pad ti zajistí 01, 02, ... :)

Nahoru Odpovědět
12.2.2017 8:28
TruckersMP vývojář
Avatar
Odpovídá na Zdenek
Martin Konečný (pavelco1998):12.2.2017 9:13

Ono ti to pravděpodobně fungovat bude, ale mít tolik a takové sloupce v DB signalizuje špatný návrh. Když bys potřeboval nějakou otázku přidat nebo odebrat, budeš měnit strukturu tabulky a kvůli tomu i hromadu kódu.

Jak poté s těmito daty pracuješ? Jak vypadá nějaký SELECT?

Nahoru Odpovědět
12.2.2017 9:13
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
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 5 zpráv z 5.