Forum » Izdelava spletišč » pomoč pri poizvedbi MYSQL ..
pomoč pri poizvedbi MYSQL ..
nodrim ::
pozdravljeni!
Imam en problem, ki ga še nisem rešil.
V bazi imam določene podatke, ki bi jih rad preko obrazca sfiltriral, da mi pač prikaže tiste, ki najbolj ustrezajo izbranim pogojem.
Problem je naslednji:
- če v query dam med pogoje operator AND, mi bo prikazalo samo tiste vnose, ki imajo samo izbrane pogoje in ne vnosov, ki imajo poleg teh pogojev še kakšnega dodatnega ...
- če v query dam med pogoje operator OR, mi bo seveda prikazalo vse, ki imajo vsaj enega od izbranih pogojev ...
Primer: - dodatna oprema avtomobila je lahko: klima, radio, zatemnjena stekla, usnjeni sedeži, široke gume
če v obrazcu poklikam klima in radio, želim, da mi pokaže tudi tiste avtomobile, ki imajo poleg klime in radia tudi morebitno ostalo dodatno opremo ...
torej potrebujem query, ki bi mi prikazal vnose, ki VSAJ ustrezajo pogojem, lahko pa imajo še kaj več ... če bi bilo mogoče narediti rezultat poizvedbe, ki bi čedalje manj ustrezal pogojem pa še toliko bolje :)
torej najprej tisti, ki zadoščajo vsem pogojem, nato tisti, ki zadoščajo (vsem pogojem - 1) itd., ampak ta je že bonus :)
hvala vsem
Imam en problem, ki ga še nisem rešil.
V bazi imam določene podatke, ki bi jih rad preko obrazca sfiltriral, da mi pač prikaže tiste, ki najbolj ustrezajo izbranim pogojem.
Problem je naslednji:
- če v query dam med pogoje operator AND, mi bo prikazalo samo tiste vnose, ki imajo samo izbrane pogoje in ne vnosov, ki imajo poleg teh pogojev še kakšnega dodatnega ...
- če v query dam med pogoje operator OR, mi bo seveda prikazalo vse, ki imajo vsaj enega od izbranih pogojev ...
Primer: - dodatna oprema avtomobila je lahko: klima, radio, zatemnjena stekla, usnjeni sedeži, široke gume
če v obrazcu poklikam klima in radio, želim, da mi pokaže tudi tiste avtomobile, ki imajo poleg klime in radia tudi morebitno ostalo dodatno opremo ...
torej potrebujem query, ki bi mi prikazal vnose, ki VSAJ ustrezajo pogojem, lahko pa imajo še kaj več ... če bi bilo mogoče narediti rezultat poizvedbe, ki bi čedalje manj ustrezal pogojem pa še toliko bolje :)
torej najprej tisti, ki zadoščajo vsem pogojem, nato tisti, ki zadoščajo (vsem pogojem - 1) itd., ampak ta je že bonus :)
hvala vsem
nodrim ::
SELECT * FROM tabela WHERE pogoj1=izbira1 AND pogoj2=izbira2 (prikaže tiste, ki imajo izpolnjene točno in samo te pogoje)
SELECT * FROM tabela WHERE pogoj1=izbira1 OR pogoj2=izbira2 (prikaže tiste, ki imajo izpolnjen vsaj en pogoj)
rad pa bi prikazal tiste, ki imajo izpolnjene vsaj izbrane pogoje, lahko jih je pa še več ...
SELECT * FROM tabela WHERE pogoj1=izbira1 OR pogoj2=izbira2 (prikaže tiste, ki imajo izpolnjen vsaj en pogoj)
rad pa bi prikazal tiste, ki imajo izpolnjene vsaj izbrane pogoje, lahko jih je pa še več ...
OwcA ::
Kako pa tabela zgleda? Če je normalizirana bi moral or zadoščati.
Otroška radovednost - gonilo napredka.
Zgodovina sprememb…
- spremenilo: OwcA ()
nodrim ::
mmm . .. normalizirana?
v primeru teh avtomobilov bi bila takšna
polja: ID, model, klima, radio, zatemnjena stekla, široke gume, usnjeni sedeži
in so pri opremi recimo ničle in enke glede na opremljenost
v primeru teh avtomobilov bi bila takšna
polja: ID, model, klima, radio, zatemnjena stekla, široke gume, usnjeni sedeži
in so pri opremi recimo ničle in enke glede na opremljenost
EjTi ::
Uporabiš
SELECT
*,
sum (
CASE
when pogoj1=izbira1 then 1 else 0
END
+
CASE
when pogoj2=izbira2 then 1 else 0
END
+
..
) as Sort
FROM tabela
WHERE pogoj1=izbira1 OR pogoj2=izbira2
ORDER BY Sort desc
Nisem poizkusil .. mogoče dela.
SELECT
*,
sum (
CASE
when pogoj1=izbira1 then 1 else 0
END
+
CASE
when pogoj2=izbira2 then 1 else 0
END
+
..
) as Sort
FROM tabela
WHERE pogoj1=izbira1 OR pogoj2=izbira2
ORDER BY Sort desc
Nisem poizkusil .. mogoče dela.
Zgodovina sprememb…
- spremenil: EjTi ()
Volk| ::
Jaz imam tudi en problem v mysql query
javi mi napako:
Unknown column 'user' in 'where clause'
če odtstranim "where" pol zadeva dela, toda ni tisti sql kaj jaz zelim
Baza je ok, če naredim poizvedovanje v myPhpAdmin pa dela ok.
Verjetno je kaka bedasta napaka, toda sem porabil ze 2 uri pa ne najdem.
help...
$seznam = mysql_query("SELECT * FROM `ime` WHERE lastnik=$uporabnik ORDER BY $razvrsti LIMIT $stevka,15") or die(mysql_error());
javi mi napako:
Unknown column 'user' in 'where clause'
če odtstranim "where" pol zadeva dela, toda ni tisti sql kaj jaz zelim
Baza je ok, če naredim poizvedovanje v myPhpAdmin pa dela ok.
Verjetno je kaka bedasta napaka, toda sem porabil ze 2 uri pa ne najdem.
help...
_______________________________________________________
Izobražen je tisti človek, ki ve, kje bo našel tisto, česar ne ve.
Izobražen je tisti človek, ki ve, kje bo našel tisto, česar ne ve.
Ziga Dolhar ::
Uf, kdo bo pa stringe ($uporabnik) spravil med narekovaje (=tvoj konkreten problem), in jih morda celo eskejpal?
https://dolhar.si/
Zgodovina sprememb…
- spremenil: Ziga Dolhar ()
Volk| ::
Sem imel ze v narekovajih(enojnih, dvojnih) pa ne gre.
'$uporabnik' dobim iz seje.
Je pol tudi obcutljivo na SQL Injection?
'$uporabnik' dobim iz seje.
Je pol tudi obcutljivo na SQL Injection?
_______________________________________________________
Izobražen je tisti človek, ki ve, kje bo našel tisto, česar ne ve.
Izobražen je tisti človek, ki ve, kje bo našel tisto, česar ne ve.
Zgodovina sprememb…
- spremenil: Volk| ()
Ziga Dolhar ::
$uporabnik daj med enojne narekovaje. Med dvojne ne bo šlo, saj si vanje zajel cel query.
https://dolhar.si/
Volk| ::
Hvala, Žiga, dela zdaj, nekaj druga sem se moral popravit.
_______________________________________________________
Izobražen je tisti človek, ki ve, kje bo našel tisto, česar ne ve.
Izobražen je tisti človek, ki ve, kje bo našel tisto, česar ne ve.
Volk| ::
usera sem definiral na novo in dodal neke pravice.
pa seveda kot je omenil Žiga...narekovaje
pa seveda kot je omenil Žiga...narekovaje
_______________________________________________________
Izobražen je tisti človek, ki ve, kje bo našel tisto, česar ne ve.
Izobražen je tisti človek, ki ve, kje bo našel tisto, česar ne ve.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | MySQL poizvedba iz dveh tabelOddelek: Programiranje | 1574 (867) | MrStein |
» | MS Access (strani: 1 2 )Oddelek: Programiranje | 7437 (5495) | travica |
» | [SQL] časovno obdobjeOddelek: Programiranje | 1403 (1231) | R33D3M33R |
» | [mysql] malo bolj zahtevna poizvedbaOddelek: Programiranje | 1595 (1446) | destiny |
» | SQL ukaz za trenutni oz. določen datum?Oddelek: Programiranje | 1129 (1036) | erik |