abonnement Unibet Coolblue Bitvavo
  maandag 25 februari 2008 @ 23:02:23 #102
84926 WyriHaximus
Release the hounds smithers!
pi_56975641
quote:
Op maandag 25 februari 2008 22:37 schreef Farenji het volgende:

[..]

Dan is niet alleen je PC brak.
Ja of wel, afaik kan PHP niet maar geheugen assignen dan de hoeveelheid RAM die je hebt. Tenminste daar liep ik tegen aan toen ik aan het kutten was met een bitmap in een array stoppen (NIET DOEN!!!) .
phluphy for president!
pi_56976950
quote:
Op maandag 25 februari 2008 22:47 schreef Farenji het volgende:

[..]

Wat voor indexes gebruik je precies, en van wat voor type zijn die? En hoe match je op de woorden, doe je dat letterlijk (where field = "blaat"), met een LIKE of met een fulltext search?
Ik heb de woorden tabel geindexeerd en de verwijzing ernaar in de andere tabel ook. Het is gewoon het standaard type, ik doe dat op de volgende manier:

1$query = "CREATE INDEX zoekwoord_ix ON woorden (zoekwoord)";


Verder gebruik ik idd gewoon where, en de search kan naar meerdere woorde zoeken, dat kan zowel met een OR of AND operator.

Het script zoekt eerst naar het woord in de database en voert dat voor elk woord uit en daar komen dan topicnummers voor terug. Vervolgens worden de gevonden topics in een array gezet en krijgen ze een bepaalde score. Als een woord vaker voorkomt in een bepaald topic dan wordt die score verhoogd. Vervolgens sorteer ik die array en komen de meest relevante topics bovenaan te staan, als datum als sorteervolgorde is gekozen dan worden gewoon de topics met het grootste of kleinste topicnr. bovenaan gezet. Vervolgens kijkt het script of alle opgegeven woorden (als AND is gebruikt) voorkomen in een bepaald topic en worden de resultaten die doorkomen op de pagina geprint. Bij OR worden gewoon alle resultaten geprint.
pi_56979953
quote:
Op maandag 25 februari 2008 22:34 schreef ErikN het volgende:
+ ik weet dat het kan. Heb er ook al wel wat over gelezen. Alleen begrijp er niet veel van nog...
Je kunt een script toch na xxx records 3 seconden laten wachten het script middels header weer aanroepen en verder gaan waar je gebleven bent? zo draai ik cronjobs voor databases met meer dan 1 milj records!
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_56980209
Ik denk dat een FULLTEXT search wel sneller is dan een WHERE / LIKE?

Chandler: codevoorbeeldje?
pi_56980839
quote:
Op maandag 25 februari 2008 23:02 schreef WyriHaximus het volgende:

[..]

Ja of wel, afaik kan PHP niet maar geheugen assignen dan de hoeveelheid RAM die je hebt. Tenminste daar liep ik tegen aan toen ik aan het kutten was met een bitmap in een array stoppen (NIET DOEN!!!) .
Je hebt natuurlijk altijd geheugenbeperkingen maar dat ligt ook aan de implementatie. Met 1 image die je wil verwerken heb je weinig keus maar als je bijv een db import draait dan moet je natuurlijk niet die hele import eerst in je geheugen lezen en daarna pas wegschrijven. Als je dit netjes per record itereert dan kost het nauwelijks geheugen. Ik maak zelf regelmatig scripts voor tabellen met miljoenen rows, geen enkel probleem.
  dinsdag 26 februari 2008 @ 10:55:03 #107
84926 WyriHaximus
Release the hounds smithers!
pi_56981946
quote:
Op dinsdag 26 februari 2008 09:53 schreef Farenji het volgende:

[..]

Je hebt natuurlijk altijd geheugenbeperkingen maar dat ligt ook aan de implementatie. Met 1 image die je wil verwerken heb je weinig keus maar als je bijv een db import draait dan moet je natuurlijk niet die hele import eerst in je geheugen lezen en daarna pas wegschrijven. Als je dit netjes per record itereert dan kost het nauwelijks geheugen. Ik maak zelf regelmatig scripts voor tabellen met miljoenen rows, geen enkel probleem.
Je moet natuurlijk wel je script fatsoenlijk bouwen idd. Maar me punt was meer dat het aan ze bak kon liggen (niet waarschijnlijk). Aan de andere kant heb ik hier een oude P3 met 196MB RAM staan als thuis servertje die scripts draait waar rustig 90.000 reccords door heen worden geschoten dus het moet een aardige brakke dev bak zijn dan .
phluphy for president!
pi_56987605
quote:
Op dinsdag 26 februari 2008 09:08 schreef Xcalibur het volgende:
Ik denk dat een FULLTEXT search wel sneller is dan een WHERE / LIKE?

Chandler: codevoorbeeldje?
In stappen.
session_start

select * from tabel LIMIET $_SESSION['start'], 250

$_SESSION['start'] = $_SESSION['start'] + 250;

sleep(300);

header("location: zelfde script");

voorbeeld genoeg?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_56989919
quote:
Op maandag 25 februari 2008 23:55 schreef The_Terminator het volgende:

[..]

Ik heb de woorden tabel geindexeerd en de verwijzing ernaar in de andere tabel ook. Het is gewoon het standaard type, ik doe dat op de volgende manier:
[ code verwijderd ]

Verder gebruik ik idd gewoon where, en de search kan naar meerdere woorde zoeken, dat kan zowel met een OR of AND operator.

