Autor Zpráva
Tomáš123
Profil
Zdravím,
Hneď na začiatok uvediem, že vlákno, ktoré by vyriešilo môj problém som nenašiel a s PHP iba začínam, tak prosím pochopte moje amatérske otázky. :-)

Tvorím web pre realitnú kanceláriu. Skoro každý realitný web obsahuje vyhľadávanie typu: "Okres, druh nehnuteľnosti, lokalita apod." (v mojom prípade užívateľ vyberie jednu z možností, napr. pri položke typ nehnuteľnosti je na výber: "všetky, predaj a prenájom".).

Chcel by som sa opýtať, ako vytvoriť vyhľadávanie v ktorom užívateľ zvolí jednu možnosť zo <select>u, skript vyhodnotí čo chce užívateľ vidieť a zobrazí iba výsledky súvisiace s hľadanou kategóriou. Je môj problém riešiteľný bez databázy?

Ďakujem za každú odpoveď.
janbarasek
Profil
Tomáš123:
Je môj problém riešiteľný bez databázy?
Je, ale dost komplikovaně a přišel bys o komfort s programováním.

užívateľ zvolí jednu možnosť zo <select>u, skript vyhodnotí čo chce užívateľ vidieť
Ulož data do MySql databáze a pak je tahej přes cykl, příklad hledání:
<?php
$aaa = mysql_query("select * from `tabulka` where (`kategorie` = 'nejaka_hodnota') limit 0,50");
while($data = mysql_fetch_array($aaa)) {
   // tady postupně vypíše všechny řádky (data), pro které odpovídá podmínka v dotazu.
}
?>

Dotaz můžeš libovolně upravit, vždy v závorce za "where" uváděj vzor, podle kterého chceš data číst. Jednotlivé data ze sloupců budou uložené v poli $data s indexem podle názvu sloupce. Pokud bys měl například sloupec "nazev", tak jej můžeš volat jako $data['nazev'];.
Tomáš123
Profil
janbarasek:
Ďakujem ti za poskytnuté riešenie, ale s databázou som nikdy nepracoval. Tomu, čo si napísal vôbec nerozumiem. Nechcem od teba ani od ostatných, aby mi tu vysvetlili funkcionalitu databázy a princíp ťahania údajov (nie preto, že by ma to nezaujímalo, ale preto, že by ste tu so mnou zabili veľa času).

Riešenie som si predstavoval skôr nejako takto:
Tomáš123:
Budeš musieť každému selectu priradiť nejaké id, po odoslaní porovnať hľadané id s id položky a tak vypísať hľadané údaje.“


Toto je iba príklad alebo skôr moja jednoduchá predstava ako by to mohlo fungovať. Samozrejme neviem ako presne to urobiť a preto sa pýtam vás skúsenejších.

Mohli by ste mi prosím navrhnúť nejaké riešenie bez databázy? Ďakujem za ochotu.
Joker
Profil
Tomáš123:
Je môj problém riešiteľný bez databázy?
Řešitelný bez databáze je, ale nejspíš to řešení bude složitější (u mnoha z nich budete muset ručně odprogramovat něco, co databáze už umí sama od sebe).
Tzn. jestli se databáze bojíte kvůli složitosti, tak databáze je právě ta jednodušší varianta.

Jaký způsob uložení dat plánujete a proč nechcete použít databázi?

janbarasek:
mysql_* funkce jsou zastaralé a neměly by se používat.
Tomáš123
Profil
Joker:
Prosím, tikaj mi...A ak ti vadí, že ti tikám ja, daj vedieť.

Jaký způsob uložení dat plánujete
V prvej vete som na to upozornil a tu je prvá vec, pri ktorej neviem čo sa pýtaš.

a proč nechcete použít databázi?
Nikdy som s databázou nepracoval, neviem ani ako ju otvoriť či sprevádzkovať. Skrátka o nej neviem nič.

