Autor Zpráva
SkyVessel
Profil
Zdravím,
tak stránku, na které dělám mám už skoro hotovou. Teď už jen admin prostředí a ... tu jsem narazil na problém... Zkusím ho dobře popsat - snad se to bude dát pochopit...

Mám udělanou tabulku se skrytými form prvky, kde si uživatel nakliká údaje, které potřebuje, ty se poté odešlou ke zpracování jako pole (řešeno tady O:)).

Teď ty data admin načte z databáze a zobrazí se v podobné tabulce.
Problém: v stejný den si může zamluvit směnu více uživatelů. Ti se mi zobrazí, já si vyberu třeba třetího a odešlu -> do dbs se mi u něj uloží "1". A řeším situaci, dky si ten záznam otevřu znovu a chci to změnit na druhého. Jednoduše vykliknu checkbox třetího a zaškrtnu checkbox druhého. Při odeslání se mi u druhého uloží "1", ale jak mám poznat, že jsem odškrtnul třetího a potřebuji u něj nastavit "0"??

...snad jde pochopit, co jsem chtěl vyjádřit...
Someone
Profil
Všem zaškrtlým nastav 1 a ostatním nastav 0.
SkyVessel
Profil
Aha... no mohlo mě to napadnout dříve - nejdřív všem nastavím 0 a potom zpracuji odeslaný form a přiřadm jedničky :)... Díky

A teď trochu mysql...

V podstatě pomocí cyklu si do proměnné $dotaz2 nahážu to, co potřebuji zapsat do databáze a potom na konci dotaz jednou provedu.
<?php
        if (!empty($_POST['vyber'])) {  //  při odeslání formuláře
            $plan = $_POST['vyber'];
            
            $dotaz2 = "";
            foreach ($plan as $pln) {
            $den_smeny = substr("$pln",1,2);
            $smena_user = substr("$pln",0,1);
            if ($dotaz2 != "") $dotaz2 = "$dotaz2, ";  //  přidání čárky oddělující hodnoty
                $dotaz2 = "$dotaz2 ('$den_smeny', '$dalsi_mesic', '$smena_user', '$user[0]')";
            }
        }
        $dotaz2 = "INSERT INTO smena_user (den_smeny, mesic_smeny, smena_user, user) VALUES $dotaz2";
        $vysledek2 = mysql_query($dotaz2) or die (mysql_error());
?>

Výsledek je potom:"INSERT INTO smena_user (den_smeny, mesic_smeny, smena_user, user) VALUES ('5', '5', 'b', '3'), ('15', '5', 'a', '4'), ('15', '5', 'a', '2'), ('20', '5', 'a', '3')"

Lze tohle nějak udělat i s příkazem UPDATE?? Nebo musím pro každý řádek provést update zvlášť - nezahltí se to tím, když třeba v cyklu 60x udělám UPDATE?
myšleno takto:
<?php
    foreach ($plan as $pln) {
        $plan_data = explode("-", $pln);
        $dotaz3 = "UPDATE smena_user SET vybrany = '1' WHERE user = '$plan_data[0]', smena_user = '$plan_data[1]', den_smeny = '$plan_data[2]', mesic_smeny = '$pristi_mesic'";
        $vysledek3 = mysql_query($dotaz3) or die (mysql_error());
    }
?>
peta
Profil
Muzes zkusit INSERT INTO nebo pouzit transakce.
Kdyz mas nove tema, zaloz nove.
Moderátor jenikkozak: Druhý dotaz s prvním souvisí, založení duplicitního vlákna by nebylo žádoucí.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: