abonnement Unibet Coolblue Bitvavo
  donderdag 10 januari 2008 @ 16:10:48 #176
107951 JortK
Immer kwaliteitsposts
pi_55926246
Even een offtopic vraagje wobbel heb jij niet vroeger R3 gehad als bedrijf?
pi_55926783
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.
Hier ga ik even mee stoeien. Bedankt..
pi_55928409
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:
1$text = str_replace(   ':)','<img src="./files/images/smiles/icon_smile.gif" border="0" alt="" />',$text);


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 :Y
  donderdag 10 januari 2008 @ 17:35:59 #179
136730 PiRANiA
All thinking men are atheists.
pi_55928532
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
wat bedoel je?
pi_55929568
ik denk dat het pad hard als tekst in al z'n entries staat, en hij deze dus niet meer kan aanpassen?
pi_55929617
-Nevermind-.
pi_55930569
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..
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:

1... WHERE Cast(age AS VARCHAR) LIKE '%2%'


(Zie http://dev.mysql.com/doc/refman/5.1/en/cast-functions.html)
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_55930731
quote:
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.
Volgens mij moet je een heel eind kunnen komen met
1SELECT * FROM users WHERE age MOD 10 = 1
  donderdag 10 januari 2008 @ 19:01:58 #184
62215 qu63
..de tijd drinkt..
pi_55930846
quote:
Op donderdag 10 januari 2008 18:58 schreef Light het volgende:

[..]

Volgens mij moet je een heel eind kunnen komen met
[ code verwijderd ]
waar staat de MOD 10 voor?
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_55931032
quote:
Op donderdag 10 januari 2008 19:01 schreef qu63 het volgende:

[..]

waar staat de MOD 10 voor?
Modulo 10. Ofwel delen door 10 en als antwoord de rest teruggeven.

Als voorbeeld: 27 MOD 10 = 7
pi_55931036
quote:
Op donderdag 10 januari 2008 19:01 schreef qu63 het volgende:

[..]

waar staat de MOD 10 voor?
Zie: http://dev.mysql.com/doc/(...)ns.html#function_mod

Oftewel: de modulo operator, geeft de rest terug na een deling.

20 / 7 = 2
20 MOD 7 = 6
pi_55931189
Er zit (uiteraard) ook een modulo-operator in PHP. Daar gebruik je dan %

1
2
3
4
<?php
echo floor(20 7); // 2
echo 20 7// 6
?>
pi_55931322
quote:
Op donderdag 10 januari 2008 18:58 schreef Light het volgende:

[..]

Volgens mij moet je een heel eind kunnen komen met
[ code verwijderd ]
Zo kun je het inderdaad ook aanpakken, nog wel een mooiere oplossing dan die van mij. Wist niet dat dat in MySQL kon Weer wat geleerd.

Heeft iemand hier ervaring met CakePHP? Ik heb me door de manual heen geworsteld maar ik denk dat ik nog wel wat vraagjes ga hebben nu ik ga beginnen met een nieuw projectje.

EDIT: Je moet uiteraard in die query ook nog gewoon de between en de waarde zelf meenemen.
"Reality is an illusion created by a lack of alcohol."
pi_55931341
quote:
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 19:18 schreef Dzy het volgende:
Zo kun je het inderdaad ook aanpakken, nog wel een mooiere oplossing dan die van mij.
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.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_55931521
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.
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.
Om de hele vraag te beantwoorden heb je meer nodig, da's waar. Maar dat is al meerdere keren voorbij gekomen, dus dat stuk sloeg ik over
pi_55931671
quote:
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.
Je hebt gelijk, misschien is mijn oplossing toch wel beter Maar met dat typecasten, ik denk dat het een stuk sneller gaat als je het gewoon op mijn manier doet, omdat MySQL dan van elke rij de age column moet gaan omzetten terwijl je het op mijn manier maar een paar instructies in php kost en MySQL gewoon kan doen waar het goed in is.
"Reality is an illusion created by a lack of alcohol."
pi_55931886
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.
1SELECT * FROM users WHERE (age = 2) OR (age BETWEEN 20 AND 29) OR (age IN (12,22,32,42,52,62,72,82,92))


Om zo'n query te laten schrijven is dus geen moeilijk php scriptje nodig, zoiets bijvoorbeeld:

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);
"Reality is an illusion created by a lack of alcohol."
pi_55931919
Dat kan denk ik netter met een range(0,10) die je met implode tot een string samenvoegt.

1
2
3
<?php
implode
(',' range($age$age10) )
?>


geef:

119,29,39,49,59,69,79,89,99
pi_55931947
quote:
Op donderdag 10 januari 2008 17:35 schreef PiRANiA het volgende:

[..]

wat bedoel je?
Zo zou het eruit moeten zien: "./files/images/smiles/icon_smile.gif"

Met wat ik geprobeerd heb ziet het er als volgt uit (als ik de paginabron bekijk):
"$dir_smiles/icon_smile.gif"
"$dir_smiles./icon_smile.gif"
"<?=$dir_smiles;?>/icon_smile.gif"
pi_55932074
quote:
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.
Heh. Dat is inderdaad mooier. Dit ga ik vaak gebruiken denk ik Ik kende de range function niet, en gebruik toch wel redelijk vaak set queries.
"Reality is an illusion created by a lack of alcohol."
pi_55932147
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.
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. :)

1
2
3
4
5
<?php
foreach (range(1,52) as $weeknumber){

}
?>


Overigens is de derde parameter van de functie range wel enkel voor php 5.0.0 en hoger.
pi_55932186
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
<?php
    $path 
"./files/images/smiles/";
    
$text str_replace(':)','<img src="'.$path.'icon_smile.gif" border="0" alt="" />',$text);
?>


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..
pi_55932292
quote:
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.
Dit deed ik altijd met een for-loopje. Dit is inderdaad mooier

Zitten trouwens leuke functies tussen hierboven. Morgen maar eens proberen allemaal
pi_55932470
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..
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.
pi_55932636
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.
Dan heb je een '/' teveel, waarschijnlijk heb je die nog voor 'icon_smile.gif' staan en die moet je dan even weghalen..

Dit doet het namelijk perfect, dus zou het ergens anders in moeten zitten:
1
2
3
4
5
<?php
    $text 
':)';
    
$path "./files/images/smiles/";
    echo 
$text str_replace(':)','[img src="'.$path.'icon_smile.gif" border="0" alt="" /]',$text);
?>


[ Bericht 25% gewijzigd door Tarabass op 10-01-2008 20:28:41 ]
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')