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: |