Autor Zpráva
Dejv
Profil *
Dobrý večer,

řeším drobnou věc. Do databáze ukládám rezervace tak, že se vybrané datumy uloží za sebe oddělené středníkem.

dates='".implode(";", $_POST['checkeds'])."',
V db to pak vypadá např. takhle: 2013-03-6;2013-03-13;2013-03-20;2013-03-27

Teď potřebuji udělat do kalendáře podmínku, že pokud bude třeba danný datum (2013-03-20) v nějakém řádku mezi ostatními datumy, nevypíše se k datu checkbox pro zvolení.

Nevím, jak do dotazu, prý je na to vhodné LIKE, ale fakt nevím, jak použít. Poradili by jste mi prosím?

Děkuji.
Micruss
Profil
vyřešil bych to in_array();

<?
if(in_array($datum, $databaze)) {
// ... nic tady
} else {
echo'<input type="checkbox" name="reveserve" value="datum">';
}
?>
Dejv
Profil *
Micruss:
Warning: in_array() expects parameter 2 to be array, resource given .....


Dejv:
Muj dotaz:
$sql = DB::query("SELECT id, dates, time, confirm                                                                                                                                
                         FROM prefix-rezervace`
                         WHERE confirm='0' 
                         ORDER BY id DESC");
ShiraNai7
Profil
Datumy by měly být ve zvláštní tabulkce. Pak bys mohl filtrování řešit rovnou přes LEFT JOIN na straně databáze.
donny
Profil
Ukadať viac hodnôt v jednom stĺpci je imho nezmysel, takmer vždy na to člvoek neskôr doplatí, jedná sa o veľmi bežnú chybu, viac v FAQ k databázam Více hodnot ve sloupci
Dejv
Profil *
donny:
OK, jak udělat hromadný insert, abych měl v druhé tabulce ID z první, kde je auto increment?
Vytvořil jsem si druhou tabulku:

id int(11) Auto Increment
date1 date
date2 date
date3 date
date4 date
date5 date
date6 date
date7 date
date8 date
date9 date
date10 date
date11 date
date12 date
date13 date
date14 date

Jak na tohle udělat hezký dotaz? Díky.
Tori
Profil
Dejv:
Bez auto_increment. V téhle tabulce budou jen vazby ID z první tabulky, a k tomu datum(y). Takže schéma nějak takhle:
id INT 
datum DATE
PRIMARY KEY (id, datum)
ID se tam budou můžou opakovat, ale pokaždé s jiným datumem.
Dejv
Profil *
Tori:
Jasně, upraveno. Teď jak na to vkládání?
Potřebuji asi udělat něco takového:

                    DB::query("INSERT INTO `" . _mysql_prefix . "-rezervace` SET  
                    dates='',                 
                    time='".time()."',
                    ip='".$_SERVER['REMOTE_ADDR']."',
                    confirm='0',
                    object='".$_POST['object']."',
                    firstname='".$_POST['firstname']."',
                    surname='".$_POST['surname']."',
                    street='".$_POST['street']."',
                    number='".$_POST['number']."',
                    city='".$_POST['city']."',
                    psc='".$_POST['psc']."',
                    phone='".$_POST['phone']."',
                    email='".$_POST['email']."',                    
                    people='".$_POST['people']."',
                    message='".$_POST['message']."'                   
                    
                    INSERT INTO `" . _mysql_prefix . "-rezervace-casy` SET"
                    foreach ($_POST['checkeds'] as $key => $val)
                    {
                        date.$key= $val
                    }"                
                    
                    ")
Tori
Profil
Dejv:
Když je to nový záznam, tak ho nejdřív vytvořte v hlavní tabulce, pak zjistěte ID vytvořeného záznamu (mysql_insert_id, nevím co používáte za DB vrstvu), a s tímto ID vložíte zadané datum(y): INSERT INTO rezervace-casy (id, datum) VALUES (1, '2013-01-01'), (1, '2013-01-02') atd.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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