Het script zoekt eerst naar het woord in de database en voert dat voor elk woord uit en daar komen dan topicnummers voor terug. Vervolgens worden de gevonden topics in een array gezet en krijgen ze een bepaalde score. Als een woord vaker voorkomt in een bepaald topic dan wordt die score verhoogd. Vervolgens sorteer ik die array en komen de meest relevante topics bovenaan te staan, als datum als sorteervolgorde is gekozen dan worden gewoon de topics met het grootste of kleinste topicnr. bovenaan gezet. Vervolgens kijkt het script of alle opgegeven woorden (als AND is gebruikt) voorkomen in een bepaald topic en worden de resultaten die doorkomen op de pagina geprint. Bij OR worden gewoon alle resultaten geprint.
Dit klinkt als heel veel losse stappen. Wat ik zou doen is mysql het zware werk laten doen: een dergelijke zoekmethode kun je volgens mij prima vangen in 1 of 2 queries die je opbouwt aan de hand van de argumenten (zoekwoorden, sorteervolgorde, AND/OR). Mysql is oha veel efficienter in sorteren van resultaten dan je zelf ooit kan doen in php. Er zijn ook vele verschillende sorteeralgoritmes, de een efficienter dan de ander, en de een is ook geschikter voor een bepaalde taak dan de ander, je moet maar net de juiste kiezen. Mysql zal meestal de best (beschikbare) methode gebruiken. Het zou goed kunnen dat daar je bottleneck ligt.

Als je dan die ene query ook nog zo efficient mogelijk maakt (EXPLAIN is je vriend - hiermee zie je of je indexes ook optimaal gebruikt worden) dan kom je volgens mij aardig in de buurt van optimaal zoeken.
pi_56991661
quote:
Op dinsdag 26 februari 2008 15:08 schreef Chandler het volgende:
voorbeeld genoeg?
is op zich wel simpel he, eigenlijk
Waarom zit die sleep() er nou nog in?
pi_56992287
om je script te pauzeren, echter kun je dan daarvoor beter als je een mysql connectie hebt gemaakt deze sluiten met mysql_close of je doet een refresh middels javascript!
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_56992481
quote:
Op dinsdag 26 februari 2008 18:22 schreef Chandler het volgende:
om je script te pauzeren, echter kun je dan daarvoor beter als je een mysql connectie hebt gemaakt deze sluiten met mysql_close of je doet een refresh middels javascript!
Waarom wil je er een pauze in ? Je pakt toch max 250 tegelijk, waarom de pauze?
ne okuyon, bokmu var?
pi_56992627
Ik snap dat die sleep erin zit om het ding te pauzeren, maar (zoals Saban terecht vraagt) waarom de pauze?
pi_56996144
waarom niet saban, je gunt de server zo even wat meer ademruimte, zekers handig als je op een shared server zit
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  dinsdag 26 februari 2008 @ 22:21:15 #115
12880 CraZaay
prettig gestoord
pi_56998618
quote:
Op dinsdag 26 februari 2008 20:37 schreef Chandler het volgende:
waarom niet saban, je gunt de server zo even wat meer ademruimte, zekers handig als je op een shared server zit
Je gunt die server helemaal niets, aangezien iedere actie pas wordt gestart als de vorige is afgerond. Het kan een server echt niets schelen of 'ie continu door moet of 3 seconden rust krijgt.
  woensdag 27 februari 2008 @ 12:22:40 #116
136730 PiRANiA
All thinking men are atheists.
pi_57008120
Ik heb een vraagje.
Ik wil van een tabel `data` de laatste 30 rijen halen. Ik heb er een timestamp bij.

Dit meot dus met LIMIT. Maar hoe moet het als ik de laatste 30 wil EN de volgorde wil behouden?
pi_57008768
Welke volgorde?
"Reality is an illusion created by a lack of alcohol."
  woensdag 27 februari 2008 @ 13:36:15 #118
12880 CraZaay
prettig gestoord
pi_57009822
ORDER BY timestamp DESC, LIMIT 30

Geeft de 30 rows met de hoogste timestamps, van hoog naar laag.
pi_57009997
quote:
Op dinsdag 26 februari 2008 20:37 schreef Chandler het volgende:
waarom niet saban, je gunt de server zo even wat meer ademruimte, zekers handig als je op een shared server zit
Of je je script nou nu aanroept of over 3 seconde, wat maakt dat uit?
Ik weet wat de sleep command doet, maar ik zie er geen voordeel in.
ne okuyon, bokmu var?
pi_57012467
Servers regelen hun eigen ademruimte wel door middel van kernel scheduling. En dat kan ie beter als de belasting van processen een beetje constant is, niet als het proces om de zoveel tijd opeens stilvalt en opeens weer vol doorgaat. Het werkt alleen averechts, zo'n sleep.
pi_57013231
Die sleep mag je idd vergeten, maar het script stoppen en dan na bv 3-5 seconden weer aanroepen lijkt mij beter voor de server, zelfde als 10000 emails in 1x versturen, dat vind een server ook niet leuk maar als je 250 per batch verstuurd is er niets aan de hand
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  woensdag 27 februari 2008 @ 16:26:31 #122
12880 CraZaay
prettig gestoord
pi_57013423
Waarom zou een server dat iets kunnen schelen? Hij hoeft echt niet even af te koelen tussendoor hoor
  woensdag 27 februari 2008 @ 16:38:11 #123
136730 PiRANiA
All thinking men are atheists.
pi_57013709
quote:
Op woensdag 27 februari 2008 13:36 schreef CraZaay het volgende:
ORDER BY timestamp DESC, LIMIT 30

Geeft de 30 rows met de hoogste timestamps, van hoog naar laag.
SELECT * FROM `scores` WHERE `naam`='$speler' ORDER BY `tijd` ASC

limit 30 er achter en hij neemt de laatste 30?
pi_57013811
quote:
Op woensdag 27 februari 2008 16:18 schreef Chandler het volgende:
Die sleep mag je idd vergeten, maar het script stoppen en dan na bv 3-5 seconden weer aanroepen lijkt mij beter voor de server, zelfde als 10000 emails in 1x versturen, dat vind een server ook niet leuk maar als je 250 per batch verstuurd is er niets aan de hand
Dat ligt aan een maximum aantal mails per keer dat in de mailserverconfig ingesteld. Dat heeft niks met belasting te maken. Een server gaat niet kapot van belasting, volgens mij dicht je die dingen iets te veel menselijke eigenschappen toe
  woensdag 27 februari 2008 @ 16:42:58 #125
136730 PiRANiA
All thinking men are atheists.
pi_57013822
Voor de duidelijkheid, dit is er wat er in mijn tabel staat (fictief):

1
2
3
4
5
6
7
8
9


het vetgedrukte is wat ik wil hebben...
  woensdag 27 februari 2008 @ 16:52:14 #126
136730 PiRANiA
All thinking men are atheists.
pi_57014008
quote:
Op woensdag 27 februari 2008 16:42 schreef PiRANiA het volgende:
Voor de duidelijkheid, dit is er wat er in mijn tabel staat (fictief):

1
2
3
4
5
6
7
8
9


het vetgedrukte is wat ik wil hebben...
lama, ik heb het al gefikst:

quote:
$speler=mysql_real_escape_string($_GET['speler']);
$res=mysql_fetch_array(mysql_query("SELECT COUNT(*) AS limiet FROM `scores` WHERE `naam`='$speler'"));
$wer=$res['limiet'];
if($wer>$maxopvragingen){
$wer=$wer-$maxopvragingen;
}ELSE{
$wer='0';
}


$q="SELECT * FROM `scores` WHERE `naam`='$speler' ORDER BY `tijd` ASC LIMIT $wer,$maxopvragingen";
  woensdag 27 februari 2008 @ 17:29:24 #127
12880 CraZaay
prettig gestoord
pi_57014770
quote:
Op woensdag 27 februari 2008 16:38 schreef PiRANiA het volgende:

[..]

SELECT * FROM `scores` WHERE `naam`='$speler' ORDER BY `tijd` ASC

limit 30 er achter en hij neemt de laatste 30?
Nee, de eerste 30. Je wilt DESC ipv ASC gebruiken om van hoog naar laag te sorteren.
pi_57014900
Volgens mij is de truuk dat je het met een subquery doet ofzo...?
Dit is al vaak gevraagd trouwens, Google moet het antwoord wel weten
pi_57015585
Gewoon in DESC opvragen en de volgorde van de resultaten in je php code omdraaien, dat is het makkelijkste.
  woensdag 27 februari 2008 @ 18:37:15 #130
12880 CraZaay
prettig gestoord
pi_57016071
Precies, bovenstaande code geeft al een array terug. Even array_reverse() erover en klaar.
pi_57016726
ja, maar het in je query doen is mooier
  woensdag 27 februari 2008 @ 20:02:18 #132
136730 PiRANiA
All thinking men are atheists.
pi_57018238
quote:
Op woensdag 27 februari 2008 18:37 schreef CraZaay het volgende:
Precies, bovenstaande code geeft al een array terug. Even array_reverse() erover en klaar.
maar lukt dat ook met het result direct van de query?
  woensdag 27 februari 2008 @ 20:07:38 #133
12880 CraZaay
prettig gestoord
pi_57018366
quote:
Op woensdag 27 februari 2008 19:04 schreef Xcalibur het volgende:
ja, maar het in je query doen is mooier
Maar een subquery hiervoor is vast niet efficienter als het over 30 records gaat, maar dat zou je kunnen benchmarken
  woensdag 27 februari 2008 @ 20:08:49 #134
12880 CraZaay
prettig gestoord
pi_57018393
quote:
Op woensdag 27 februari 2008 20:02 schreef PiRANiA het volgende:

maar lukt dat ook met het result direct van de query?
Nee, want dat is een resource waar je zo niets mee kan (het directe resultaat van mysql_query()). PHP moet er nog wel een array van maken.
  woensdag 27 februari 2008 @ 20:20:45 #135
136730 PiRANiA
All thinking men are atheists.
pi_57018630
quote:
Op woensdag 27 februari 2008 20:08 schreef CraZaay het volgende:

[..]

Nee, want dat is een resource waar je zo niets mee kan (het directe resultaat van mysql_query()). PHP moet er nog wel een array van maken.
ja idd, maar dat wordt lastig denk ik. Of je moet er een
quote:
while($row=mysql_fetch_array($result)){
array_push($array,$row);
}
array_revert($array);
in gooien maar dat lijkt me niet echt efficient
  woensdag 27 februari 2008 @ 20:21:23 #136
136730 PiRANiA
All thinking men are atheists.
pi_57018645
quote:
Op woensdag 27 februari 2008 17:29 schreef CraZaay het volgende:

[..]

Nee, de eerste 30. Je wilt DESC ipv ASC gebruiken om van hoog naar laag te sorteren.
leest mijn 1e post ik wil de volgorde behouden...
  woensdag 27 februari 2008 @ 20:23:54 #137
12880 CraZaay
prettig gestoord
pi_57018695
quote:
Op woensdag 27 februari 2008 20:21 schreef PiRANiA het volgende:

[..]

leest mijn 1e post ik wil de volgorde behouden...
Je wilt de tijd dus niet op chronologische volgorde van laag naar hoog, en dan de 30 records met de hoogste waarde? Dat is namelijk wat mijn code doet Mits je er een array van maakt uiteraard, maar dat moet je gewoon oplossen in je database layer of voor een ActiveRecord-achtige implementatie kiezen. Je wilt sowieso niet overal die hard queries typen, maar een database wrapper maken.
  woensdag 27 februari 2008 @ 20:39:16 #138
136730 PiRANiA
All thinking men are atheists.
pi_57019125
quote:
Op woensdag 27 februari 2008 20:23 schreef CraZaay het volgende:

[..]

Je wilt de tijd dus niet op chronologische volgorde van laag naar hoog, en dan de 30 records met de hoogste waarde? Dat is namelijk wat mijn code doet Mits je er een array van maakt uiteraard, maar dat moet je gewoon oplossen in je database layer of voor een ActiveRecord-achtige implementatie kiezen. Je wilt sowieso niet overal die hard queries typen, maar een database wrapper maken.
k...maar ik had het inmiddels al gefikst hoor
pi_57019129
quote:
Op woensdag 27 februari 2008 20:20 schreef PiRANiA het volgende:

[..]

ja idd, maar dat wordt lastig denk ik. Of je moet er een
[..]

in gooien maar dat lijkt me niet echt efficient
Zou een array_revert op een array met 30 elementen langzamer zijn dan een hele extra query?
  woensdag 27 februari 2008 @ 20:41:29 #140
136730 PiRANiA
All thinking men are atheists.
pi_57019191
quote:
Op woensdag 27 februari 2008 20:39 schreef Igen het volgende:

[..]

Zou een array_revert op een array met 30 elementen langzamer zijn dan een hele extra query?
het gaat vooral om dat hele fetchen er voor...

maar ik cache de pagina binnenkort toch, dus dan maakt het niet zo veel meer uit
pi_57020386
Ik was me een beetje aan het verdiepen in template engines. Sommige groot, sommige klein, maar vond ze over het algemeen omslachtig. Bovendien moet alles geparsed worden. Tijdens mijn zoektocht kwam ik dit artikel tegen. Wat vinden jullie van zijn stelling en class? Dus een template-class of een template-engine?
  woensdag 27 februari 2008 @ 22:16:39 #142
12880 CraZaay
prettig gestoord
pi_57021514
quote:
Op woensdag 27 februari 2008 21:29 schreef Tarabass het volgende:
Ik was me een beetje aan het verdiepen in template engines. Sommige groot, sommige klein, maar vond ze over het algemeen omslachtig. Bovendien moet alles geparsed worden. Tijdens mijn zoektocht kwam ik dit artikel tegen. Wat vinden jullie van zijn stelling en class? Dus een template-class of een template-engine?
Het artikel is 5 jaar oud he, voor de duidelijkheid. Template engines zijn uit, MVC is in.
pi_57021751
quote:
Op woensdag 27 februari 2008 22:16 schreef CraZaay het volgende:

[..]

Het artikel is 5 jaar oud he, voor de duidelijkheid. Template engines zijn uit, MVC is in.
Is dat niet te combineren dan, templates en MVC?
  woensdag 27 februari 2008 @ 22:28:15 #144
12880 CraZaay
prettig gestoord
pi_57021813
quote:
Op woensdag 27 februari 2008 22:25 schreef Light het volgende:

[..]

Is dat niet te combineren dan, templates en MVC?
De "V" in MVC staat voor view, templates dus Maar een totaal ander concept dan Smarty.
pi_57025919
Call me crazy, maar kan het zijn dat in de recente versies van MySQL je niet meer rekensommen kan toepassen in een UPDATE statement? Dus zo van " `Sort` = `Sort` + 1 " ?
  donderdag 28 februari 2008 @ 08:01:34 #146
12880 CraZaay
prettig gestoord
pi_57027359
quote:
Op donderdag 28 februari 2008 01:05 schreef Geqxon het volgende:
Call me crazy, maar kan het zijn dat in de recente versies van MySQL je niet meer rekensommen kan toepassen in een UPDATE statement? Dus zo van " `Sort` = `Sort` + 1 " ?
Het lijkt me heeeeeel sterk
pi_57027602
Dan ben ik crazy. Ik neem aan dat dit dan handig via PHP moet?
pi_57027852
quote:
Op donderdag 28 februari 2008 01:05 schreef Geqxon het volgende:
Call me crazy, maar kan het zijn dat in de recente versies van MySQL je niet meer rekensommen kan toepassen in een UPDATE statement? Dus zo van " `Sort` = `Sort` + 1 " ?
Krijg je een mysql foutmelding dan?

En over welke recente versie heb je het? Zo'n update werkt iig wel in MySQL 5.0.45.
pi_57028421
Lijkt me dat dat gewoon moet werken
pi_57029616
Ik heb mijn systeembeheerder eens schop gegeven. Het nadeel van in huis je eigen intranet hosten, niemand neemt de moeite om de software eens te updaten.

Gaat nu prima zo. Ik kreeg net een error die afaik iets was van "Column not found" oid.
pi_57030094
quote:
Op woensdag 27 februari 2008 22:16 schreef CraZaay het volgende:

[..]

Het artikel is 5 jaar oud he, voor de duidelijkheid. Template engines zijn uit, MVC is in.
Dat het artikel zo oud was wist ik. Dat MVC in is wist ik niet en heb daar ook nog nooit van gehoord. Ik ga me inlezen en kom wellicht met vragen terug

Heeft iemand nog tips voor wat ik hiervoor kan downloaden en wat een goeie Model-View-Controller is?
pi_57030391
Wat een goede MVC is? MVC is een methode, een manier om iets te ontwikkelen. Niet iets dat je als een framework of engine zomaar even download.
  donderdag 28 februari 2008 @ 11:12:24 #153
12880 CraZaay
prettig gestoord
pi_57030422
De meest gebruikte MVC-frameworks voor PHP zijn Code Igniter en CakePHP.
pi_57030462
is Sort geen gereserveerd woord toevallig? Ik gebruik altijd sortorder voor zo'n kolom....


Edit: dit gaat dus over Geqxon z'n sorteerprobleem... ik had een paar posts op de nieuwe pagina over het hoofd gezien
pi_57030469
quote:
Op donderdag 28 februari 2008 11:10 schreef Geqxon het volgende:
Wat een goede MVC is? MVC is een methode, een manier om iets te ontwikkelen. Niet iets dat je als een framework of engine zomaar even download.
Oké, maar zijn er goeie voorbeelden of tutorials te downloaden waaruit ik het kan leren en zelf kan doen? Ik moet toch ergens beginnen
pi_57030485
quote:
Op donderdag 28 februari 2008 11:14 schreef Xcalibur het volgende:
is Sort geen gereserveerd woord toevallig? Ik gebruik altijd sortorder voor zo'n kolom....
Och, ik gebruik backticks. Gaat prima zo.
pi_57030541
Heb je wel eens met zo'n framework gewerkt tarabass? Als je even in cakephp duikt is het snel duidelijk hoe zo'n MVC werkt, daar wordt je geforceerd zo te werken. Very OOP
"Reality is an illusion created by a lack of alcohol."
pi_57030685
Zelf beken ik met schaamte dat ik nog met een template engine werk.
pi_57031095
quote:
Op donderdag 28 februari 2008 11:17 schreef Dzy het volgende:
Heb je wel eens met zo'n framework gewerkt tarabass? Als je even in cakephp duikt is het snel duidelijk hoe zo'n MVC werkt, daar wordt je geforceerd zo te werken. Very OOP
Nee, dat niet. Ik heb de cakephp nu gedownload en moet nu naar mn werk, maar zal vanavond eens die "learn-sectie" van hun site doornemen. Bedankt voor de tips tot dusver
  donderdag 28 februari 2008 @ 11:44:44 #160
84926 WyriHaximus
Release the hounds smithers!
pi_57031170
quote:
Op donderdag 28 februari 2008 11:24 schreef Geqxon het volgende:
Zelf beken ik met schaamte dat ik nog met een template engine werk.
Niks mis mee toch? Ga zelf eem template engine bouwen voor het MVC framework wat ik gebruik (CakePHP) .
phluphy for president!
pi_57031380
quote:
Op donderdag 28 februari 2008 11:44 schreef WyriHaximus het volgende:

[..]

Niks mis mee toch? Ga zelf eem template engine bouwen voor het MVC framework wat ik gebruik (CakePHP) .
Mijn huidige systeem werkt eigenlijk als volgt:

Reguliere file:
-Handlen van user-events ($_GET / $_POST)
-Ophalen van data uit database en in de $output array stoppen
-Template file includen

Template file:
-Een template class starten, en daar stukje bij beetje HTML aan voeden door de opgehaalde data te verwerken
-Een HTML template file inladen en parsen (dingen als {title} e.d.)
-De door PHP gegenereerde HTML stukken aan de HTML template file toevoegen
-GZIP-pen
-Aan de browser doorgeven.

Ik zou het heel tof vinden om ook met frameworks aan de slag te gaan, maar dat gaat toch iets te veel boven mijn pet.
  donderdag 28 februari 2008 @ 12:09:29 #162
12880 CraZaay
prettig gestoord
pi_57031732
quote:
Op donderdag 28 februari 2008 11:44 schreef WyriHaximus het volgende:

[..]

Niks mis mee toch? Ga zelf eem template engine bouwen voor het MVC framework wat ik gebruik (CakePHP) .
En waar gebruik je de views dan voor? Ik ben niet bekend met Cake (wel met Code Igniter), maar views zijn toch al templates?
pi_57031847
Ik gebruik geen MCV's juist omdat ik wil weten wat mijn code doet en het liefst zelf alles van a-z maak (met soms een beetje hulp van FOK )
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  donderdag 28 februari 2008 @ 12:33:20 #164
12880 CraZaay
prettig gestoord
pi_57032318
Als je het MVC-model gebruikt, al dan niet i.c.m. een MVC-framework, moet je natuurlijk ook weten wat je code doet. Het wiel opnieuw uitvinden of je eigen model a la MVC ontwikkelen is mateloos inefficient uiteraard. PHP'ers hebben daar kennelijk toch een handje van, terwijl de rest van de wereld (andere talen) wel al jaaaaaren frameworks gebruiken naar volle tevredenheid.
pi_57032452
quote:
Op donderdag 28 februari 2008 12:14 schreef Chandler het volgende:
Ik gebruik geen MCV's juist omdat ik wil weten wat mijn code doet en het liefst zelf alles van a-z maak (met soms een beetje hulp van FOK )
MVC is een manier om je applicatie te structureren, het is geen framework, het is geen software. Het is een aantal richtlijnen voor de architectuur: je scheidt je applicatie op in 3 logische basisblokken: model (datamodel en objectmodel), view (de interface voor de gebruiker) en de controller (die view en model aan elkaar koppelt). Hoe je dat doet is aan jezelf, je kan het van a tot z zelf opbouwen, je kan er verschillende losse modules voor gebruiken of je kan een compleet framework als Cake of Catalyst of wat dan ook voor gebruiken.

En in webapplicaties bestaat die view meestal gewoon uit een template engine. Het is onzin om te beweren dat template engines "uit" zouden zijn. En MVC is zelf trouwens ook al zo oud als de weg naar rome.
  donderdag 28 februari 2008 @ 13:06:15 #166
12880 CraZaay
prettig gestoord
pi_57033085
quote:
Op donderdag 28 februari 2008 12:39 schreef Farenji het volgende:

En in webapplicaties bestaat die view meestal gewoon uit een template engine. Het is onzin om te beweren dat template engines "uit" zouden zijn. En MVC is zelf trouwens ook al zo oud als de weg naar rome.
Natuurlijk wordt een view ook door een template engine gehaald, er moet immers variabele data in. Maar das imo iets anders dan bijv. een Smarty. En natuurlijk is MVC zo oud als de weg naar Rome, maar wordt het daar een slechter concept door?

Het probleem wat ik bloot bedoelde te leggen met de traditionele template engines is dat PHP'ers daardoor alsnog een ratjetoe van code maken met alles door elkaar (database, logica, etc) om vervolgens alleen voor het tonen een template engine te gebruiken. MVC is absoluut "in", in de betekenis dat het steeds meer gebruikt wordt en je er (imo) nettere code door krijgt die beter te begrijpen is voor derden (convention over configuration enzo).
  donderdag 28 februari 2008 @ 13:14:25 #167
84926 WyriHaximus
Release the hounds smithers!
pi_57033292
quote:
Op donderdag 28 februari 2008 12:09 schreef CraZaay het volgende:

[..]

En waar gebruik je de views dan voor? Ik ben niet bekend met Cake (wel met Code Igniter), maar views zijn toch al templates?
Idd. Alleen mis ik wat dingen, mogelijkheden en opties vandaar dat ik er een eigen systeem voor ga bouwen om dat af te handelen .
phluphy for president!
  donderdag 28 februari 2008 @ 13:20:14 #168
12880 CraZaay
prettig gestoord
pi_57033442
Ah, interessant. Zoals welke opties? Ben niet nieuwsgierig
pi_57034189
quote:
Op donderdag 28 februari 2008 12:14 schreef Chandler het volgende:
Ik gebruik geen MCV's juist omdat ik wil weten wat mijn code doet en het liefst zelf alles van a-z maak (met soms een beetje hulp van FOK )
het is MVC, Model View Controller, en het is wat anders dan een framework waar mee jij het verward. Het is een design pattern.

Ik gebruik ook een MVC voor een project waar ik mee bezig ben, en ik heb alle code van A - Z zelf geschreven.

Frameworks als CakePHP en CodeIgniter zijn frameworks gebaseerd op het MVC pattern.
pi_57035234
quote:
Op donderdag 28 februari 2008 13:06 schreef CraZaay het volgende:

[..]

Natuurlijk wordt een view ook door een template engine gehaald, er moet immers variabele data in. Maar das imo iets anders dan bijv. een Smarty. En natuurlijk is MVC zo oud als de weg naar Rome, maar wordt het daar een slechter concept door?
Ik heb niet gezegd dat MVC een slecht concept is, integendeel, ik ben een grote fan van MVC. Maar wat is Smarty anders dan een template engine?
quote:
Het probleem wat ik bloot bedoelde te leggen met de traditionele template engines is dat PHP'ers daardoor alsnog een ratjetoe van code maken met alles door elkaar (database, logica, etc) om vervolgens alleen voor het tonen een template engine te gebruiken. MVC is absoluut "in", in de betekenis dat het steeds meer gebruikt wordt en je er (imo) nettere code door krijgt die beter te begrijpen is voor derden (convention over configuration enzo).
Tja, ook als je een framework zoals cake gebruikt kan je er een ranzig onbegrijpelijk teringzooitje van maken. Je hebt ook wat ervaring nodig om je applicatie goed te kunnen ontwerpen, onafhankelijk van wat voor taal, framework, design model of techniek je ook gebruikt. Ik heb in het verleden met praktisch dezelfde software die ik nu nog wel gebruik, ook dingen gemaakt waarvan de tranen nu in mijn onderbroek springen. Dingen als MVC ga je pas echt gebruiken als je de nadelen ervaart van een niet goed ontworpen applicatie - als je een ratjetoe met alles door elkaar moet onderhouden, debuggen of uitbreiden zie je het belang en de logica van iets als MVC vanzelf wel in.
  donderdag 28 februari 2008 @ 14:59:22 #171
12880 CraZaay
prettig gestoord
pi_57036081
quote:
Op donderdag 28 februari 2008 14:26 schreef Farenji het volgende:

Ik heb niet gezegd dat MVC een slecht concept is, integendeel, ik ben een grote fan van MVC. Maar wat is Smarty anders dan een template engine?
Niets, dat is precies wat ik bedoelde. Het is enkel een template engine die je alsnog een ranzige structuur toestaat.
quote:
Tja, ook als je een framework zoals cake gebruikt kan je er een ranzig onbegrijpelijk teringzooitje van maken. Je hebt ook wat ervaring nodig om je applicatie goed te kunnen ontwerpen, onafhankelijk van wat voor taal, framework, design model of techniek je ook gebruikt. Ik heb in het verleden met praktisch dezelfde software die ik nu nog wel gebruik, ook dingen gemaakt waarvan de tranen nu in mijn onderbroek springen. Dingen als MVC ga je pas echt gebruiken als je de nadelen ervaart van een niet goed ontworpen applicatie - als je een ratjetoe met alles door elkaar moet onderhouden, debuggen of uitbreiden zie je het belang en de logica van iets als MVC vanzelf wel in.
Dat ben ik met je eens, al vind ik wel dat een framework gebruiken er iig voor zorgt dat de conventies gevolgd worden en het (hopelijk) allemaal minder ranzig wordt
  donderdag 28 februari 2008 @ 15:22:02 #172
84926 WyriHaximus
Release the hounds smithers!
pi_57036644
quote:
Op donderdag 28 februari 2008 13:20 schreef CraZaay het volgende:
Ah, interessant. Zoals welke opties? Ben niet nieuwsgierig
Toch niet? Anyway heb nu een database als medium om me templates op te slaan omdat het lekker makkelijk bewerken is zonder dat de hele server er naar kan schrijven (777 op bestanden). (Is eingelijk de belangrijkste reden.) Daarnaast welk ik met bepaalde tags ([LMODULE.],[TEMPLATE.] en [LMODULE.]) in me templates, nieuws berichten en andere dingen en wil ik dat voor de end user makkelijk tebegrijpen houden.
phluphy for president!
pi_57038146
quote:
Op donderdag 28 februari 2008 14:59 schreef CraZaay het volgende:

[..]

Niets, dat is precies wat ik bedoelde. Het is enkel een template engine die je alsnog een ranzige structuur toestaat.
Ik heb ook wel eens engines gebruikt waar je alleen variabeles in kwijt kan. Dan blijven je templates lekker schoon en begrijpelijk (fijn voor de grafici ) maar moet je weer nare kunstgrepen gaan uithalen in je controller als je bijv een tabel wil opbouwen vanuit een array. Liever heb ik een engine waar je op zijn minst standaard loops en wat conditionals kan gebruiken, maar dat opent inderdaad al snel de weg naar ranzige templates vol logica die er niet hoort. Uiteindelijk is niks af te dwingen en moet je gewoon de discipline hebben om netjes te werken, en de programmeurs die zich niet aan de regels houden heel hard voor hun bek rammen.
pi_57088283
Hoe kan ik RGB waardes omrekenen naar HEX?
pi_57088455
quote:
Op zaterdag 1 maart 2008 20:09 schreef super-muffin het volgende:
Hoe kan ik RGB waardes omrekenen naar HEX?

Een beetje creatief zijn met base_convert. Of dechex.
pi_57088520
RGB is toch 0-255 0-255 0-255? Decimaal dus?
pi_57088897
Korte vraag , jullie weten vast het antwoord wel:

1
2
3
<?php
echo "<a href=' " $_SERVER["PHP_SELF"] . "&p=2'>".($i+1)."</a>";
?>


Krijgt als output: <a href='&p=2'>. Als ik $_SERVER['PHP-SELF'] bijv. echo dan krijg ik: www.pagina.nl/index.php?blaat=blaat . Hoe kan het dat ie hem niet weergeeft bij mijn link?
pi_57089019
quote:
Op zaterdag 1 maart 2008 20:17 schreef Geqxon het volgende:
RGB is toch 0-255 0-255 0-255? Decimaal dus?
RGB = drie getallen, niets meer en niets minder. En of je de waarden nou opschrijft als 255, 0xFF of als 0377 het blijven gewoon drie getallen tussen de 0 en de 255.
pi_57089069
quote:
Op zaterdag 1 maart 2008 20:29 schreef broodmonkeh het volgende:
Korte vraag , jullie weten vast het antwoord wel:
[ code verwijderd ]

Krijgt als output: <a href='&p=2'>. Als ik $_SERVER['PHP-SELF'] bijv. echo dan krijg ik: www.pagina.nl/index.php?blaat=blaat . Hoe kan het dat ie hem niet weergeeft bij mijn link?
In je code staat PHP_SELF en in wat je eronder schrijft PHP-SELF
Ook gebruik je in je code " en in wat je eronder schrijft '

probeer is $_SERVER['PHP_SELF'], zou moeten werken
pi_57090129
quote:
Op zaterdag 1 maart 2008 20:34 schreef Thomass het volgende:

[..]

In je code staat PHP_SELF en in wat je eronder schrijft PHP-SELF
Ook gebruik je in je code " en in wat je eronder schrijft '

probeer is $_SERVER['PHP_SELF'], zou moeten werken
Ik ga maar is slapen
pi_57098214
edit

[ Bericht 77% gewijzigd door Qunix op 02-03-2008 03:28:14 ]
pi_57098241
mod_rewrite. Of multiviews. Google er maar eens op voor tutorials.
pi_57101110
Vraagje: hoe bereken je snel de datums van:

gisteren, huidige week, vorige week, laatste 2 weken, huidige maand, laatste maand, laatste kwartaal en laatste jaar?

Ik heb al gezocht naar een logische en praktische manier maar kwam helaas met lappen code te zitten.

Liefst zie ik het als time maar dan zonder berekende uren, minuten en seconden.

Iemand een idee?

en dan nog een vraag, ik heb nu een database formaat met apparte velden voor jaar, maand, dag, dagv/dweek. maar vraag mij af of ik dit met een gewone datetime ook snel kan uitlezen?

bv uit 2008-01-05 welke dag v/d week het is of alles uit week 4 uilezen

[ Bericht 30% gewijzigd door Chandler op 02-03-2008 12:48:40 ]
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_57102702
http://nl2.php.net/manual/en/function.strtotime.php ?

1
2
3
4
5
6
7
8
9
<?php
echo strtotime("now"), "\n";
echo 
strtotime("10 September 2000"), "\n";
echo 
strtotime("+1 day"), "\n";
echo 
strtotime("+1 week"), "\n";
echo 
strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
echo 
strtotime("next Thursday"), "\n";
echo 
strtotime("last Monday"), "\n";
?>
pi_57102831
quote:
Op zondag 2 maart 2008 13:24 schreef Geqxon het volgende:
http://nl2.php.net/manual/en/function.strtotime.php ?
[ code verwijderd ]
Handig functie
ne okuyon, bokmu var?
pi_57104089
zeer handig geqxon
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_57155592
ik heb een probleempje met het volgende. onderstaande code moet ervoor zorgen dat, elke keer wanneer een bezoeker een bepaalde pagina opent, er 3 random foto's getoond worden.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?php
$path = "pics/";

// Foto's zoeken in directory en array vullen met de urls
foreach (glob($path. "*") as $imagename) {
$images[] = $imagename;
}

$maxfotos = count($images) - 1;

$i = 1;
$foto1 = "tempwaarde1";
$foto2 = "tempwaarde2";
$foto3 = "tempwaarde3";

while ($i < 4 )

{

   $foto = rand(0, $maxfotos);
   
   
   if ($i == 1)

   {

      $foto1= $foto;
      echo $foto1;

   }

   elseif ($i == 2)

   {

      $foto2= $foto;
      echo $foto2;

   }
   
   elseif ($i == 3)

   {

      $foto3= $foto;
      echo $foto3;

   }
   
   
   if (($foto1 == $foto2) || ($foto1 == $foto3) || ($foto2 == $foto3))
   
   {
   
            
   }
   
   else
   
   {
      
      echo "<img src='$images[$foto]' border='0' height='80' /> ";
      $i++;

   }

}
?>


het werkt op zich prima..maar op één punt gaat het scriptje de mist in:

wanneer bij het random selecteren van de foto's toevallig het element met key 0 uit de array $images geselecteerd wordt, en daarna wordt gecontroleerd of deze foto/dit element al een keer geselecteerd is, dan beschouwt hij deze specifieke foto als 'reeds geselecteerd'.

alleen als element met key 0 geselecteerd wordt als foto 3 dan wordt hij wel zonder problemen getoond.

weet iemand waar het foutje zit? ik kom er zelf niet uit

[ Bericht 4% gewijzigd door warezguy05 op 04-03-2008 19:29:03 ]
  dinsdag 4 maart 2008 @ 20:14:56 #189
85514 ralfie
!Yvan eht nioj
pi_57156903
je doet echt veel te moeilijk, php heeft een speciale functie voor random acties op arrays, bijv

1
2
3
4
5
<?php
$path 
"pics/";
foreach(
array_rand($x=glob($path"*"), ) as $foto
     echo 
"<img src=\"{$x[$foto]}\" border=\"0\" height=\"80\" /> ";
?>
pi_57157144
quote:
Op dinsdag 4 maart 2008 20:14 schreef ralfie het volgende:
je doet echt veel te moeilijk, php heeft een speciale functie voor random acties op arrays, bijv
[ code verwijderd ]
ah kijk..dat wist ik als beginner nog niet. maar het werkt fantastisch dus bedankt!
  dinsdag 4 maart 2008 @ 20:40:37 #191
85919 Likkende_Lassie
Doe eens wat aan je ondertitel
pi_57157593
Ralfie, waarom echo " " doen en niet echo ' ' ?
pi_57158233
quote:
Op dinsdag 4 maart 2008 20:40 schreef Likkende_Lassie het volgende:
Ralfie, waarom echo " " doen en niet echo ' ' ?
Persoonlijke voorkeur? Multiline? Snelheid? Parsen van variabelen?
  dinsdag 4 maart 2008 @ 21:10:47 #193
85919 Likkende_Lassie
Doe eens wat aan je ondertitel
pi_57158341
Ik zie vaak dat mensen een dubbele quote gebruiken, maar vervolgens in de hele HTML slashes moeten gebruiken, er onhandig lijkt me toch??
pi_57158962
quote:
Op dinsdag 4 maart 2008 21:10 schreef Likkende_Lassie het volgende:
Ik zie vaak dat mensen een dubbele quote gebruiken, maar vervolgens in de hele HTML slashes moeten gebruiken, er onhandig lijkt me toch??
Het mooiste is nog altijd een sprintf in combinatie met single-quotes.
  dinsdag 4 maart 2008 @ 21:42:44 #195
85919 Likkende_Lassie
Doe eens wat aan je ondertitel
pi_57159369
Ook dat heb ik vaak gezien, maar nooit gebruikt, terwijl ik al een poosje script, misschien eens handig voor me om naar te kijken!

Maar zit er nog verschil in een enkele of een dubble quote, behalve dan dat je direct een $string dr in kan zetten? Dat los ik gewoon op door bv.. echo 'blablabla '.$string.' blablabla';

pi_57159453
Enkele quotes is sneller, omdat die niet geparsed hoeven te worden.
pi_57159726
Direct een variabele in een string vind ik imho behoorlijk bah.

1
2
3
<?php
     printf
('<img src="%s" border="0" height="80">'$x[$foto]);
?>


Als het dan toch moet, vind ik dit het netste.
  dinsdag 4 maart 2008 @ 21:56:01 #198
85919 Likkende_Lassie
Doe eens wat aan je ondertitel
pi_57159780
quote:
Op dinsdag 4 maart 2008 21:54 schreef Geqxon het volgende:
Direct een variabele in een string vind ik imho behoorlijk bah.
[ code verwijderd ]

Als het dan toch moet, vind ik dit het netste.
Waarom zou iemand het eigenlijk zo willen? Kan me ff niet zo snel een reden bedenken....
Farenji, logische reden ja
pi_57159957
quote:
Op dinsdag 4 maart 2008 21:56 schreef Likkende_Lassie het volgende:

[..]

Waarom zou iemand het eigenlijk zo willen? Kan me ff niet zo snel een reden bedenken....
Farenji, logische reden ja
Zo dat ik de statische HTML en de dynamische variabelen in een enkel oogopslag kan onderscheiden. Daarnaast heb je geen ranzige constructies als het aan elkaar plakken van strings (nogmaals : mijn mening), en kun je ook data 'parsen'. Als ik geen %s maar %d had gedaan, dan zou op die plek enkel en alleen een integer kunnen staan. Makkelijk bij bijvoorbeeld 'index.php?id=%d'.
pi_57160012
Een voorbeeld van hoe ik op deze wijze een query netjes kan maken:

1
2
3
4
5
6
7
8
9
<?php
    $sql 
sprintf("INSERT INTO mod_item 
    (Parent_ID, Title, Content, View)
    VALUES('%d', '%s','%s','%s')"
,
    
$input_parent['ID'],
    
mysql_real_escape_string($input_title), 
    
mysql_real_escape_string($input_content),
    
mysql_real_escape_string($input_view));
?>
pi_57160961
quote:
Op dinsdag 4 maart 2008 21:45 schreef Farenji het volgende:
Enkele quotes is sneller, omdat die niet geparsed hoeven te worden.
Alsof dat ook maar iets uitmaakt, het feit dat je gewoon variabelen tussen tekst door kan typen is toch geweldig handig? Een beetje editor zorgt dan ook gelijk voor normale highlighting zodat het goed opvalt..
  dinsdag 4 maart 2008 @ 22:33:06 #202
85919 Likkende_Lassie
Doe eens wat aan je ondertitel
pi_57161002
ok direct een stuk veiliger dus.. ?

Dit is trouwens hoe ik al mn querys check, veilig volgens jullie?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
function secureValue($value$html){

   if (!
$html){
     
$value strip_tags($value'<b>,<a>,<i>,<u>,<img>');
   }else{
      
$value htmlnumericentities($value);
   }
   if (!
$value){
      
$value NULL;
   }

   switch (
gettype($value)) {
      case 
'boolean':
         return 
$value '1' '0';
      case 
'integer':
      case 
'double':
         return (string)
$value;
      case 
'string':
         return 
"'".addslashes($value)."'";
      case 
'array':
      case 
'object':
         return 
"'".addslashes($value)."'";
      default:
         
//'resource', 'NULL', 'unknown type'
         
return 'NULL';
         die();
   }
}
?>
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')