zn. jestli se databáze bojíte kvůli složitosti, tak databáze je právě ta jednodušší varianta.
Dobre teda, nebudem tvrdohlavo žiadať iba riešenie v PHP. Môžeš mi teda priblížiť riešenie spojené s databázou. Prosím o text podobný tomu [#3]:
„Tomáš123:
Budeš musieť každému selectu priradiť nejaké id, po odoslaní porovnať hľadané id s id položky a tak vypísať hľadané údaje.“

Ďakujem za váš čas.
janbarasek
Profil
Tomáš123:
„Jaký způsob uložení dat plánujete“
V prvej vete som na to upozornil a tu je prvá vec, pri ktorej neviem čo sa pýtaš.
Pravděpodobně se Joker ptá na to, jestli chceš použít databázi MySql, nebo souborovou databázi a nebo něco úplně jiného.

Nikdy som s databázou nepracoval, neviem ani ako ju otvoriť či sprevádzkovať. Skrátka o nej neviem nič.
Pokud to s programováním myslíš aspoň trochu vážně, tak se s ní budeš muset naučit pracovat. Čím dříve začneš, tím to pro tebe bude lepší. Začátky nebudou lehké, ale zvládli jsme to tady všichni. Jestli umíš s Excelem, tak je to v některých věcech na podobný princip, jen MySql má víc možností.

Budeš musieť každému selectu priradiť nejaké id, po odoslaní porovnať hľadané id s id položky a tak vypísať hľadané údaje.‘
Přesně takto funguje databáze a tohle všechno řeší za tebe. Ty jen pošleš požadavek, že chceš všechny ID, které mají nějakou hodnotu a DB ti je prostě a jednoduše vrátí.

Ještě bys možná mohl použít víceúrovňové pole - které stejně budeš muset někam uložit. Pokud bys to chtěl uložit třeba do pole, tak jeho hodnoty můžeš mít v texťáku a pokaždé je parsovat (ale je to nepohodlné a značně pomalé + nebezpečné):
<?php
$data = '2,nějaký název|5, nějaký jiný název|3,a poslední název|4|1|9|7';
$parser = explode('|', $data); // vytvoří pole z hodnot
$i = 0;
while (isset($parser[$i])) {
   $parser2 = explode(',', $parser[$i], 2);
   echo $parser2[0]; // vypíše číslo
   echo $parser2[1]; // vypíše název
   echo '<br>'; // odřádkuje
   $i++;
}
?>
Tomáš123
Profil
janbarasek:
Pravděpodobně se Joker ptá na to, jestli chceš použít databázi MySql, nebo souborovou databázi a nebo něco úplně jiného.
Pravdepodobne MySQL. Len tak mimochodom, ako sa správne vyslovuje "MySQL"?

Pokud to s programováním myslíš aspoň trochu vážně, tak se s ní budeš muset naučit pracovat.
Mám v pláne naučiť sa s ňou pracovať, ale najprv som si chcel naštudovať samotné PHP.

Joker, janbarasek:
Z vašich doterajších príspevkov vidím, že danej problematike nerozumiem. Našťastie mám doma knihu o PHP 5 a MySQL. Prečítam ju a ozvem sa sem, keď budem rozumieť vašim radám.

Ďakujem.
juriad
Profil
Já to vyslovuji: majeskjůel

Web realitky je ze své podstaty vyžaduje jednak nějakou formu, ale hlavně mít promakanou správu nemovitostí.
Zkus si napsat na papír analýzu, začít můžeš případy použítí.
Běžný uživatel může:
- filtrovat/řadit nemovitosti podle parametrů:
  - lokalita
  - cena
  - datum přidání
- aktuální filtr může upravit
- zobrazit detail nemovitsoti
- vytisknout detail

Zaměstnanec realitky může:
- to samé jako běžný uživatel
- přidat nemovitost
- odebrat nemovitost
- upravit údaje o nemovitosti
- nastavit slevu
- k nemovitosti přidat/odebrat fotku
- nastavit, aby se nemovitost zobrazila na titulní stránce webu

A pak si ke každému bodu napiš jak přesně bude realizovaný, z jaké stránky na jakou uživatel přechází.

Jakmile toto budeš mít, pak se zamyslíš nad tím, kde a jak budou data uložená a jak budeš jednotlivé požadavky implementovat.
Zkusíš si to navrhnout a během toho počmárat hromadu papírů dokud nedojdeš do stavu, že jsi přesvědčený, že máš vše rozmyšlené. Stále se zabýváme návrhem, nikoli jak to bude zapsané v PHP. Neměl bys řešit drobnosti - jestli se bude zobrazovat galerie nemovitostí nebo seznam, jak má vypadat přihlašovací formulář, jestli udělat web responzivní nebo ne.
Vlastní programování pak bude mnohem jednodušší, bude až trochu nuda, protože tě už nemá co překvapit. Pokud tě něco překvapí a musíš změnit návrh, udělal jsi analýzu blbě.

Jedna z nejdůležitějších věcí, které budeš muset navrnout je úložiště všech dat takové, abys dokázal splnit všechny požadavky.
janbarasek
Profil
juriad:
Jedna z nejdůležitějších věcí, které budeš muset navrnout je úložiště všech dat takové, abys dokázal splnit všechny požadavky.
Jestli to chápu dobře, tak má buď vymyslet něco jako databázi, čemu bude moci snadno pokládat podobné filtrovací příkazy a získávat tak data, nebo se z toho zblázní a nikdy to nedokončí. A nebo použije tu databázi rovnou.
juriad
Profil
janbarasek:
To neříkám. Má projít všechny možnosti a zvážit je. Pokud přijde na to, že nejlepší bude ukládat podrobnosti třeba do xml souborů, bude to správné řešení. Bude pro něj mít racionální odůvodnění, ve kterém zahrne všechna kritéria: rozšíritelnost, spravovatelnost, rychlost implementace, očekávaná chybovost atd. Bude schopen si své rozhodnutí (před zákazníkem i konkurencí) obhájit. Měl by započítat čas, který bude věnovat učení a čas, který v budoucnu ušetří při úpravách a rozšíření.

Neříkám, že nemá použít databázi, na první pohled se jeví jako velice dobřé řešení, ve většině případů jím i bude. Ale třeba realitka má nějaký vnitřní systém pro správu nemovitostí a k němu se bude muset připojit - veškeré úpravy budou skrze něj a on bude data jen zobrazovat na webu. Pak nemusí být dobrý nápad mít všechna data ve dvou systémech.

Proto říkám, že kritické je rozmyslet, kde ta data a v jaké formě budou. A nezatracovat nějaké řešení, protože tady někdo říká (bez znalosti projektu), že přes soubory je to blbost. Ale nejspíš i bude.

Začít by ale měl tim, že zjistí, co přesně zákazník chce a dává k dispozici.
Joker
Profil
Tomáš123:
Prosím, tikaj mi...A ak ti vadí, že ti tikám ja, daj vedieť.
Nevadí, jen já na této diskusi lidem implicitně vykám a asi si to nebudu pamatovat :-)

