1 2 3 | $query = "SELECT * FROM employees WHERE age LIKE '%$age%'"; ?> |
omdat hij het zelf ook kan?quote:Op woensdag 9 januari 2008 19:19 schreef JortK het volgende:
Waaom zou je zoveel berichten niet laten versturen door bedrijven die er tenslotte in specialiseerd zijn
Like is een string-operator, dus is het wel logisch dat het niet werkt met integers. Je zou je ook nog kunnen afvragen of het zinvol is om Like te gebruiken, of dat je de gegevens op een andere manier ook kunt krijgen.quote:Op woensdag 9 januari 2008 21:41 schreef Tarabass het volgende:
Ongelooflijk. Kom er net achter dat als je met mysql in een selectquery een like operator wilt gebruiken om een integer op te halen je dat als een string moet doen om dat werkend te krijgen..
Om de like-operator toe te passen op een integer-dataveld moet je dus dit doen:
[ code verwijderd ]
Of zou hij het gewoon pikken en moet ik dit anders doen?
Hahahaha! Ben altijd al fan geweest van de Wrox serie: http://www.wrox.com/WileyCDA/WroxTitle/productCd-0764557831.htmlquote:Op woensdag 9 januari 2008 22:10 schreef wobbel het volgende:
Ik moet m'n vriendin PHP lerenwat is de ALLERMAKKELIJKSTE instap curus voor PHP? (jaja, wat een vertrouwen
)
Dus heel simpel echo dingen en hele simpele if en else statements?
dat is te moeilijk, dan moet ze 2 talen leren (engelsquote:Op woensdag 9 januari 2008 22:15 schreef WyriHaximus het volgende:
[..]
Hahahaha! Ben altijd al fan geweest van de Wrox serie: http://www.wrox.com/WileyCDA/WroxTitle/productCd-0764557831.html
lol ik ze niks, me eingen vriendin is ook niet al te goed met engelsquote:Op woensdag 9 januari 2008 22:16 schreef wobbel het volgende:
[..]
dat is te moeilijk, dan moet ze 2 talen leren (engels) en dan kost het me geld
en nee, ze is geen mongooltje
haha die heb ik op 't werk wel liggen volgensmijquote:Op woensdag 9 januari 2008 22:22 schreef WyriHaximus het volgende:
[..]
lol ik ze niks, me eingen vriendin is ook niet al te goed met engels. Dit anders wat? Misschien bij de bied? http://www.nl.bol.com/is-bin/INTERSHOP.enfinity/eCS/Store/nl/-/EUR/BOL_DisplayProductInformation-Start?Section=BOOK&BOL_OWNER_ID=1001004002133647
w3schoolsquote:Op woensdag 9 januari 2008 22:10 schreef wobbel het volgende:
Ik moet m'n vriendin PHP lerenwat is de ALLERMAKKELIJKSTE instap curus voor PHP? (jaja, wat een vertrouwen
)
Dus heel simpel echo dingen en hele simpele if en else statements?
Ik weet inmiddels dat het anders moet (REGEXP?), maar het is toch absurd dat hij (mysql-server) het allemaal pikt. Echt raar. Met een string-operator een integer ophalen. Hoe weet je dan dat je het goed doet, als alles werktquote:Op woensdag 9 januari 2008 22:09 schreef Light het volgende:
[..]
Like is een string-operator, dus is het wel logisch dat het niet werkt met integers. Je zou je ook nog kunnen afvragen of het zinvol is om Like te gebruiken, of dat je de gegevens op een andere manier ook kunt krijgen.
Wat wil je eigenlijk bereiken? Een REGEXP is net als LIKE een string operator, dus die is ook niet bedoeld om naar een int te zoeken. Waarom kan je geen =, <, > of BETWEEN gebruiken?quote:Op woensdag 9 januari 2008 23:15 schreef Tarabass het volgende:
[...] Ik weet inmiddels dat het anders moet (REGEXP?) [...]
dummie meldtquote:Op woensdag 9 januari 2008 23:15 schreef Tarabass het volgende:
[..]
Ik weet inmiddels dat het anders moet (REGEXP?), maar het is toch absurd dat hij (mysql-server) het allemaal pikt. Echt raar. Met een string-operator een integer ophalen. Hoe weet je dan dat je het goed doet, als alles werkt![]()
dacht dat dit subforum voor dummies was, maar krijg steeds meer het idee dat dit het expert-subforum is
Expert meldquote:Op woensdag 9 januari 2008 23:15 schreef Tarabass het volgende:
[..]
dacht dat dit subforum voor dummies was, maar krijg steeds meer het idee dat dit het expert-subforum is
Hehe nee dat was ik nietquote:Op woensdag 9 januari 2008 20:54 schreef Xcalibur het volgende:
[..]
Nog niet zo heel lang geleden heeft iemand in dit topic (het vorige deel gok ik) een aardig complete opsomming gemaakt.... ik dacht eigenlijk dat jij dat was
Ik ben met ajax bezig en wil dat als je een cijfer ingeeft in een tekstbox 'age' hij alle records ophaalt die dat getal bevatten. Als je een 1 intypt moet hij dus de leeftijden 1 ophalen, maar ook 14 of 51. Als ik de integer $age tussen quotes zet werkt dat gewoon op een integer-veld. En op de mysql-site vond ik dat regexp ook zou werken.quote:Op woensdag 9 januari 2008 23:55 schreef SuperRembo het volgende:
[..]
Wat wil je eigenlijk bereiken? Een REGEXP is net als LIKE een string operator, dus die is ook niet bedoeld om naar een int te zoeken. Waarom kan je geen =, <, > of BETWEEN gebruiken?
Balen dat alles bij mysql werkt, want op die manier weet je geeneens of het de juiste manier is, en wil het zo graag goed doen. Maar alles werkt aarggh. Wat zou ik voor een integer moeten gebruiken?quote:A character class “[...]” matches any character within the brackets. For example, “[abc]” matches “a”, “b”, or “c”. To name a range of characters, use a dash. “[a-z]” matches any letter, whereas “[0-9]” matches any digit.
semi-dummy/expert meld...quote:Op woensdag 9 januari 2008 23:15 schreef Tarabass het volgende:
[..]
Ik weet inmiddels dat het anders moet (REGEXP?), maar het is toch absurd dat hij (mysql-server) het allemaal pikt. Echt raar. Met een string-operator een integer ophalen. Hoe weet je dan dat je het goed doet, als alles werkt![]()
dacht dat dit subforum voor dummies was, maar krijg steeds meer het idee dat dit het expert-subforum is
Waarom wil je als je een 1 invult ook 51 hebben? Klinkt me vrij onlogisch in de oren. Dat is hetzelfde als je bij autocomplete een P invult je dan ook AAP als voorbeeld krijgt. Als je dit niet doet kun je dit ook op een veel elegantere manier doen.quote:Op donderdag 10 januari 2008 10:11 schreef Tarabass het volgende:
[..]
Ik ben met ajax bezig en wil dat als je een cijfer ingeeft in een tekstbox 'age' hij alle records ophaalt die dat getal bevatten. Als je een 1 intypt moet hij dus de leeftijden 1 ophalen, maar ook 14 of 51. Als ik de integer $age tussen quotes zet werkt dat gewoon op een integer-veld. En op de mysql-site vond ik dat regexp ook zou werken.
[..]
Balen dat alles bij mysql werkt, want op die manier weet je geeneens of het de juiste manier is, en wil het zo graag goed doen. Maar alles werkt aarggh. Wat zou ik voor een integer moeten gebruiken?
Voorbeeld
Het gaat niet om een autocomplete maar om een zoek-functie. Als je dus zoekt op 7 wil ik alle leeftijden met een 7 erin hebben. Waarom? Eigenlijk gewoon daaromquote:Op donderdag 10 januari 2008 14:23 schreef Dzy het volgende:
[..]
Waarom wil je als je een 1 invult ook 51 hebben? Klinkt me vrij onlogisch in de oren. Dat is hetzelfde als je bij autocomplete een P invult je dan ook AAP als voorbeeld krijgt. Als je dit niet doet kun je dit ook op een veel elegantere manier doen.
Stel je vult een 2 in. Dan zijn de mogelijkheden dus 2, 20-29, 200-299. Verder dan dat hoef je niet te gaan. Dan kun je dus een SELECT query met een paar ORs en met BETWEEN werken.
Vul je ook een 2e cijfer in, bijvoorbeeld 14, dan kun je dus een query bouwen met 14, en 140-149. Dit gaat een stuk sneller, weet je zeker dat het goed gaat en heb je geen lelijke string searches op een integer field. Helaas kun je het dus niet zo oplossen als je ook wilt dat je 51 kunt vinden met een 1.
1 |
Maar mysql is slim genoeg om een integer gewoon te casten naar een string als je er string operators op loslaat. Ik zie het probleem niet. Like met een integer werkt gewoon.quote:Op donderdag 10 januari 2008 14:39 schreef Scorpie het volgende:
Een like operator is per definitie een string operator hoor, dat is basis SQL kennis.
Wat ik eerder ook al voor wobbel ze GF suggereerde is de P2P serie van Wrox erg goed om eens naar te kijkenquote:Op donderdag 10 januari 2008 15:28 schreef markiemark het volgende:
met welk boek leer ik het snelste object georienteerd programmeren in php?
ik kan wel aardig programmeren in php, maar nog niet object oriented. nu wil ik dit wel leren en een boek kopen daar voor, maar welke kan ik het beste nemen?
Hier ga ik even mee stoeien. Bedankt..quote:Op donderdag 10 januari 2008 14:58 schreef Dzy het volgende:
Je kunt natuurlijk ook je PHP scriptje een set laten maken en daar een mooie query door uit laten poepen. Nog steeds voelt het wat ranzig aan maarja, niet heel veel aan te doen. Stel dat de leeftijd maximaal 100 is, kun je bijvoorbeeld bij een 2 invullen zo'n query laten maken:
[ code verwijderd ]
Dan krijg je alsnog alle goede leeftijden terug en gebruik je geen ranzige LIKE operators die bedoeld zijn voor strings. De php code om zo'n query te maken is ook niet zo moeilijk.
1 |
wat bedoel je?quote:Op donderdag 10 januari 2008 17:30 schreef BugWorks het volgende:
Beste allemaal,
Ik ben bezig met een gastenboek te maken, dit werkt allemaal prima. Nu wilde ik daar als toevoeging smilies aan toe voegen, ook dit werkt prima.
Nu geef ik van iedere smilie de locatie map aan, dit wil ik verkorten door het gebruik van een variabele.
Even een voorbeeld hoe het nu is:
[ code verwijderd ]
Wat ik dus graag zou willen wijzigen is "./files/images/smiles" vervangen door een variabele ($dir_smiles). Dit wil me dus niet lukken aangezien de wijzingen overgenomen als zijnde tekst.
Wie kan en wil me hiermee helpen. Alvast bedankt
Ok, je wil dus gewoon zoeken alsof het tekst is. Een regexp is nergens voor nodig (is alleen langzamer), een LIKE is wat je nodig hebt. Als je het echt netjes wil doen, dan converteer je de INT kolom eerst naar VARCHAR voordat je de LIKE vergelijking gebruikt:quote:Op donderdag 10 januari 2008 14:34 schreef Tarabass het volgende:
[..]
Het gaat niet om een autocomplete maar om een zoek-functie. Als je dus zoekt op 7 wil ik alle leeftijden met een 7 erin hebben. Waarom? Eigenlijk gewoon daarom :)
Dus om dit te bewerkstelligen wil ik een like-manier hebben, maar dan voor een integer..
1 |
Volgens mij moet je een heel eind kunnen komen metquote:Op donderdag 10 januari 2008 14:23 schreef Dzy het volgende:
Helaas kun je het dus niet zo oplossen als je ook wilt dat je 51 kunt vinden met een 1.
1 |
waar staat de MOD 10 voor?quote:Op donderdag 10 januari 2008 18:58 schreef Light het volgende:
[..]
Volgens mij moet je een heel eind kunnen komen met
[ code verwijderd ]
Modulo 10. Ofwel delen door 10 en als antwoord de rest teruggeven.quote:
Zie: http://dev.mysql.com/doc/(...)ns.html#function_modquote:
1 2 3 4 | echo floor(20 / 7); // 2 echo 20 % 7; // 6 ?> |
Zo kun je het inderdaad ook aanpakken, nog wel een mooiere oplossing dan die van mij. Wist niet dat dat in MySQL konquote:Op donderdag 10 januari 2008 18:58 schreef Light het volgende:
[..]
Volgens mij moet je een heel eind kunnen komen met
[ code verwijderd ]
Met alleen MOD 10 ben je er niet, en het is onnodig ingewikkeld.quote:Op donderdag 10 januari 2008 18:58 schreef Light het volgende:
[..]
Volgens mij moet je een heel eind kunnen komen met
[ code verwijderd ]
Waarom zou je zo ingewikkeld doen? Vergeet ook niet dat je input uit een textbox komt. En het moet natuurlijk ook resultaat geven als je een getal van 2 cijfers invoert... daar ga je dan met je modulo 10.quote:Op donderdag 10 januari 2008 19:18 schreef Dzy het volgende:
Zo kun je het inderdaad ook aanpakken, nog wel een mooiere oplossing dan die van mij.
Ik reageerde op een deel van een post, namelijk dat het niet mogelijk zou zijn om alles te pakken met een bepaald eindcijfer. Daarvoor heb je genoeg aan een MOD 10.quote:Op donderdag 10 januari 2008 19:19 schreef SuperRembo het volgende:
[..]
Met alleen MOD 10 ben je er niet, en het is onnodig ingewikkeld.
Je hebt gelijk, misschien is mijn oplossing toch wel beterquote:Op donderdag 10 januari 2008 19:19 schreef SuperRembo het volgende:
[..]
Waarom zou je zo ingewikkeld doen? Vergeet ook niet dat je input uit een textbox komt. En het moet natuurlijk ook resultaat geven als je een getal van 2 cijfers invoert... daar ga je dan met je modulo 10.
quote:Op donderdag 10 januari 2008 14:58 schreef Dzy het volgende:
Je kunt natuurlijk ook je PHP scriptje een set laten maken en daar een mooie query door uit laten poepen. Nog steeds voelt het wat ranzig aan maarja, niet heel veel aan te doen. Stel dat de leeftijd maximaal 100 is, kun je bijvoorbeeld bij een 2 invullen zo'n query laten maken:
[ code verwijderd ]
Dan krijg je alsnog alle goede leeftijden terug en gebruik je geen ranzige LIKE operators die bedoeld zijn voor strings. De php code om zo'n query te maken is ook niet zo moeilijk.
1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 | $query = "SELECT * FROM users WHERE (age = ".$age.")"; if ($age<10) { $query .= " OR (age BETWEEN " . $age*10 . " AND ". $age *10+9 . ") OR (age IN (" for ($i=1;$i<10;$i++) { if ($i<>1) $query .= ","; $query .= 10*$i+$age; } $query .= "))"; } $result = mysql_query($query); |
Zo zou het eruit moeten zien: "./files/images/smiles/icon_smile.gif"quote:
Heh. Dat is inderdaad mooier. Dit ga ik vaak gebruiken denk ikquote:Op donderdag 10 januari 2008 19:39 schreef Geqxon het volgende:
Dat kan denk ik netter met een range(0,10) die je met implode tot een string samenvoegt.
Range is best een handige functie als je een array met nummertjes wilt hebben. Ik gebruik het wel eens als ik bijvoorbeeld een pull-down menutje met alle weeknummers wil genereren, dan is dat best wel makkelijk. :)quote:Op donderdag 10 januari 2008 19:44 schreef Dzy het volgende:
[..]
Heh. Dat is inderdaad mooier. Dit ga ik vaak gebruiken denk ik :P Ik kende de range function niet, en gebruik toch wel redelijk vaak set queries.
1 2 3 4 5 | foreach (range(1,52) as $weeknumber){ } ?> |
quote:Op donderdag 10 januari 2008 17:30 schreef BugWorks het volgende:
Beste allemaal,
Ik ben bezig met een gastenboek te maken, dit werkt allemaal prima. Nu wilde ik daar als toevoeging smilies aan toe voegen, ook dit werkt prima.
Nu geef ik van iedere smilie de locatie map aan, dit wil ik verkorten door het gebruik van een variabele.
Even een voorbeeld hoe het nu is:
[ code verwijderd ]
Wat ik dus graag zou willen wijzigen is "./files/images/smiles" vervangen door een variabele ($dir_smiles). Dit wil me dus niet lukken aangezien de wijzingen overgenomen als zijnde tekst.
Wie kan en wil me hiermee helpen. Alvast bedankt
1 2 3 4 | $path = "./files/images/smiles/"; $text = str_replace(':)','<img src="'.$path.'icon_smile.gif" border="0" alt="" />',$text); ?> |
Dit deed ik altijd met een for-loopje. Dit is inderdaad mooierquote:Op donderdag 10 januari 2008 19:48 schreef Geqxon het volgende:
[..]
Range is best een handige functie als je een array met nummertjes wilt hebben. Ik gebruik het wel eens als ik bijvoorbeeld een pull-down menutje met alle weeknummers wil genereren, dan is dat best wel makkelijk.
[ code verwijderd ]
Overigens is de derde parameter van de functie range wel enkel voor php 5.0.0 en hoger.
Datgene wat jij gepost heb lijkt hier niet te werken, helaas. Heeft namelijk hetzelfde effect als wat ik geprobeerd heb.quote:Op donderdag 10 januari 2008 19:49 schreef Tarabass het volgende:
[..]
[ code verwijderd ]
Bedoel je dit? Mooier is natuurlijk zelf een functie te schrijven die de parameter-input (de ':)') omzet naar de image-tag en dat weer returned. En de border met css meegeven..
Dan heb je een '/' teveel, waarschijnlijk heb je die nog voor 'icon_smile.gif' staan en die moet je dan even weghalen..quote:Op donderdag 10 januari 2008 20:00 schreef BugWorks het volgende:
[..]
Datgene wat jij gepost heb lijkt hier niet te werken, helaas. Heeft namelijk hetzelfde effect als wat ik geprobeerd heb.
(edit)
Afbeelding niet zichtbaar, maar in de broncode is alleen het volgende te zien "/icon_smile.gif".
Overigens worden de ':)' codes omgezet middels een functie, leek me niet relevant om die te posten vandaar alleen die ene regel.
1 2 3 4 5 | $text = ':)'; $path = "./files/images/smiles/"; echo $text = str_replace(':)','[img src="'.$path.'icon_smile.gif" border="0" alt="" /]',$text); ?> |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |