Visuele mysql-voorwaarden

Door Jelmer -, 16 jaar geleden, 2.449x bekeken

Een simpel scriptje, geïnspireerd door de smart playlists van iTunes. Ik denk dat de demo voor zichzelf spreekt.

De database in het voorbeeld is een met zo ongeveer 10.000 items uit World of Warcraft maar met een limit op 30. Misschien dat ik order en limit nog eens erin bouw, net als lussen.

Voorbeeld: http://phphulp.ikhoefgeen.nl/selector/

Gesponsorde koppelingen

PHP script bestanden

  1. visuele-mysqlvoorwaarden

 

Er zijn 12 reacties op 'Visuele mysqlvoorwaarden'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Robert Deiman
Robert Deiman
16 jaar geleden
 
0 +1 -0 -1
Leuk script Jelmer, ik vraag me wel 1 ding af. Als ik in de voorwaarde iets zet als DROP TABLE items, dan zegt die wel dat de ingevoerde data geldig is. Hij voert niets uit, dus met beveiliging is het wel goed. Alleen misschien dat je dat nog aan kan passen.
Verder wel netjes geprogrammeerd (zijn nie anders gewend van je) en een handig script.
Jelmer -
Jelmer -
16 jaar geleden
 
0 +1 -0 -1
Daar is die quote() functie voor. Die zet er gewooon quotes omheen (mysql_real_escape en voor en achter ' toevoegen) zodat het gewoon een hedendaagse string wordt ipv een commando. De invoer-controle is er meer voor bedacht dat je niet je eigen kolom-namen gaat bedenken en niet bestaande voorwaarden (AND OR XOR e.d. DROP TABLE komt er niet door, want die staat niet in de array.)
Robert Deiman
Robert Deiman
16 jaar geleden
 
0 +1 -0 -1
Ok, zo goed had ik het script ook nog niet doorgelezen, anders had ik dat wel gezien.
Klaasjan Boven
Klaasjan Boven
16 jaar geleden
 
0 +1 -0 -1
@Jelmer.
Een zeer handig script komt mij zeer goed van pas bedankt.
Klaasjan
Jan Koehoorn
Jan Koehoorn
16 jaar geleden
 
0 +1 -0 -1
Jou kennende zal het zeker een goed script zijn, maar ik zou toch wel iets meer uitleg willen zien over wat het script precies doet en wat het doel is.
Jelmer -
Jelmer -
16 jaar geleden
 
0 +1 -0 -1
Het idee was dat je zonder kennis van MySQL een voorwaarde (WHERE-deel van een query) kon maken. Ik wou het zelf gaan gebruiken in m'n bugtracker, als deel van het uitgebreid zoeken.

Het orginele idee was dat je ook nog uit meerdere tabellen kon selecteren, en zo tabellen aan elkaar kon linken, maar zover was ik nog niet, en ik weet ook niet zeker of ik wel zover kom.

Het deel dat de query uitvoert is alleen voor de demo, om te laten zien hoe het zou kunnen werken. Het gaat om de eindwaarde van $query.
Pim Vernooij
Pim Vernooij
16 jaar geleden
 
0 +1 -0 -1
Mooi script :) Ik irriteer me er alleen aan dat als je query niets oplevert, je de invoervelden opnieuw moet instellen. Maar dat is puur luxe ^^
Klaasjan Boven
Klaasjan Boven
16 jaar geleden
 
0 +1 -0 -1
'HAVING' => 'bevat', is niet juist. Bevat == LIKE en die heb je al genoemd. HAVING wordt gebruikt icm GROUP BY dat is eigenlijk de WHERE van de berekende items. HAVING kan dus wel uit je script

Voor de rest een prchtig script. Ik gebruik hem zeker. Als je een relationele DB hebt is het aanmaken van een view speciaal voor dit script wel handig.
Jelmer -
Jelmer -
16 jaar geleden
 
0 +1 -0 -1
Correct. Ik heb hem eruit gehaald.
Klaasjan Boven
Klaasjan Boven
13 jaar geleden
 
0 +1 -0 -1
Jelmer deze twee kan je nog toevoegen:

'IS NOT NULL' => 'is niet leeg (geen voorwaarde vullen)'
'IS NULL' => 'leeg (geen voorwaarde vullen)'
Toby hinloopen
toby hinloopen
13 jaar geleden
 
0 +1 -0 -1
Error:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\test.php on line 10

Verder doet ie niet zoveel bij mij.

PHP5 gebruikt.
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Klaasjan Boven
Klaasjan Boven
13 jaar geleden
 
0 +1 -0 -1
Waarschijnlijk gaat er iets fout met je query. Dit script werkt out off the box

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. visuele-mysqlvoorwaarden

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.