V prvej vete som na to upozornil a tu je prvá vec, pri ktorej neviem čo sa pýtaš.
No, v realitní kanceláři půjde předpokládám o inzeráty.
Inzeráty se na webu musejí odněkud zobrazovat, musejí být někde uložené. Tak se ptám na to, jaké je úložiště.
Asi nejlepší je databáze (která je pro takový účel i navržená), ale jde data ukládat třeba do XML, do souborů, nebo ještě jinak.

Nikdy som s databázou nepracoval, neviem ani ako ju otvoriť či sprevádzkovať. Skrátka o nej neviem nič.
No, tak je čas se začít učit :-)

Pravdepodobne MySQL. Len tak mimochodom, ako sa správne vyslovuje "MySQL"?
Podle autorů se to má číst [maj es kjů el]

Našťastie mám doma knihu o PHP 5 a MySQL. Prečítam ju a ozvem sa sem, keď budem rozumieť vašim radám.
Fajn, případně Vítejte

Ale nejlepší začátek by měla být ta analýza, jak píše juriad
Tomáš123
Profil
juriad, janbarasek, Joker:
Ďakujem.

Fajn, případně Vítejte
Péhapko som už v minulosti čítal, ale ako pozerám, veľa tam toho pribudlo. Určite si to prečítam.

Podle autorů se to má číst [maj es kjů el]
Predpokladám, že ja ako Slovák by som to mal čítať: [maj es kve el]. Keď tak opravte ma.

juriad:
A ešte, aby som nezabudol. Dočítal som sa, že niekam odchádzaš. Šťastnú cestu a nech sa ti tam darí.
jenikkozak
Profil
janbarasek:
Dotaz můžeš libovolně upravit, vždy v závorce za "where" uváděj vzor, podle kterého chceš data číst.
Ta závorka je tam nadbytečná.

Tomáš123:
Predpokladám, že ja ako Slovák by som to mal čítať: [maj es kve el]. Keď tak opravte ma.
To platí pouze v případě, že na Slovensku máte nějakou vlastní slovenskou angličtinu. :-)
janbarasek
Profil
jenikkozak:
„Dotaz můžeš libovolně upravit, vždy v závorce za "where" uváděj vzor, podle kterého chceš data číst.“
Ta závorka je tam nadbytečná.
Uvedl jsem jí tam záměrně, aby Tomáš123 jasně poznal, kam ještě může psát a kam už nikoli. Takto aspoň nedojde k zbytečnému omylu.
lionel messi
Profil
Tomáš123:
juriad:
A ešte, aby som nezabudol. Dočítal som sa, že niekam odchádzaš.
Trošku OT pre juriada: Dúfam, že napriek „novému začiatku“ aspoň príležitostne zavítaš aj sem, v opačnom prípade príde toto fórum (a hlavne kategória PHP) o skutočného znalca. Taktiež želám veľa úspechov!

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: