![]() ![]() |
2008. Jan 26., 16:30
Post
#1
|
|
![]() Frontend developer ![]() ![]() ![]() ![]() ![]() Group: moderator Posts: 5236 Joined: 04. August 2. From: Budapest Member No.: 413 |
Előzmény: PHP-MySQL segítség II.
-------------------- LeGaS | Moderátor
Webfejlesztő blogom |
|
|
|
2008. Jan 29., 02:16
Post
#2
|
|
|
tag ![]() ![]() Group: tag Posts: 157 Joined: 05. February 27. From: Budapest Member No.: 793 |
Sziasztok
Annó pár napja volt egy kis problémám http://www.tutorial.hu/forum/forums.html?s...ost&p=99240 amit sikerult BlackY megoldasaval működtettnem. CODE if(in_array($asd, $pieces)) most itt a tovabb fejlesztett valtozat ujproblemakkal. CODE $coool = $leker_sor['tipus']; $pieces = explode(" ", $coool); $tipus88 = mysql_query("SELECT * FROM tipus"); while ($tipus_sor88 = mysql_fetch_array($tipus88)) { $asd = $tipus_sor88['tipus_id']; if(in_array($asd, $pieces)) { echo ?><input checked="checked" name="tipus[]" id="tipus[]" type="checkbox" value="<? echo $tipus_sor88['tipus_id'];?>" /><? echo $tipus_sor88['tipus'];?><input type="text" name="tip_date[]" id="tip_date[]" value="<? echo $tipus_sor88['term_datum'];?>" /><br /> <? ; }else{ echo ?><input name="tipus[]" id="tipus[]" type="checkbox" value="<? echo $tipus_sor88['tipus_id'];?>" /><? echo $tipus_sor88['tipus'];?><input type="text" name="tip_date[]" id="tip_date[]" /><br /> <? ; } } A lényege az lenne hogy van 2 táblázatom az egyik a termekek, a masik a rendezés. a termékekben 1 termék csak 1x szerepelhet. viszont van a tipus oszlop, ahová én úgy mentem a típusokat hogy pl 01 02 03 04 ezt használom fel a fenti kódban hogy amikor listáztatom a csekboxokat, akkor azok legyenek bepipálva ahol a két szám egyezik. ez műkszik. most viszont bejött egy új változó. mégpedig a tip_date[]. ez arra szolgálna hogy ahol be van pipalva a csekbox, ott lehet írni egy dátumot, szabadon varchar. ez a valtozo viszont nem a termekek tablaban van letarolva, hanem a rendezes tablaba, ahol viszont 1 termek NEM 1 sor, hanem annyi sor ahány tipus. pl a fenti példát követve: 01-04-ig 4 sor keletkezik ebbe a táblába. amikor a két táblát próbálta összeboronálni, hogy azok a csekboxok-os bepipálós módszer menjen, viszont ahol pipa van ott legyen még a hozzá tartozó dátum is kiírva, akkor mindig a többszörösét kaptam a megoldásoknak szerintetek, hogyan lehetne ezt egyszerübben megoldani? a termékek táblába azt márt nem tudom megváltoztatni hogy több sor legyen 1 termék, sajnos ott meg van kötve a kezem, ezért használtam a rendezés táblámat. remélem erre is tudtok valami jót mondani előre is köszi This post has been edited by Killroy: 2008. Jan 29., 02:19 |
|
|
|
2008. Jan 29., 09:46
Post
#3
|
|
|
új tag ![]() Group: tag Posts: 11 Joined: 08. January 21. Member No.: 4658 |
Sziasztok, a II. topicban mar feltettem ezt a kerdest, kaptam is valaszt, de sajnos nem mukodtek. A feladatom az lenne, hogy egy word iratmintat feltoltsek mysql-bol kapott adatokkal phpn keresztul. Talaltam egy scriptet ami bookmarkok helyere beleir, de 3 utan lefagy, nekem meg nagyjabol 20-30 valtozot kene beleirnom. Barmi otlet, hogy lehet egy template word doksit feltolteni?
|
|
|
|
2008. Jan 29., 10:55
Post
#4
|
|
|
új tag ![]() Group: tag Posts: 11 Joined: 08. January 21. Member No.: 4658 |
Ohhh mind1 megoldva. Mivel lehet hogy majd mas is rafut erre a problemara:
http://www.phpclasses.org/browse/package/2...wnload/zip.html Sajnos nem latom, hogy hol lehet filet hozzaadni a posthoz, ugyhogy a zipet nem tudom mellekelni. Regisztracio szukseges az oldalon. |
|
|
|
2008. Jan 29., 20:45
Post
#5
|
|
![]() alias Pyro ![]() ![]() ![]() Group: haladó tag Posts: 788 Joined: 06. January 10. From: Miskolc Member No.: 1792 |
Üdv, ismét lenne egy gyors kérdésem:
Hivatkozás címében hogyan lehet egy (esetleg több) változót átadni php-nek, és az hogyan jelenik meg benne? -------------------- |
|
|
|
2008. Jan 29., 21:07
Post
#6
|
|
![]() Commander 1337 ![]() ![]() ![]() ![]() ![]() Group: törzstag Posts: 5506 Joined: 03. May 25. From: Szeged Member No.: 38 |
GET-ben?
Az url felépítése: protokoll://felhasználónév:jelszó@szerver/elérési/út.kiterjesztés?további=paraméterek&andel=elvalasztva (Persze több ebből tetszés szerint elhagyható) A PHP egy http://szerver/index.php?valtozo=ertek&...tozo=masikertek címből az array( 'valtozo' => 'ertek', 'masikvaltozo' => 'masikertek'); tömböt rakja a $_GET szuperglobális tömbbe. Stringeket nem túl szerencsés get-en átadni, inkább egyszerű számok (?id=80) esetleg nagyon megformázott stringek (http://www.tutorial.hu/arc-lagyitasa/, bár itt már mod_rewrite is van, de a paramot get-ben kapja meg a php. Ékezet, spec karakter, ... ne legyen benne.) BlackY -------------------- BlackY
Blog Új téma vagy tutorial Szerkesztő | Törzstag -- Hogyan kérdezzünk? Üvöltsük meg együtt a holdat: Wuff :D |
|
|
|
2008. Jan 29., 22:03
Post
#7
|
|
![]() alias Pyro ![]() ![]() ![]() Group: haladó tag Posts: 788 Joined: 06. January 10. From: Miskolc Member No.: 1792 |
Köszi szépen, működik.
-------------------- |
|
|
|
2008. Feb 3., 14:04
Post
#8
|
|
|
tag ![]() ![]() Group: tag Posts: 237 Joined: 07. January 16. From: Hódmezővásárhely Member No.: 3522 |
Hali! Szöveget akarok összefűzni egy változóban e-mail küldéshez, de nem tudom a sörtörés kódját. Tudna valaki segíteni?
|
|
|
|
2008. Feb 3., 14:38
Post
#9
|
|
![]() Commander 1337 ![]() ![]() ![]() ![]() ![]() Group: törzstag Posts: 5506 Joined: 03. May 25. From: Szeged Member No.: 38 |
Windows alatt: "\r\n" (fontos a ", ne ' legyen!)
Linux alatt: "\n" Mac alatt: "\r" Ebből neked jelen esetben a Linuxos "\n" kell. BlackY -------------------- BlackY
Blog Új téma vagy tutorial Szerkesztő | Törzstag -- Hogyan kérdezzünk? Üvöltsük meg együtt a holdat: Wuff :D |
|
|
|
2008. Feb 3., 14:51
Post
#10
|
|
|
tag ![]() ![]() Group: tag Posts: 237 Joined: 07. January 16. From: Hódmezővásárhely Member No.: 3522 |
Köszi, müxik!
|
|
|
|
2008. Feb 3., 16:29
Post
#11
|
|
|
tag ![]() ![]() Group: tag Posts: 237 Joined: 07. January 16. From: Hódmezővásárhely Member No.: 3522 |
Ja és még olyan gondom lenne, hogy csinálok a weboldalon egy keresőt, ami bizonyos adattáblákban keresné a megadott szöveget. Azt hogy tudom megcsinálni, hogy pl. nézze végig a kereső a rekordokat először az egyik adattáblában és a rekordoknak a termék nevű mezőjében nézze meg az egyezést a keresett kulcsszóval, de ne pontos találatot keressen, hanem pld. ha benne van a keresett szóból 4 betű, akkor azt már egyezésnek vegye. Az én kódom most így néz ki, de ez pontosan keres, ami nekem nem jó.
CODE $darab=0; $tomb=array("Alaplap", "Processzor"); foreach($tomb as $tipusok) { $parancs = "SELECT * FROM " . $tipusok; $eredmeny = mysql_query($parancs); while ($sor = mysql_fetch_array($eredmeny)) { if ($sor["nev"]==$_POST['keresendo']) { $darab++; Van olyan kód, amivel meg lehet mondani neki hogy hány betűt vegyen összehasonlításként? Ja és hogy ne különböztesse meg a kis- és nagybetűket? |
|
|
|
2008. Feb 3., 16:41
Post
#12
|
|
![]() Commander 1337 ![]() ![]() ![]() ![]() ![]() Group: törzstag Posts: 5506 Joined: 03. May 25. From: Szeged Member No.: 38 |
Levenshtein-távolságot nézetsz, így mondjuk az apaplap keresésnél mondja, hogy a távolság 2 (a-A, l-p a két eltérés) (ha a keresőkifejezést és a cella tartalmát is kisbetűre teszed, akkor csak 1). Ezt megvalosíthatod PHP-ből vagy MySQL-ből is, de elég számolásigényes. A user csak ne szúrja el az adatokat
Egyszerűbb olyat csinálni, hogy a user mondjuk rákeres arra, hogy "alap", és erre megtalálja az alaplapot, ez egy sima CODE mezo LIKE '%kifejezés%' Viszont elég ránézni a fenti kódra, és láthatóan alapvető gondok vannak az adatbázismodelleddel. Én inkább úgy csinálnám, hogy van egy egységes termék táblám, benne: Tábla: products id (primary key, auto_inc) categories_id (a categories tábla beli id) name (varchar(256)) price (int) description (text) A categories táblában pedig fel vannak sorolva az Alaplap, Processzor stb., mind 1-1 rekord, a products.categories_id mező értékei pedig ezeknek a rekordoknak az id-jeit tartalmazza. Tábla: categories id (primary_key, auto_inc) name (varchar(128)) Aztán egy külön táblában lehet mindenféle extra adatot tárolni kulcs => érték párokban, hozzákötve az adott termékhez Tábla: ext_info id (primary_key, auto_inc) products_id (int, a products tábla beli id) name (varchar(128)) value (text) Így egyszerűbb - és gyorsabb - a keresés, admin felület is egyszerűbb, és átláthatóbb az adatbázisod. BlackY This post has been edited by BlackY: 2008. Feb 3., 16:41 -------------------- BlackY
Blog Új téma vagy tutorial Szerkesztő | Törzstag -- Hogyan kérdezzünk? Üvöltsük meg együtt a holdat: Wuff :D |
|
|
|
2008. Feb 3., 17:51
Post
#13
|
|
|
tag ![]() ![]() Group: tag Posts: 237 Joined: 07. January 16. From: Hódmezővásárhely Member No.: 3522 |
Mindegy, az adatbázist már nem alakítom át ennyire. Nem sok meló van hátra a weboldallal, különben is szakvizsgára csinálom, tehát nem élesben fog menni a dolog. A LIKE egyébként ugyanúgy működik, mint az előbbi próbálkozásom. Csak a pontos találatot hozza ki. Így épül fel most az adatbázisom:
Minden termék fajtához külön tábla van, de mindegyik felépítése ugyanolyan. Példaként ilyen az Alaplap adattábla: nev - az alaplap neve (most pl. az Asus M2A-VM HDMI AM2) leiras - leírása netto - nettó ár brutto - bruttó ár kiskep - miniatűr kép elérése nagykep - eredeti kép elérése tipus - altípus megnevezése (pl. ebben az esetben AMD foglalatos vagy Inteles alaplap) Tudom hogy nem egy profi összeállítás, de nem rég kezdtem php-zni és még nem vágom annyira a dolgokat. Na szóval azt akarom csinálni, hogy ha valaki rákeres az M2A-VM kifejezésre akkor kihozza neki ezt az Asus M2A-VM HDMI AM2 rekordot a kereső, de nem sikerül megvalósítani. |
|
|
|
2008. Feb 3., 18:23
Post
#14
|
|
![]() Commander 1337 ![]() ![]() ![]() ![]() ![]() Group: törzstag Posts: 5506 Joined: 03. May 25. From: Szeged Member No.: 38 |
CODE SELECT * FROM Alaplap WHERE nev LIKE '%M2A-VM%' Így ki fogja dobni. A % bármilyen tetszőleges hosszú karakterláncot jelöl, tehát ez a formája a nev TARTALMAZZA 'M2A-VM'-etre "fordítható". És pont ezt keresed. (BTW, minek külön tárolni a nettó és bruttó árat, amikor utóbbit egy sima 1,2-es szorzással megkaphatod?) BlackY -------------------- BlackY
Blog Új téma vagy tutorial Szerkesztő | Törzstag -- Hogyan kérdezzünk? Üvöltsük meg együtt a holdat: Wuff :D |
|
|
|
2008. Feb 3., 18:26
Post
#15
|
|
|
tag ![]() ![]() Group: tag Posts: 237 Joined: 07. January 16. From: Hódmezővásárhely Member No.: 3522 |
CODE SELECT * FROM Alaplap WHERE nev LIKE '%M2A-VM%' Így ki fogja dobni. A % bármilyen tetszőleges hosszú karakterláncot jelöl, tehát ez a formája a nev TARTALMAZZA 'M2A-VM'-etre "fordítható". És pont ezt keresed. (BTW, minek külön tárolni a nettó és bruttó árat, amikor utóbbit egy sima 1,2-es szorzással megkaphatod?) BlackY Ja, okés. A %-ot kihagytam... |
|
|
|
![]() ![]() |
| Lo-Fi Version | Time is now: 2012. February 11. - 2:22 |