IPB

Welcome Guest ( Log In | Register )

39 Pages V   1 2 3 > »   
Reply to this topicStart new topic
> PHP-MySQL segítség III.
LeGaS
post 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
Go to the top of the page
 
+Quote Post
Killroy
post 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. shocked.gif
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 smile.gif ha már majdnem jó volt és ki is írta akkor, gondolom az volt a baja hogy benne maradt a for ciklusba és addig a 4 sort lekérte 4x mindenhova smile.gif kicsit sok csekboxom lett biggrin.gif
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 smile.gif
előre is köszi

This post has been edited by Killroy: 2008. Jan 29., 02:19
Go to the top of the page
 
+Quote Post
gelidan
post 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?
Go to the top of the page
 
+Quote Post
gelidan
post 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.
Go to the top of the page
 
+Quote Post
Halfbreed
post 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?


--------------------
Go to the top of the page
 
+Quote Post
BlackY
post 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
Go to the top of the page
 
+Quote Post
Halfbreed
post 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.


--------------------
Go to the top of the page
 
+Quote Post
lnorby
post 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?
Go to the top of the page
 
+Quote Post
BlackY
post 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
Go to the top of the page
 
+Quote Post
lnorby
post 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!
Go to the top of the page
 
+Quote Post
lnorby
post 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?
Go to the top of the page
 
+Quote Post
BlackY
post 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 smile.gif

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
Go to the top of the page
 
+Quote Post
lnorby
post 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.
Go to the top of the page
 
+Quote Post
BlackY
post 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
Go to the top of the page
 
+Quote Post
lnorby
post 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



QUOTE(BlackY @ 2008. Feb 3., 18:23) *
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... blush.gif Köszönöm szépen, mostmár működik. A bruttó árral kapcsolatban teljesen igazad van, aztán én is rájöttem hogy hülyeség de nem változtatok már rajta. Jó lesz ez így is.smile.gif
Go to the top of the page
 
+Quote Post

39 Pages V   1 2 3 > » 
Reply to this topicStart new topic

 



Lo-Fi Version Time is now: 2012. February 11. - 2:22

Harder - webdesigner blog | keresőoptimalizálás | honlapkészítés