Avatar
michal Čepelák:14. září 13:11

Zdravím,
asi budu mít blbý dotaz ale nemohu na to stále příjít.
Mám pole s keys ale nemohu stále pochopit jak dostanu v poly s keys hodnoty do toho keys.
Samozřejmě pokud to dám ručně tak je to jasný ale jak do keys dostanu data třeba z formuláře nevím. Asi jsem to špatně pochopil nebo nevím. Je možné jako hodnotu keys zadat proměnou?

Děkuji

 
Odpovědět 14. září 13:11
Avatar
dez1nd
Člen
Avatar
Odpovídá na michal Čepelák
dez1nd:14. září 13:22

Ahoj, to je teda něco přelouskat ten tvůj dotaz :D, snad jsem tě pochopil správně :D

$db->query('SELECT neco FROM tabulka WHERE neco = ?',$neco)->fetchPairs('nazevSloupceCoSePouzijeJakoKlicPrvku');
Editováno 14. září 13:24
 
Nahoru Odpovědět  -1 14. září 13:22
Avatar
Roman
Člen
Avatar
Odpovídá na michal Čepelák
Roman:14. září 15:42
$var="jablko";
$hashArray[$var]="je sladke";
echo $hashArray[$var];

Jinak hledej hash array nebo-li hash pole

 
Nahoru Odpovědět 14. září 15:42
Avatar
Jirka Jr
Člen
Avatar
Odpovídá na michal Čepelák
Jirka Jr:15. září 5:15

co uz jsi zkusil? tj. muzes sem hodit svuj rozdelany kod?

co chces docilit? tj. co chces aby ta webovka, kterou delas, delala?

 
Nahoru Odpovědět 15. září 5:15
Avatar
michal Čepelák:16. září 1:00

čeho jsem chtěl docílit s kličemi v poly to už se mi povedlo :), akorát bych ještě potřeboval poradit s tímto formulářem.

<form method="POST">

                <select name="typ_kabinetu" class="ui dropdown">
                    <option value="televize" >Synot</option>
                    <option value="video" >Kajot</option>
                    <option value="radio" > Apollo</option>
                </select>

            <table>

        <?php
        Db::connect();
                            $dily = Db::queryAll('SELECT * FROM sklad WHERE del=0');

                            foreach ($dily as $dilyrep)
                            {


                                echo '

                                   </tr>


                                <td><input type="hidden"  name="dily['.$dilyrep['sklKarta'].']" value=" '.$dilyrep['sklKarta'].'"  />'.$dilyrep['nazev'].' '.$dilyrep['sklKarta'].'</td>
                                    <td><input type="text" name="pocet['.$dilyrep['sklKarta'].']"    > </td>
                                 </tr>
                                        ';

                            }
                            ?>

            </table>

            <button  name="cancel">Zrušit</button>

            <button  name="addre" >
                Uložit</button>


        </form>

Ve formuláři po načtení dat z databáze jsou položky ventilátor a zdroj.
po odeslání formuláře ho přijme tento skript, který ho zpracuje a odešle do databáze

Db::connect();
if (isset($_POST['addre'])){


 $dily = $_POST['dily'];
 $pocet = $_POST['pocet'];
 $typ = $_POST['typ_kabinetu'];
foreach ($dily as $key=>$dilly){


@$output .= $comma .$dilly."&nbsp;-&nbsp;" .$pocet[$key]. "&nbsp;ks";
@$comma = ',';

}
$sql = Db::query('INSERT INTO repasy (datum, typ_kabinetu,mnozstvi) VALUES (NOW(), ?,?) ',
           $typ, $output );
die;

Je možné udělat ošetření aby když u hodnoty ventilátor nic nezadám se toto pole nepřipsalo do databáze?

Děkuji

 
Nahoru Odpovědět 16. září 1:00
Avatar
Zdeněk Srb
Člen
Avatar
Zdeněk Srb:16. září 9:34

Pomocí foreach si projdes pole $_POST a vyhážeš klíče co namají hodnotu pomocí unset.

 
Nahoru Odpovědět 16. září 9:34
Avatar
Odpovídá na Zdeněk Srb
michal Čepelák:17. září 0:04

odeslal jsem formulář, který není úplně vyplněný vic příklad

addre
pocet[m1523]    1
pocet[m1542]
pocet[M1548]    2
pocet[m5596]    3
pocet[M5896]

po spracováním foreach vypíše
m1523 - 1 ks,m1542 - ks,M1548 - 2 ks,M5896 - ks,m5596 - 3 ks

lze odstranit z pole při zpracování pole klíče m1542 a m5896 nepřišel jsem zatím jak na to už zkouším zhánět na internetu ale zatím mi nic nefunguje. Pročital jsem práci s polem ale buď jsem ty funkce špatně pochopil protože jsem nezjistil, kterou bych to mohl vyfiltrovat.

Děkuji za radu a za malou ukázku jak to poskládát

Editováno 17. září 0:04
 
Nahoru Odpovědět 17. září 0:04
Avatar
Odpovídá na michal Čepelák
Uživatel sítě :17. září 0:12

Prostě to přeskoč, pokud nemá hodnotu:

if($pocet[$key] == null){
    continue;
}
Nahoru Odpovědět 17. září 0:12
Chybami se člověk učí, běžte se učit jinam!
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 8 zpráv z 8.