Farenji | maandag 14 januari 2008 @ 23:45 |
 cd niet bijgeleverd
Als je vragen hebt over PHP/MySQL, dan zit je hier goed met een vaste kliek guru's en een groot aantal regelmatige bezoekers. Beperk je vragen niet tot "hij doet het niet" of "hij geeft een fout" - onze glazen bol is kapot en we willen graag van je weten w�t er niet lukt en w�lke foutmelding je precies krijgt 
Vorige delen: 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
Zie ook: PHP Dataverwerking Offici�le PHP website PHP Documentatie MySQL Reference Manual Yet Another PHP Faq PHP Cheat Sheet PHP5 Power Programming - boek met uitleg over OOP, Pear, XML, etc
Tutorials: W3Schools PHP W3Schools SQL
Deze OP en instructies voor nieuw topic: http://wiki.fok.nl/index.php/OP/PHP |
Farenji | maandag 14 januari 2008 @ 23:47 |
Zo, party on! |
Geqxon | dinsdag 15 januari 2008 @ 00:56 |
Ik moet trouwens wel zeggen dat ik de laatste tijd wel telkens meer richting JSP aan het gaan ben, i.p.v. PHP.  |
PiRANiA | dinsdag 15 januari 2008 @ 08:35 |
Weet iemand hoe ik dit moet oplossen:
1 2 3 4 5 | <?php if(newtopicmatches('[PHP/(My)SQL] voor dummies')){ echo "tvp geplaatst; } ?> |
:P |
Geqxon | dinsdag 15 januari 2008 @ 08:38 |
1 2 3 | <?php $rotpost = new Reply(....) ?> |
:Y |
Tarabass | dinsdag 15 januari 2008 @ 08:49 |
quote: Wat dacht je van een countertje inbouwen  |
Mordreth | dinsdag 15 januari 2008 @ 08:50 |
quote: |
Geqxon | dinsdag 15 januari 2008 @ 08:55 |
quote: 
$this->post() |
Mordreth | dinsdag 15 januari 2008 @ 08:57 |
quote: Nee joh, die wordt gebruikt om een nieuw bericht te posten, niet een reply .
Om toch maar eens mijn eerste vraag ooit hier te stellen: Iemand enig idee hoe je een pagina kan preloaden?  |
WyriHaximus | dinsdag 15 januari 2008 @ 09:30 |
1 2 3 4 5 6 7 | include_once('Snoopy.class.php'); include_once('Human.class.php'); include_once('Fok!Bot.class.php'); $fokbot = new fokbot('WyriHaximus','jadachtjedatnouecht'); $topic_ids = $fokbot->get_topic_ids('[PHP/(My)SQL] voor dummies',16); rsort($topic_ids,SORT_NUMERIC); $fokbot->reply($topic_ids[0],6,'/me is lekker aan het coden :+'); |
|
Mordreth | dinsdag 15 januari 2008 @ 09:34 |
quote: Nu nog ff een automatische zoeker maken die 's nachts de laatste doodsverwensingen / scheldpartijen ophaalt en dan hoef je 's ochtends niet alle topics meer langs . |
WyriHaximus | dinsdag 15 januari 2008 @ 10:16 |
quote:Op dinsdag 15 januari 2008 09:34 schreef Mordreth het volgende:[..] Nu nog ff een automatische zoeker maken die 's nachts de laatste doodsverwensingen / scheldpartijen ophaalt en dan hoef je 's ochtends niet alle topics meer langs  . Nog niet eens zon slechtplan maar zat zelf aan TR's te denken en die dan in een crewonly plaats te gooien maar dat is nog maar een gedachte spinsel . |
Chandler | dinsdag 15 januari 2008 @ 10:58 |
buikgriep tvp  |
Xcalibur | dinsdag 15 januari 2008 @ 11:49 |
quote:Op maandag 14 januari 2008 23:47 schreef Farenji het volgende:De overhead van smarty is behoorlijk laag hoor, templates worden gecompileerd en gecached, uiteindelijk is het gewoon vrij geoptimaliseerde php wat je uitvoert en dus echt niet langzamer dan een oplossing die je zelf inelkaar sleutelt. Wel veel krachtiger. Inderdaad... zeker de caching doet een hoop goed  Ik vind Smarty een erg prettige oplossing in ieder geval, zeker omdat je ook zelf redelijk eenvoudig template-functie kunt toevoegen... en dat houdt je template ook wel overzichtelijk natuurlijk  |
qu63 | dinsdag 15 januari 2008 @ 12:06 |
quote:Op dinsdag 15 januari 2008 10:16 schreef WyriHaximus het volgende:[..] Nog niet eens zon slechtplan maar zat zelf aan TR's te denken en die dan in een crewonly plaats te gooien maar dat is nog maar een gedachte spinsel  . ik had een scriptje wat bij een weblog-update een post maakte in 2 topics 
Alleen ik heb er iets te veel aan geklooid, en nu issie stuk  |
WyriHaximus | dinsdag 15 januari 2008 @ 12:45 |
quote:Op dinsdag 15 januari 2008 12:06 schreef qu63 het volgende:[..] ik had een scriptje wat bij een weblog-update een post maakte in 2 topics  Alleen ik heb er iets te veel aan geklooid, en nu issie stuk  Hmm niet handig . Misschien terug naar een oudere versie die nog wel werkte? |
qu63 | dinsdag 15 januari 2008 @ 12:53 |
quote:Op dinsdag 15 januari 2008 12:45 schreef WyriHaximus het volgende:[..] Hmm niet handig  . Misschien terug naar een oudere versie die nog wel werkte? Neuh, ik weet waar de fout zit, en ik update mn weblog toch niet meer  |
WyriHaximus | dinsdag 15 januari 2008 @ 13:03 |
quote: Ah ik weer wel, al hoewel het meeste wat ik de laatste tijd tegen lijk te komen vooral money make blogs zijn . Pings + RSS zijn een leuke manier om aandacht op je blog te krijgen . |
Flaccid | dinsdag 15 januari 2008 @ 13:34 |
thp
Hoe kan ik zorgen dat die wampserver van outside ook te bezoeken is? want poort 80 is toch standaard poort? ik zit op een router en heb het adres 192.168.1.119. maar als ik IP:119/www doe krijg ik page not found wat doe ik verkeerd?
[ Bericht 65% gewijzigd door Flaccid op 15-01-2008 17:40:15 ] |
Flaccid | dinsdag 15 januari 2008 @ 17:40 |
Het lukt mij niet om een .htaccess goed te configureren voor dat wamp. ik krijg een internal server error of hij wil niet inloggen (als ik goede invoer)
[ Bericht 89% gewijzigd door Flaccid op 15-01-2008 19:24:12 ] |
Xcalibur | dinsdag 15 januari 2008 @ 20:30 |
quote:Op dinsdag 15 januari 2008 13:34 schreef Flaccid het volgende:thp Hoe kan ik zorgen dat die wampserver van outside ook te bezoeken is? want poort 80 is toch standaard poort? ik zit op een router en heb het adres 192.168.1.119. maar als ik IP:119/www doe krijg ik page not found wat doe ik verkeerd? Waarschijnlijk moet je op je router nog poort 80 forwarden naar dat IP-adres? |
Flaccid | dinsdag 15 januari 2008 @ 20:32 |
quote: al gedaan, het gaat nu om het htacces gebeure. |
qu63 | dinsdag 15 januari 2008 @ 20:35 |
quote:Op dinsdag 15 januari 2008 17:40 schreef Flaccid het volgende:Het lukt mij niet om een .htaccess goed te configureren voor dat wamp. ik krijg een internal server error of hij wil niet inloggen (als ik goede invoer) internal server error kan ook zijn dat je pc te druk is, gebeurt mij zelf ook nog wel eens namelijk  |
Flaccid | dinsdag 15 januari 2008 @ 20:39 |
quote:Op dinsdag 15 januari 2008 20:35 schreef qu63 het volgende:[..] internal server error kan ook zijn dat je pc te druk is, gebeurt mij zelf ook nog wel eens namelijk  zal wel meevallen denk ik. |
MuRKie | woensdag 16 januari 2008 @ 12:44 |
Hoi iedereen, ik ben nieuw in deze topic reeks. Zag net pas dit topic langskomen. Laat ik er maar meteen gebruik van maken..
Ik ben beetje aan het rommelen met het maken van een cms systeempje.. Nu vroeg ik me af of je een bestand kan includen in een variabele. Ik had zoiets gezien op www.php.net/include maar ik krijg het niet werkend.. Ik heb het idee dat ik dat voorbeeld niet begrijp en dat het voor andere doeleinden is dan waarvoor ik het wil gebruiken.
Hier dat voorbeeld:quote:Example#1 include() in PHP 3 en PHP 4 Naam aan dat het volgende bestand bestaat (genoemd test.inc) en dat deze zich in dezelfde directory bevindt als het hoofdscript: 1 2 3 4 5 6 7 | <?php echo "Voor de return <br>\n"; if (1) { return 27; } echo "Na de return <br>\n"; ?> |
Naam aan dat het hoofdscript, (main.html) het volgende bevat: 1 2 3 4 | <?php $retval = include ('test.inc'); echo "File returned: '$retval'<br>\n"; ?> |
When main.html is called in PHP 3, it will generate a parse error on line 2; you can't take the value of an include() in PHP 3. In PHP 4, however, the result will be: Before the return File returned: '27' Now, assume that main.html has been altered to contain the following: 1 2 3 4 | <?php include ('test.inc'); echo "Back in main.html<br>\n"; ?> |
In PHP 4, the output will be: Before the return Back in main.html However, PHP 3 will give the following output: Before the return 27Back in main.html Parse error: parse error in /home/torben/public_html/phptest/main.html on line 5 The above parse error is a result of the fact that the return statement is enclosed in a non-function block within test.inc. When the return is moved outside of the block, the output is: Before the return 27Back in main.html The spurious '27' is due to the fact that PHP 3 does not support returning values from files like that. Wat ik hier eigenlijk mee wil is de code die in de te includen file staat in de variabele krijgen. Zodat ik deze later kan printen. Ik wil geen gebruik maken van ob_start.. Maar volgens mij kan je niet includen in een variabele of wel?
Iemand die me hiermee kan helpen? 
[ Bericht 6% gewijzigd door MuRKie op 16-01-2008 13:55:24 ] |
Geqxon | woensdag 16 januari 2008 @ 12:46 |
http://nl.php.net/file_get_contents quote:file_get_contents — Reads entire file into a string  |
Flaccid | woensdag 16 januari 2008 @ 12:47 |
quote:Op woensdag 16 januari 2008 12:44 schreef MuRKie het volgende:Hoi iedereen, ik ben nieuw in deze topic reeks. Zag net pas dit topic langskomen. Laat ik er maar meteen gebruik van maken.. Ik ben beetje aan het rommelen met het maken van een cms systeempje.. Nu vroeg ik me af of je een bestand kan includen in een variabele. Ik had zoiets gezien op www.php.net/include maar ik krijg het niet werkend.. Ik heb het idee dat ik dat voorbeeld niet begrijp en dat het voor andere doeleinden is dan waarvoor ik het wil gebruiken. Hier dat voorbeeld: [..] Wat ik hier eigenlijk mee wil is de code die in de te includen file staat in de variabele krijgen. Zodat ik deze later kan printen. Ik wil geen gebruik maken van ob_start.. Maar volgens mij kan je niet includen in een variabele of wel? Iemand die me hiermee kan helpen?  Hoe wil je eigenlijk in een .html php zetten? |
unox_worst | woensdag 16 januari 2008 @ 12:48 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <?php function get_include($file) { foreach($_POST AS $key => $value) { ${$key} = $value; }
foreach($_GET AS $key => $value) { ${$key} = $value; }
ob_start(); include $file; $buffer = ob_get_contents(); ob_end_clean(); return $buffer; } ?> |
Werkt voor mij prima
Oeps, je wil geen ob_start gebruiken, dan zou ik het ook niet weten. |
MuRKie | woensdag 16 januari 2008 @ 12:51 |
quote: Wie heeft het over een .html? Ow dat voorbeeld zie ik nu  Ik weet niet hoe je dat wilt ik heb het ook maar van php.net gekopieerd.. Zal wel main.php moeten zijn ofzo.. |
MuRKie | woensdag 16 januari 2008 @ 12:55 |
quote:Op woensdag 16 januari 2008 12:48 schreef unox_worst het volgende:[ code verwijderd ] Werkt voor mij prima Oeps, je wil geen ob_start gebruiken, dan zou ik het ook niet weten. Ik had van een vriend van me, die meer ervaring heeft met php dan ik, vernomen dat ob_start geen nette en verouderde methode was ofzo? Vandaar dat ik dat niet wil gebruiken, maar als jij het tegendeel kan bewijzen dan hoor ik het graag. Ik sta open voor nieuwe informatie  |
MuRKie | woensdag 16 januari 2008 @ 12:57 |
quote: Is dat een nette methode? Zie mijn post hierboven over ob_start.. Ik weet niet of dat ook een nette methode is?
Ik zelf had het geprobeerd alsvolgt:
1 2 3 | <?php $varComponentResult = include('map/file.php'); ?> |
maar volgens mij is dat een hele domme poging 
[ Bericht 14% gewijzigd door MuRKie op 16-01-2008 13:55:57 ] |
unox_worst | woensdag 16 januari 2008 @ 12:58 |
quote:Op woensdag 16 januari 2008 12:55 schreef MuRKie het volgende:[..] Ik had van een vriend van me, die meer ervaring heeft met php dan ik, vernomen dat ob_start geen nette en verouderde methode was ofzo? Vandaar dat ik dat niet wil gebruiken, maar als jij het tegendeel kan bewijzen dan hoor ik het graag. Ik sta open voor nieuwe informatie  Ik ken zo geen andere manier, maar ik ben dan ook geen echte expert Ik was allang blij dat ik dit voor elkaar kreeg. Maar wat zou er mis zijn met ob_start dan? Als er alternatieven zijn die beter werken dan zou ik dat ook wel graag willen weten. Je kan volgens mij geen include in een variabele stoppen, ik kreeg er foutmeldingen op volgens mij. |
Geqxon | woensdag 16 januari 2008 @ 13:16 |
"ob_start" houd alle output richting de browser tegen, vangt het tijdelijk op in een buffer, en laat het daarna pas zien. Als je dat voor dit soort doeleinden gebruikt kan het ietwat vies zijn.  |
MuRKie | woensdag 16 januari 2008 @ 13:19 |
quote:Op woensdag 16 januari 2008 13:16 schreef Geqxon het volgende:"ob_start" houd alle output richting de browser tegen, vangt het tijdelijk op in een buffer, en laat het daarna pas zien. Als je dat voor dit soort doeleinden gebruikt kan het ietwat vies zijn.  Dat bedoel ik.. Maar file_get_contents is wel een schone manier hiervoor? En wordt de inhoud van de file dan eerst geevalueerd en dan in een variabele gestopt? Het te includen script maakt namelijk wel gebruik van functies die in de file staan die het script gaat includen.. Anders moet ik namelijk wel mijn huidige methode blijven gebruiken om dit werkend te houden..
Ik laad nu het script in via require('map/script.php'); en in script.php return ik een variabele welke ik in het script waarin ik script.php include weer in een variabele plak.. om het even gemakkelijk te maken
[ Bericht 13% gewijzigd door MuRKie op 16-01-2008 13:26:44 ] |
JortK | woensdag 16 januari 2008 @ 13:34 |
Ik kijk hier ook nog ff mee  |
Geqxon | woensdag 16 januari 2008 @ 13:45 |
quote:Op woensdag 16 januari 2008 13:19 schreef MuRKie het volgende:[..] Dat bedoel ik.. Maar file_get_contents is wel een schone manier hiervoor? En wordt de inhoud van de file dan eerst geevalueerd en dan in een variabele gestopt? Het te includen script maakt namelijk wel gebruik van functies die in de file staan die het script gaat includen.. Anders moet ik namelijk wel mijn huidige methode blijven gebruiken om dit werkend te houden.. Ik laad nu het script in via require('map/script.php'); en in script.php return ik een variabele welke ik in het script waarin ik script.php include weer in een variabele plak.. om het even gemakkelijk te maken file_get_contents is niets anders dan het bestand opvragen, en de letterlijke tekst die erin staat returnen. Net zoals jij het bestand in notepad zou openen.  |
Thomass | woensdag 16 januari 2008 @ 13:53 |
quote: Ja, ik denk dat het probleem zit in het feit dat je de string niet afsluit met dubbele quotes, ik zou het volgende doen: (let op regel 3 :o )
1 2 3 4 5 | <?php if(newtopicmatches('[PHP/(My)SQL] voor dummies')){ echo "tvp geplaatst"; } ?> |
8-) |
MuRKie | woensdag 16 januari 2008 @ 13:57 |
quote:Op woensdag 16 januari 2008 13:45 schreef Geqxon het volgende:[..] file_get_contents is niets anders dan het bestand opvragen, en de letterlijke tekst die erin staat returnen. Net zoals jij het bestand in notepad zou openen.  Ja maar include zorgt ervoor dat de included file onderdeel wordt van het script waarin je het include.. Maar als ik het in eenvariabele stop via file_get_contents dan is dat niet het geval of wel? |
Geqxon | woensdag 16 januari 2008 @ 14:05 |
quote:Op woensdag 16 januari 2008 13:57 schreef MuRKie het volgende:[..] Ja maar include zorgt ervoor dat de included file onderdeel wordt van het script waarin je het include.. Maar als ik het in eenvariabele stop via file_get_contents dan is dat niet het geval of wel? Tip:
1 2 3 4 5 6 | <?php // #to_include.php function getWhatINeed(){ return "Foo"; } ?> |
1 2 3 4 5 | <?php // #main.php include('to_include.php'); $bar = getWhatINeed(); ?> |
:) |
WyriHaximus | woensdag 16 januari 2008 @ 14:10 |
quote:Op woensdag 16 januari 2008 13:57 schreef MuRKie het volgende:[..] Ja maar include zorgt ervoor dat de included file onderdeel wordt van het script waarin je het include.. Maar als ik het in eenvariabele stop via file_get_contents dan is dat niet het geval of wel? Nee standaard niet, file_get_contents returned de inhoud van het bestand wat je ophaald. echter is het zelfde als1 2 3 | <?php include($file); ?> |
|
MuRKie | woensdag 16 januari 2008 @ 14:42 |
quote: Ja zo doe ik het nu dus. Maar in de to_include.php wordt weer een bestand geinclude via dezelfde methode. En ik vond die constructie een beetje omslachtig dus ik hoopte dat te kunnen omzijlen via de include in een variabele.. Maar misschien is mijn huidige constructie dan toch de beste methode.. |
MuRKie | woensdag 16 januari 2008 @ 14:43 |
quote:Op woensdag 16 januari 2008 14:10 schreef WyriHaximus het volgende:[..] Nee standaard niet, file_get_contents returned de inhoud van het bestand wat je ophaald. echter [ code verwijderd ] is het zelfde als [ code verwijderd ] Maar dan zit het dus nog niet in een variabele? Ik denk ook bij nader inzien niet dat dat handig is in mijn situatie, maar allicht kan ik het later nog ergens goed voor gebruiken..
Ik moet het namelijk zo hebben dat hij eerst de to_include file afhandeld en het resultaat in de variabele zet. En dat kan niet via de methode die ik in de OP aangaf denk ik. Ik denk dan toch dat ik mijn huidige methode oftewel de hierboven door Geqxon genoemde methode moet blijven gebruiken
Of kan ik de volgende methode gebruiken:
|
Thomass | woensdag 16 januari 2008 @ 15:02 |
Ik kan me niet voorstellen dat eval(file_get_contents()) good practice is. Ik zou nog eens goed naar je opzet kijken want op die manier dingen doen kan éécht niet goed zijn  |
MuRKie | woensdag 16 januari 2008 @ 15:05 |
quote:Op woensdag 16 januari 2008 15:02 schreef Thomass het volgende:Ik kan me niet voorstellen dat eval(file_get_contents()) good practice is. Ik zou nog eens goed naar je opzet kijken want op die manier dingen doen kan éécht niet goed zijn  Ik heb het nu op de manier gedaan zoals Geqxon heeft beschreven. Maar ik dacht dat het makkelijker zou zijn om het rechtstreeks in een variabele te includen, maar ik begin langzaam aan te twijfelen of dat ook echt zo is.. |
Geqxon | woensdag 16 januari 2008 @ 15:33 |
Weet iemand trouwens hoe ik het slim aan kan pakken, dat als ik volledig met MultiView danwel Mod_Rewrite werk, hoe ik dan mijn forms met GET kan posten?
Ik heb nu een drop-down list met diverse automerken, en daarnaast eentje met diverse kleuren. Ik wil dat hij bij een submit naar "/cars/chevrolet/red/" gaat, maar is dat zonder javascript wel mogelijk? |
PiRANiA | woensdag 16 januari 2008 @ 15:40 |
quote:Op woensdag 16 januari 2008 15:33 schreef Geqxon het volgende:Weet iemand trouwens hoe ik het slim aan kan pakken, dat als ik volledig met MultiView danwel Mod_Rewrite werk, hoe ik dan mijn forms met GET kan posten? Ik heb nu een drop-down list met diverse automerken, en daarnaast eentje met diverse kleuren. Ik wil dat hij bij een submit naar "/cars/chevrolet/red/" gaat, maar is dat zonder javascript wel mogelijk? 1 2 3 | <?php header('location: /cars'.$_GET['merk']. '/'. $_GET['merk']); ?> |
?
zonder submit is het niet mogelijk zonder javascript denk ik |
qu63 | woensdag 16 januari 2008 @ 15:43 |
quote:Op woensdag 16 januari 2008 15:33 schreef Geqxon het volgende:Weet iemand trouwens hoe ik het slim aan kan pakken, dat als ik volledig met MultiView danwel Mod_Rewrite werk, hoe ik dan mijn forms met GET kan posten? Ik heb nu een drop-down list met diverse automerken, en daarnaast eentje met diverse kleuren. Ik wil dat hij bij een submit naar "/cars/chevrolet/red/" gaat, maar is dat zonder javascript wel mogelijk? het post-veld van je formulier laten verwijzen naar de waarden van je 2 dropdown lijsten lijkt me, geen idee of dat dan javascript is of html  |
Geqxon | woensdag 16 januari 2008 @ 15:43 |
quote: Echter zou ik in dat geval al mijn pagina's aan moet passen. Ik ga er nog even mee fiddlen. Ik kan JavaScript natuurlijk ook optioneel maken, en dat javascriptloze personen dan helaas wel richting "car.php?brand=chevrolet&color=red" gaan. Het is toch maar een extraatje. |
MuRKie | woensdag 16 januari 2008 @ 15:44 |
quote: Volgens mij kan dat ook alleen zonder javascript als je dat met een submit button doet.. |
#ANONIEM | woensdag 16 januari 2008 @ 15:44 |
ff tvptje. |
WyriHaximus | woensdag 16 januari 2008 @ 15:50 |
quote:Op woensdag 16 januari 2008 15:02 schreef Thomass het volgende:Ik kan me niet voorstellen dat eval(file_get_contents()) good practice is. Ik zou nog eens goed naar je opzet kijken want op die manier dingen doen kan éécht niet goed zijn  Het is iig niet netjes . |
Geqxon | woensdag 16 januari 2008 @ 15:53 |
quote:Op woensdag 16 januari 2008 15:43 schreef Geqxon het volgende:[..] Echter zou ik in dat geval al mijn pagina's aan moet passen. Ik ga er nog even mee fiddlen. Ik kan JavaScript natuurlijk ook optioneel maken, en dat javascriptloze personen dan helaas wel richting "car.php?brand=chevrolet&color=red" gaan. Het is toch maar een extraatje. Ik ga er toch wel maar voor. Simpelweg boven elke pagina kijken of de huidige filename met PHP eindigt, en zo ja, doorsturen naar de MultiView pagina.  |
MuRKie | woensdag 16 januari 2008 @ 16:09 |
Is het trouwens mogelijk om mod_rewrite te gebruiken als je pagina's met verschillende aantallen $_GET variabelen in je url's hebt. Ik heb namelijk de ene keer index.php?component=news&category=algemeen en de andere keer heb ik een url met index.php?component=content&type=view&id=5&itemid=7
Is het voor mod_rewrite noodzakelijk dat je altijd dezelfde aantallen $_GET variabelen in de url hebt? Dit had ik namelijk een keer gelezen toen ik nog niet wist wat mod_rewrite inhield en ging kijken wat mod_rewrite eigenlijk inhield (rare zin eigenlijk) |
PiRANiA | woensdag 16 januari 2008 @ 16:14 |
quote:Op woensdag 16 januari 2008 15:43 schreef Geqxon het volgende:[..] Echter zou ik in dat geval al mijn pagina's aan moet passen. Ik ga er nog even mee fiddlen. Ik kan JavaScript natuurlijk ook optioneel maken, en dat javascriptloze personen dan helaas wel richting "car.php?brand=chevrolet&color=red" gaan. Het is toch maar een extraatje. heb je veel javascriptloze bezoekers dan? check je google analytics als je dat hebt  |
WyriHaximus | woensdag 16 januari 2008 @ 16:15 |
quote:Op woensdag 16 januari 2008 16:09 schreef MuRKie het volgende:Is het trouwens mogelijk om mod_rewrite te gebruiken als je pagina's met verschillende aantallen $_GET variabelen in je url's hebt. Ik heb namelijk de ene keer index.php?component=news&category=algemeen en de andere keer heb ik een url met index.php?component=content&type=view&id=5&itemid=7 Is het voor mod_rewrite noodzakelijk dat je altijd dezelfde aantallen $_GET variabelen in de url hebt? Dit had ik namelijk een keer gelezen toen ik nog niet wist wat mod_rewrite inhield en ging kijken wat mod_rewrite eigenlijk inhield (rare zin eigenlijk) Nee absoluut niet, dat kan je allemaal opgeven en voor iedere 'case' een apparte regel maken . |
MuRKie | woensdag 16 januari 2008 @ 16:17 |
quote:Op woensdag 16 januari 2008 16:15 schreef WyriHaximus het volgende:[..] Nee absoluut niet, dat kan je allemaal opgeven en voor iedere 'case' een apparte regel maken  . Dan moet ik me toch maar eens gaan verdiepen in het mod_rewrite wezen  Wat is eigenlijk het verschil tussen mod_rewrite en multiview? Wat werkt beter, makkelijker enz. enz.?
Als ik zo vrij mag zijn om dat te vragen  |
MuRKie | woensdag 16 januari 2008 @ 16:27 |
Ik lees net een en ander op www.mod-rewrite.nl Maar hoe los ik het op als ik bij een bepaalde url andere volgorde van $_GET variabelen gebruik? index.php?component=news&category=algemeen index.php?component=content&type=view&id=5&itemid=7
Dan krijg ik toch een conflict met category en type? Hoe weet mod_rewrite dat ik de ene keer category bedoel en de andere keer type? |
WyriHaximus | woensdag 16 januari 2008 @ 16:36 |
quote:Op woensdag 16 januari 2008 16:27 schreef MuRKie het volgende:Ik lees net een en ander op www.mod-rewrite.nlMaar hoe los ik het op als ik bij een bepaalde url andere volgorde van $_GET variabelen gebruik? index.php?component=news&category=algemeen index.php?component=content&type=view&id=5&itemid=7 Dan krijg ik toch een conflict met category en type? Hoe weet mod_rewrite dat ik de ene keer category bedoel en de andere keer type? Nee hoeft niet als jij voor bijde manieren van URL indeling een regel aan maakt . |
MuRKie | woensdag 16 januari 2008 @ 16:49 |
quote:Op woensdag 16 januari 2008 16:36 schreef WyriHaximus het volgende:[..] Nee hoeft niet als jij voor bijde manieren van URL indeling een regel aan maakt  . Maar stel bij de volgende url's:
1 2 3 4 5 | index.php?component=news&category=algemeen www.site.nl/news/algemeen/
index.php?component=content&type=view&id=5&itemid=7 www.site.nl/content/view/5/7/ |
in je script geef je dan als link de volgende url op:
1 | www.site.nl/content/view/5/7/ |
Hoe weet mod_rewrite dan of hij bij view de $_GET['type'] moet gebruiken of $_GET['category'] want dat staat niet meer in de url dan toch..
En dan even niet op het aantal $_GET variabelen gelet want het kan maar zo zijn dat ik een keer evenveel $_GET variabelen heb maar wel verschillende.. Dan heb ik toch een probleem?
of moet ik in mijn script gewoon de oude url's gebruiken zoals: index.php?component=news&category=algemeen index.php?component=content&type=view&id=5&itemid=7
en dat mod_rewrite dat zelf omtovert tot een mooie url?
[ Bericht 2% gewijzigd door MuRKie op 16-01-2008 17:17:13 ] |
Geqxon | woensdag 16 januari 2008 @ 17:43 |
quote: Mijn website moet tot Lynx aan toe compatible zijn.  |
PiRANiA | woensdag 16 januari 2008 @ 17:50 |
quote: kee... da's wel een mooie doelstelling, maar waarom? heb je een speciale doelgroep waar je een verhoogde kans heb op niet-javascript-gebruikers? |
Flaccid | woensdag 16 januari 2008 @ 17:51 |
quote: Ik heb een mysql table met een aantal dingetjes. Deze moeten er uitkomen in een tabel. Nu moet de user deze volgorde kunnen aanpassen. Hoe kan ik dat het beste doen? Auto increment werkt niet goed, want als je iets verwijderd gaat ie gewoon door met tellen! |
SuperRembo | woensdag 16 januari 2008 @ 18:02 |
quote:Op woensdag 16 januari 2008 17:51 schreef Flaccid het volgende:Ik heb een mysql table met een aantal dingetjes. Deze moeten er uitkomen in een tabel. Nu moet de user deze volgorde kunnen aanpassen. Hoe kan ik dat het beste doen? Auto increment werkt niet goed, want als je iets verwijderd gaat ie gewoon door met tellen! Als de sorteervolgorde niet gerelateerd is aan andere gegevens in de tabel, dan heb je een extra kolom nodig die de sorteervolgorde bepaald. |
HuHu | woensdag 16 januari 2008 @ 18:21 |
quote:Op woensdag 16 januari 2008 16:49 schreef MuRKie het volgende:[..] Maar stel bij de volgende url's: [ code verwijderd ] in je script geef je dan als link de volgende url op: [ code verwijderd ] Hoe weet mod_rewrite dan of hij bij view de $_GET['type'] moet gebruiken of $_GET['category'] want dat staat niet meer in de url dan toch.. En dan even niet op het aantal $_GET variabelen gelet want het kan maar zo zijn dat ik een keer evenveel $_GET variabelen heb maar wel verschillende.. Dan heb ik toch een probleem? of moet ik in mijn script gewoon de oude url's gebruiken zoals: index.php?component=news&category=algemeen index.php?component=content&type=view&id=5&itemid=7 en dat mod_rewrite dat zelf omtovert tot een mooie url? In je mod_rewrite doe je ongeveer zoiets:
1 | RewriteRule ^content/view/(.*)/(.*)/ index.php?component=content&type=view&id=$1&itemid=$2 |
De matches in je rule kun je in de rewrite herbruiken middels de variabelen $1, $2, enz... |
PiRANiA | woensdag 16 januari 2008 @ 18:44 |
quote:Op woensdag 16 januari 2008 18:21 schreef HuHu het volgende:[..] In je mod_rewrite doe je ongeveer zoiets: [ code verwijderd ] De matches in je rule kun je in de rewrite herbruiken middels de variabelen $1, $2, enz... $ op het eind toch? |
HuHu | woensdag 16 januari 2008 @ 18:48 |
quote: Hoeft niet persé. |
Geqxon | woensdag 16 januari 2008 @ 19:09 |
1 | RewriteRule ^content/view/([0-9]{1,2})/([0-9]{1,2})/{0,1}$ /index.php?component=content&type=view&id=$1&itemid=$2 [L] |
Dat is de rule. Waar je op het letten zijn de rondje haakjes, die in dit geval in de reguliere expressie om de eerste en tweede plek staan. Dit vertaalt zich in $1 en $2. |
Geqxon | woensdag 16 januari 2008 @ 19:09 |
En gaan eten met een browservenster open is niet al te slim. Voortaan maar even refreshen. |
MuRKie | woensdag 16 januari 2008 @ 19:50 |
heeft iemand misschien een linkje voor een tutorial betreft mod_rewrite want ik snap er de ballen van.. 
[edit] wacht (.*) betekent dat er vanalles kan staan en anders kan je het specifiek op de waarde toepassen? Dus kan zou ik per uitzondering zo'n regel aan moeten maken. zie ik dat zo goed? [/edit]
tutorial zou overigens nog steeds welkom zijn 
[ Bericht 26% gewijzigd door MuRKie op 16-01-2008 20:01:29 ] |
mschol | woensdag 16 januari 2008 @ 20:10 |
http://pro.tweakers.net/n(...)eemt-mysql-over.html
moeten we daar nou blij mee zijn? |
MuRKie | woensdag 16 januari 2008 @ 20:27 |
quote: hopelijk veranderd er niks dankzij deze overname.. |
Spike1506 | woensdag 16 januari 2008 @ 20:33 |
quote:Op woensdag 16 januari 2008 19:50 schreef MuRKie het volgende:heeft iemand misschien een linkje voor een tutorial betreft mod_rewrite want ik snap er de ballen van..  [edit] wacht (.*) betekent dat er vanalles kan staan en anders kan je het specifiek op de waarde toepassen? Dus kan zou ik per uitzondering zo'n regel aan moeten maken. zie ik dat zo goed? [/edit] tutorial zou overigens nog steeds welkom zijn  Als je een beetje gezocht had op Google had je dit vast ook kunnen vinden.  |
Geqxon | woensdag 16 januari 2008 @ 20:46 |
quote:Op woensdag 16 januari 2008 19:50 schreef MuRKie het volgende:heeft iemand misschien een linkje voor een tutorial betreft mod_rewrite want ik snap er de ballen van..  [edit] wacht (.*) betekent dat er vanalles kan staan en anders kan je het specifiek op de waarde toepassen? Dus kan zou ik per uitzondering zo'n regel aan moeten maken. zie ik dat zo goed? [/edit] tutorial zou overigens nog steeds welkom zijn  Google eens op regular expression. Of dump hier wat je nodig hebt, dan kan ik wat voor je bakken, waarna jij er hopelijk wat van leert. 
In bovenstaand geval staat de punt voor "willekeurig karakter", en het sterretje voor "maakt niet uit welke lengte". |
MuRKie | woensdag 16 januari 2008 @ 21:05 |
quote: ik zit via mijn pda te fokken omdat ik nog geen internet heb in mijn huisie. en googlen op een pda is geen ideale situatie.. dus heb nog niet echt gegoogled  |
MuRKie | woensdag 16 januari 2008 @ 21:18 |
quote:Op woensdag 16 januari 2008 20:46 schreef Geqxon het volgende:[..] Google eens op regular expression. Of dump hier wat je nodig hebt, dan kan ik wat voor je bakken, waarna jij er hopelijk wat van leert.  In bovenstaand geval staat de punt voor "willekeurig karakter", en het sterretje voor "maakt niet uit welke lengte". ik kan nog niet echt iets concreets posten omdat ik mijn cms nog aan het ontwikkelen ben maar ik krijg url's als die ik hierboven eerder heb geschreven. maar ik begrijp dat ik voor elke afwijkende url een nieuwe regel moet maken?
[ Bericht 0% gewijzigd door MuRKie op 16-01-2008 21:36:19 ] |
Geqxon | woensdag 16 januari 2008 @ 21:24 |
Jep. Zo heb ik zelf bv. een stuk of 10 regels.  |
MuRKie | woensdag 16 januari 2008 @ 21:34 |
quote: dan ga ik eerst maar eens een beetje aankloten met de info die ik nu heb, en als het dan niet wil lukken dan vraag ik dat alsnog wel  |
Xcalibur | woensdag 16 januari 2008 @ 21:45 |
quote:Op woensdag 16 januari 2008 17:51 schreef Flaccid het volgende:Ik heb een mysql table met een aantal dingetjes. Deze moeten er uitkomen in een tabel. Nu moet de user deze volgorde kunnen aanpassen. Hoe kan ik dat het beste doen? Auto increment werkt niet goed, want als je iets verwijderd gaat ie gewoon door met tellen! Gisteren heb ik in dit topic ook al antwoord gegeven op deze vraag, namelijk: extra kolom toevoegen.... misschien effe terug gaan lezen?  |
saban | woensdag 16 januari 2008 @ 22:20 |
Welk editor gebruiken jullie? Ik gebruik zelf Crimson Editor, echter het geeft veel errors wanneer ik met remote bestanden werkt.
Wat is een ander goed editor welke met remote bestanden overweg kan? |
mschol | woensdag 16 januari 2008 @ 23:53 |
@MuRKie: kijk eens naar regular expressions m.b.v. Regexbuddy. helaas geen gratis software maar wel erg handig voor het bouwen van regex'en (op zo'n manier dat je het ook nog snapt ) |
Mordreth | donderdag 17 januari 2008 @ 08:32 |
quote:Op woensdag 16 januari 2008 22:20 schreef saban het volgende:Welk editor gebruiken jullie? Ik gebruik zelf Crimson Editor, echter het geeft veel errors wanneer ik met remote bestanden werkt. Wat is een ander goed editor welke met remote bestanden overweg kan? jEdit! . Heeft zowel ondersteuning voor ftp als sftp en kan je verder uitbreiden met plugins en macro's. Plugins die ik gebruik: - ftp (overduidelijk waarvoor) - buffertabs (tabbladen binnen het programma). - jDiff om bestanden met elkaar te vergelijken.
Enige wat ik bij jEdit mis is auto-completetion.. dat is best wel jammer. Maar voor de rest retestabiel. |
mschol | donderdag 17 januari 2008 @ 09:02 |
quote:Op woensdag 16 januari 2008 22:20 schreef saban het volgende:Welk editor gebruiken jullie? Ik gebruik zelf Crimson Editor, echter het geeft veel errors wanneer ik met remote bestanden werkt. Wat is een ander goed editor welke met remote bestanden overweg kan? ik gebruik dreamwaever maar niet voor ftp'en (server staat thuis, dus een netwerkshare |
Xcalibur | donderdag 17 januari 2008 @ 09:51 |
Ik gebruik Homesite (= codeview van Dreamweaver in principe), maar ik ben op zoek naar iets anders  |
WyriHaximus | donderdag 17 januari 2008 @ 10:03 |
Laten we niet al te veel offtopic gaan, we hebben voor editors een mooi topic: Welke editor voor PHP? |
saban | donderdag 17 januari 2008 @ 16:48 |
quote: Stom van me! Niet eerder aan gedacht. Ik draai het ook thuis, maar maakte gebruik van FTP terwijl ik er natuurlijk ook een share van kan maken! |
Light | donderdag 17 januari 2008 @ 19:44 |
quote:Op woensdag 16 januari 2008 12:48 schreef unox_worst het volgende:[ code verwijderd ] Werkt voor mij prima Oeps, je wil geen ob_start gebruiken, dan zou ik het ook niet weten. Waarom simuleer je register_globals?
1 2 3 4 5 6 7 8 9 | <?php foreach($_POST AS $key => $value) { ${$key} = $value; }
foreach($_GET AS $key => $value) { ${$key} = $value; } ?> |
Om te beginnen kan ik iedere $_POST variabele zo overschrijven met een $_GET-waarde. Da's niet zo handig. Daarbij gebruik je in de functie geen enkele variabele die je op die manier hebt gemaakt. |
wobbel | donderdag 17 januari 2008 @ 22:08 |
Stel ik roep de functie Dump ( ); aan, en ik geef een variable mee..dus dit:
$data = "heel veel tekens";
Dump ( $data );
Is er dan een limiet aan de hoeveel tekens die $data mag bevatten? Dat PHP bijv. geen buffer overflow krijgt bij bijv. 100.000 tekens  |
Thomass | donderdag 17 januari 2008 @ 22:16 |
quote:Op donderdag 17 januari 2008 22:08 schreef wobbel het volgende:Stel ik roep de functie Dump ( ); aan, en ik geef een variable mee..dus dit: $data = "heel veel tekens"; Dump ( $data ); Is er dan een limiet aan de hoeveel tekens die $data mag bevatten? Dat PHP bijv. geen buffer overflow krijgt bij bijv. 100.000 tekens  memory_limit |
wobbel | donderdag 17 januari 2008 @ 22:18 |
quote: ooh daar loopt het nooit tegenaan  |
saban | donderdag 17 januari 2008 @ 22:44 |
1 2 3 4 5 6 7 8 9 10 11 | <?php $kaart = $_GET['kaart'];
function checkOption($value) { if ($value == $kaart) { echo "Checked!"; } }
checkOption("test"); ?> |
Dit werkt niet. Hoe is dit op te lossen zonder regel 2 in de functie te nemen?
Ik heb namelijk een select-lijst (in HTML), maar ik wil 'm netter hebben met een functie, hoe ik het nu heb:
1 2 3 4 5 6 7 8 | <?php $kaart = mysql_result($sql, 0, kaart); <option if ($kaart == "Koza Sade") { echo " selected"; } >Koza Sade</option> <option if ($kaart == "Koza Luks") { echo " selected"; } >Koza Luks</option> <option if ($kaart == "Koza Sunnet") { echo " selected"; } >Koza Sunnet</option> <option if ($kaart == "Koza Pelin") { echo " selected"; } >Koza Pelin</option> <option if ($kaart == "Koza Alara") { echo " selected"; } >Koza Alara</option> ?> |
Dit wil ik omtoveren naar:
[ Bericht 67% gewijzigd door saban op 17-01-2008 22:50:45 ] |
Geqxon | donderdag 17 januari 2008 @ 23:00 |
Hoe ik het zou doen:
1 2 3 4 5 6 7 8 | <?php $kaart_select = mysql_result($sql, 0, kaart); $kaarten = array("Koza Sade", "Koza Luks", "Koza Sunnet", "Koza Pelin", "Koza Alara");
foreach($kaarten as $kaart){ printf("<option%s>%s</option>", ($kaart == $kaart_select) ? " selected" : "", $kaart); } ?> |
|
Geqxon | donderdag 17 januari 2008 @ 23:03 |
Verder moet je een functie zien als een gesloten ruimte, en die alleen kennis heeft van variabelen die je doorgeeft, en geen flauw idee heeft wat er om hem heen gebeurd. In jouw geval kent hij $kaart niet.  |
Xcalibur | vrijdag 18 januari 2008 @ 09:58 |
quote: kan je niet gewoon $kaart aan de functieaanroep meegeven? dus: checkOption($value, $kaart) ? |
saban | vrijdag 18 januari 2008 @ 11:08 |
quote:Op vrijdag 18 januari 2008 09:58 schreef Xcalibur het volgende:[..] kan je niet gewoon $kaart aan de functieaanroep meegeven? dus: checkOption($value, $kaart) ? Waarschijnlijk wel  |
#ANONIEM | vrijdag 18 januari 2008 @ 11:10 |
Functions moet je dingen laten retourneren, niet laten echo-en imo. |
MuRKie | vrijdag 18 januari 2008 @ 23:49 |
hey nog even over mod_rewrite. als ik dat wil gebruiken moet ik dan alle url's, die in mijn scripts verwerkt zitten, aanpassen of worden die on the fly aangepast door mod_rewrite?
en kan iemand kijken wat er fout is aan de volgende query?
1 2 3 4 5 6 | <?php $varQuery = "UPDATE menuitem "; $varQuery .= "SET delete = 'yes' "; $varQuery .= "WHERE ID = '" . fetchItemID() . "'"; $varRun = mysql_query($varQuery) or die(_DATABASE_QUERY_ERROR . " " . mysql_error()); ?> |
hij geeft een error terug dat de syntax niet goed is. maar een identieke query die enkel een ander Veld update werkt wel gewoon goed.. 
[ Bericht 39% gewijzigd door MuRKie op 19-01-2008 01:25:47 ] |
Farenji | zaterdag 19 januari 2008 @ 11:01 |
quote:Op vrijdag 18 januari 2008 23:49 schreef MuRKie het volgende:en kan iemand kijken wat er fout is aan de volgende query? [ code verwijderd ] hij geeft een error terug dat de syntax niet goed is. maar een identieke query die enkel een ander Veld update werkt wel gewoon goed..  Tja het zou handig zijn om te weten wat er uit die functie fetchItemID() komt. Waarschijnlijk komt daar iets anders dan je verwacht. Print de resulterende query eens naar stderr zodat je ziet wat er precies gebeurt. Rare functie overigens, zo zonder params enzo, heb je maar 1 item tegelijk in je programma ofzo? |
#ANONIEM | zaterdag 19 januari 2008 @ 11:12 |
wat voor veld is delete? is dat een boolean of een varchar? |
SuperRembo | zaterdag 19 januari 2008 @ 11:43 |
quote:Op vrijdag 18 januari 2008 23:49 schreef MuRKie het volgende:hey nog even over mod_rewrite. als ik dat wil gebruiken moet ik dan alle url's, die in mijn scripts verwerkt zitten, aanpassen of worden die on the fly aangepast door mod_rewrite? en kan iemand kijken wat er fout is aan de volgende query? [ code verwijderd ] hij geeft een error terug dat de syntax niet goed is. maar een identieke query die enkel een ander Veld update werkt wel gewoon goed..  Je had ook even de query die uitgevoerd wordt aan het die() statement kunnen toevoegen, dan weet je tenminste welke query precies fout gaat. 'delete' is een reserved word, dus als je die als kolomnaam gebruikt, dan moet je er `back ticks` omheen zetten. Ik denk dat 't ook niet echt de juiste naam voor de kolom is ('deleted' zou waarschijnlijk beter zijn). En een varchar veld gebruiken om er 'yes' of 'no' in te zetten is niet handig, daar kan je beter een tinyint voor gebruiken met 1 of 0. |
Xcalibur | zaterdag 19 januari 2008 @ 12:11 |
quote: In dat geval kan je weer beter een ENUM(1,0) gebruiken volgens mij  |
MuRKie | zaterdag 19 januari 2008 @ 12:13 |
quote:Op zaterdag 19 januari 2008 11:43 schreef SuperRembo het volgende:[..] Je had ook even de query die uitgevoerd wordt aan het die() statement kunnen toevoegen, dan weet je tenminste welke query precies fout gaat. 'delete' is een reserved word, dus als je die als kolomnaam gebruikt, dan moet je er `back ticks` omheen zetten. Ik denk dat 't ook niet echt de juiste naam voor de kolom is ('deleted' zou waarschijnlijk beter zijn). En een varchar veld gebruiken om er 'yes' of 'no' in te zetten is niet handig, daar kan je beter een tinyint voor gebruiken met 1 of 0. de melding was dat ik de syntax "near SET delete = 'yes' WHERE ID = 13"
het veld is trouwens geen VARCHAR maar ENUM |
MuRKie | zaterdag 19 januari 2008 @ 12:20 |
quote:Op zaterdag 19 januari 2008 11:01 schreef Farenji het volgende:[..] Tja het zou handig zijn om te weten wat er uit die functie fetchItemID() komt. Waarschijnlijk komt daar iets anders dan je verwacht. Print de resulterende query eens naar stderr zodat je ziet wat er precies gebeurt. Rare functie overigens, zo zonder params enzo, heb je maar 1 item tegelijk in je programma ofzo? fetchItemID() haalt het itemid op uit de url ($_GET['itemid']) en aan de url te zien klopt het itemid gewoon en aan de mysql_error te zien ook |
MuRKie | zaterdag 19 januari 2008 @ 12:25 |
quote: ENUM 'yes', 'no' |
MuRKie | zaterdag 19 januari 2008 @ 12:31 |
quote: ikzelf heb dus ook ENUM gekozen maar dan met 'yes', 'no' om de opties logischer te houden.. |
MuRKie | zaterdag 19 januari 2008 @ 12:57 |
ik heb net het veld delete hernoemt naar deleted en nu werkt hij wel. bedankt voor jullie hulp  |
Arjan321 | zaterdag 19 januari 2008 @ 13:29 |
en daarom is het good practice om in mysql altijd backticks ( ` , dat ding naast je 1 ) te gebruiken om je tabel- en kolomnamen.. zo kan je nooit onverhoopt een conflict krijgen met een reserved keyword.. |
SuperRembo | zaterdag 19 januari 2008 @ 14:58 |
quote:Op zaterdag 19 januari 2008 12:13 schreef MuRKie het volgende:[..] de melding was dat ik de syntax "near SET delete = 'yes' WHERE ID = 13" het veld is trouwens geen VARCHAR maar ENUM O ja, MySQL heeft enums. Daar denk ik niet zo snel aan omdat SqlServer ze niet heeft. Wat doet MySQL eigenlijk als je probeert een ongeldige waarde in een enum kolom te zetten? |
Xcalibur | zaterdag 19 januari 2008 @ 17:24 |
quote:Op zaterdag 19 januari 2008 12:31 schreef MuRKie het volgende:ikzelf heb dus ook ENUM gekozen maar dan met 'yes', 'no' om de opties logischer te houden.. gevoelsmatig is 1 / yes / true en 0 / no / false allemaal hetzelfde voor mij  Maar ik reageerde op de TINYINT post, vandaar dat ik met de 1 / 0 kwam... |
Farenji | zaterdag 19 januari 2008 @ 18:13 |
quote:Op zaterdag 19 januari 2008 17:24 schreef Xcalibur het volgende:[..] gevoelsmatig is 1 / yes / true en 0 / no / false allemaal hetzelfde voor mij  Maar ik reageerde op de TINYINT post, vandaar dat ik met de 1 / 0 kwam... Het is veel beter om consequent 1 voor true te gebruiken, en 0 voor false. Dat maakt het veel logischer omdat PHP 0 ook als false ziet en 1 als true. "yes" en "no" worden door PHP allebei als true gezien. |
mvc | zaterdag 19 januari 2008 @ 18:26 |
Hey mijn nickname staat in de tt  |
Flaccid | zaterdag 19 januari 2008 @ 19:39 |
quote: wrom?
[ Bericht 6% gewijzigd door Flaccid op 19-01-2008 20:10:19 ] |
wobbel | zaterdag 19 januari 2008 @ 20:05 |
Ik zit met iets heel vaags waar ik niet echt uit kom hoe ik het op moet lossen....
Ik heb een tabel met wat velden: Ziet er zo uit:
Tabel BEZOEKERS Wat Datum Ip
WAT - DATUM - IP home - 1200769418 - 82.64.36.31 home - 1200356372 - 213.51.210.153 contact - 1200313598 - 199.121.10.192 (etc etc etc)
Nu zie je dat ik een UNIX timestamp (date ( "U" )) als datum...
Maar hoe krijg ik nu een mooi overzichtje:
MAAND - VIEWS Januari - en dan alle records die in januari valle Februari - en dan alle records die in februari vallen
tot aan de huidige maand |
Flaccid | zaterdag 19 januari 2008 @ 20:11 |
quote:Op zaterdag 19 januari 2008 20:05 schreef wobbel het volgende:Ik zit met iets heel vaags waar ik niet echt uit kom hoe ik het op moet lossen.... Ik heb een tabel met wat velden: Ziet er zo uit: Tabel BEZOEKERS Wat Datum Ip WAT - DATUM - IP home - 1200769418 - 82.64.36.31 home - 1200356372 - 213.51.210.153 contact - 1200313598 - 199.121.10.192 (etc etc etc) Nu zie je dat ik een UNIX timestamp (date ( "U" )) als datum... kan je die datum niet met php erin stoppen? met de date() functie? Ik heb werkelijk geen flauw idee hoe ik die unix date moet uitlezen.. |
Mordreth | zaterdag 19 januari 2008 @ 20:17 |
quote:Op zaterdag 19 januari 2008 20:05 schreef wobbel het volgende:Ik zit met iets heel vaags waar ik niet echt uit kom hoe ik het op moet lossen.... Ik heb een tabel met wat velden: Ziet er zo uit: Tabel BEZOEKERS Wat Datum Ip WAT - DATUM - IP home - 1200769418 - 82.64.36.31 home - 1200356372 - 213.51.210.153 contact - 1200313598 - 199.121.10.192 (etc etc etc) Nu zie je dat ik een UNIX timestamp (date ( "U" )) als datum... Maar hoe krijg ik nu een mooi overzichtje: MAAND - VIEWS Januari - en dan alle records die in januari valle Februari - en dan alle records die in februari vallen tot aan de huidige maand Je bouwt de query dan bijvoorbeeld (zijn meerdere wegen naar Rome) zo op: select * from bezoekers where datum > AAAAAA and datum < BBBBB Op de AAA plek zet je dan een unix timestamp van 1 februari neer (doormiddel van date: date(0,0,0,2,1,2008) en op de plek van BBB zet je dus het einde van de maand neer .
Met order by datum kan je het dan netjes oplopend / aflopend ophalen. |
wobbel | zaterdag 19 januari 2008 @ 20:31 |
quote:Op zaterdag 19 januari 2008 20:17 schreef Mordreth het volgende:[..] Je bouwt de query dan bijvoorbeeld (zijn meerdere wegen naar Rome) zo op: select * from bezoekers where datum > AAAAAA and datum < BBBBB Op de AAA plek zet je dan een unix timestamp van 1 februari neer (doormiddel van date: date(0,0,0,2,1,2008) en op de plek van BBB zet je dus het einde van de maand neer  . Met order by datum kan je het dan netjes oplopend / aflopend ophalen. aah kijk eens aan, daar heb ik wat meer aan 
en nog een vraagje...
ik heb nog een tabel:
Namen IdNaam - Naam 1 - roy 2 - roy 3 - kim 4 - ronny 5 - ronny 6 - kim 7 - eric 8 - kim
Hoe zorg ik nu dat ie alles slechts 1 keer weergeeft? dus
roy kim ronny eric
en dus geen dubbele? |
Geqxon | zaterdag 19 januari 2008 @ 20:47 |
SELECT DISTINCT. |
wobbel | zaterdag 19 januari 2008 @ 20:59 |
quote: 1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php $SQL_Name_Select = "SELECT DISTINCT Naam FROM Namen" $SQL_Name_Query = mysql_query ( $SQL_Name_Select ) or die ( $error->MySQL ( __FILE__, $SQL_Name_Insert, __LINE__ ) ); while ( $SQLData = mysql_fetch_array ( $SQL_Name_Query ) ) {
echo $SQLData['Naam'] . "<br />";
} ?> |
poept niks uit  zal wel iets heel stoms zijn, maar ben gigantisch moe en het PHPen gaat nietecht lekker meer  |
HuHu | zaterdag 19 januari 2008 @ 23:01 |
DISTINCT is een functie en daar moeten volgens mij verplicht haakjes omheen, dus zo:
1 | SELECT DISTINCT(Naam) FROM Namen |
|
Geqxon | zaterdag 19 januari 2008 @ 23:16 |
Het is geen functie, maar een optie die bij SELECT hoort. quote:The ALL, DISTINCT, and DISTINCTROW options specify whether duplicate rows should be returned. If none of these options are given, the default is ALL (all matching rows are returned). DISTINCT and DISTINCTROW are synonyms and specify removal of duplicate rows from the result set.  |
Flaccid | zondag 20 januari 2008 @ 02:04 |
quote: Dus hij maakt er een array van? Maar dat was het al? Wat doet dit precies meer? Select WHERE id > 0 kan toch ook? |
Geqxon | zondag 20 januari 2008 @ 02:08 |
quote:Op zondag 20 januari 2008 02:04 schreef Flaccid het volgende:[..] Dus hij maakt er een array van? Maar dat was het al? Wat doet dit precies meer? Select WHERE id > 0 kan toch ook? Het is een optie van SELECT, waarbij je tegen SELECT zegt dat je enkel rijen met unieke waarden wilt.
Lees meer op: http://www.w3schools.com/sql/sql_select.asp > "The SELECT DISTINCT Statement" |
Farenji | zondag 20 januari 2008 @ 11:58 |
quote: Model View Controller |
saban | zondag 20 januari 2008 @ 14:50 |
Ik wil kunnen zien hoeveel actieve/online gebruikers er op een website zijn, hiervoor wil ik een script schrijven, is dit een goede 'constructie' of kan het simpeler;
Iedere keer als de pagina bezocht wordt doe ik een INSERT hoelaat het op dat moment was met zijn IP. Indien zijn IP al voorkomt doe ik geen INSERT maar een UPDATE met een nieuwe tijd.
Op de achtergrond draait er een script die sorteert op tijd, alles wat ouder dan 10 minuten is wordt verwijderd. Wat dan overblijft zijn de mensen die actief/online zijn.
Klopt dit ongeveer? Of kan het simpeler? |
Geqxon | zondag 20 januari 2008 @ 15:21 |
Ik zou zelf een "LastOnline" veld aan je user-table toevoegen, en die updaten met de laatste keer dat hij een pagina op heeft gevraagd. Vervolgens een "SELECT COUNT(ID) FROM UserTable WHERE LastOnline > ...... GROUP BY ID".  |
LeeHarveyOswald | zondag 20 januari 2008 @ 20:57 |
Erg raar dilemma!
op www.boeroendoek.nl heb ik mooie uitlijning gemaakt voor afbeeldingen/tekst.
Dit werkte, tot vanmiddag netjes. Toen dacht ik, sommige pagina's wil ik de afbeelding rechts hebben. Ik dat er bij geknutseld, maar toen deed mn "rand" raar (zie link voor wat ik bedoel). Ik css en index.php hersteld... en het probleem blijft :{
Het lijkt te liggen aan . Als ik die verder naar onder plaats, dan gaat mn border ook verder omlaag (of: Border stopt waar <div class='text'> begint). Terwijl dit vanmiddag, én nu nog in IE, niet zo was.
Pagina's zonder uitgelijnde foto's gaan wel goed. Help :'( |
Geqxon | zondag 20 januari 2008 @ 21:02 |
Je bedoeld dat de tekst buiten het vlak valt? Compleet onderop de tekst even een "<br style='clear: both' />" neerzetten. Dan is het voor nu opgelost. 
Maar om het structurele probleem op te lossen > geqxon op hotmail.com voor Live Messenger. Ik help een streekgenoot maar wat graag 
[ Bericht 32% gewijzigd door Geqxon op 20-01-2008 21:07:31 ( ) ] |
wobbel | maandag 21 januari 2008 @ 10:42 |
Ik heb nu dit:
SELECT DISTINCT Year FROM CMS_PageStatistics...
Ik krijg nu netjes dit:
2006 2007 2008
Maar hoe kan ik zien hoeveel records er van elke zijn? dus:
2006 - 305 2007 - 1403 2008 - 2930 |
Geqxon | maandag 21 januari 2008 @ 10:45 |
Puur een gokje, aangezien het voor mij een tijd geleden is.
"SELECT COUNT(Year) FROM CMS_PageStatistics GROUP BY Year".
Al heb ik het denk ik helemaal fout.  |
Chandler | maandag 21 januari 2008 @ 10:48 |
Volgens mij zit je goed Geqxon, echter is het toch handig om het zo te doen.
SELECT Year, COUNT(Year) FROM CMS_PageStatistics GROUP BY Year ORDER BY Year ASC
Anders weet je niet welke count bij welke value hoort., |
Geqxon | maandag 21 januari 2008 @ 10:50 |
Doh.
"SELECT Year, COUNT(Year) FROM `years` GROUP BY Year"
[ Bericht 5% gewijzigd door Geqxon op 21-01-2008 11:12:41 ] |
JortK | maandag 21 januari 2008 @ 10:50 |
quote:Op maandag 21 januari 2008 10:42 schreef wobbel het volgende:Ik heb nu dit: SELECT DISTINCT Year FROM CMS_PageStatistics... Ik krijg nu netjes dit: 2006 2007 2008 Maar hoe kan ik zien hoeveel records er van elke zijn? dus: 2006 - 305 2007 - 1403 2008 - 2930 Je zou het zo eens kunnen proberen:
1 2 | SELECT year, count(year) FROM CMS_Pagestatistics GROUP BY year |
|
Geqxon | maandag 21 januari 2008 @ 10:51 |
Dus ik maak helemaal een nieuwe tabel aan om het te testen.... verbeterd Chandler mij.  |
wobbel | maandag 21 januari 2008 @ 11:05 |
Haha oke dat met die records werkt al, maar hoe doe ik nu een SUM?
Mijn huidige code die het prima oplost (maar heel slordig is omdat je een query in een loop hebt :P )
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 | <?php /* Load main library Files */ require_once ( "lib/htconfig.php" ); require_once ( LIB_PATH . "/f_core.php" );
$MySQL_Statistics_Select = "SELECT DISTINCT(`Year`) FROM CMS_PageStatistics ORDER BY Year DESC"; $MySQL_Statistics_Query = mysql_query ( $MySQL_Statistics_Select ) or die ( mysql_error ( ) ); while ( $SQLData = mysql_fetch_array ( $MySQL_Statistics_Query ) ) { $MySQL_StatSum_Select = "SELECT Sum(`Views`) FROM CMS_PageStatistics WHERE Year = '" . addslashes ( $SQLData['Year'] ) . "'"; $MySQL_StatSum_Query = mysql_query ( $MySQL_StatSum_Select ) or die ( mysql_error ( ) ); $MySQL_StatSum_Result = mysql_result ( $MySQL_StatSum_Query, 0 ); echo $SQLData['Year'] . " - " . $MySQL_StatSum_Result . "<br />"; }
?> |
Mijn tabel:

En dit is het resultaat wat die van mij uitpoept:
2008 - 11 2007 - 26 2006 - 6
Maar hoe krijg ik het in 1 query? :P |
Geqxon | maandag 21 januari 2008 @ 11:08 |
SELECT Year, SUM(Views) FROM `years` GROUP BY Year
? |
wobbel | maandag 21 januari 2008 @ 11:11 |
quote: Maar hoe zorg ik ervoor dat ie de views ook uitpoept? Krijg nu NIKS uitgepoept 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?php /* Load main library Files */ require_once ( "lib/htconfig.php" ); require_once ( LIB_PATH . "/f_core.php" );
$MySQL_Statistics_Select = "SELECT Year, COUNT(Year), SUM(Views) FROM CMS_PageStatistics WHERE 1 GROUP BY Year"; $MySQL_Statistics_Query = mysql_query ( $MySQL_Statistics_Select ) or die ( mysql_error ( ) ); while ( $SQLData = mysql_fetch_array ( $MySQL_Statistics_Query ) ) { echo $SQLData['Year'] . " - " . $SQLData['Views'] . "<br />"; } ?> |
poept dit uit:
2006 - 2007 - 2008 - |
Geqxon | maandag 21 januari 2008 @ 11:13 |
" ... , SUM(Views) AS Views FROM .... "
 |
wobbel | maandag 21 januari 2008 @ 11:14 |
quote: Ik ben U eeuwig dankbaar Bobbieeeej |
MuRKie | maandag 21 januari 2008 @ 14:38 |
ligt www.apache.org er bij jullie ook uit? |
CraZaay | maandag 21 januari 2008 @ 14:51 |
quote: Hij is wel te pingen, dus de webserver (Apache? ) staat uit lijkt me  |
MuRKie | maandag 21 januari 2008 @ 16:21 |
quote:  |
Resco | maandag 21 januari 2008 @ 17:22 |
Werkt hier wel weer inmiddels. |
DutchBlood | maandag 21 januari 2008 @ 17:46 |
Ik loop tegen het volgende MySQL gerelateerde probleem aan. Ik heb een tabel met registraties voor een sport-event. Mensen kunnen zelf hun racenummer kiezen. Nu wil het echter zo maken dat op het moment dat iemand geen nummer kiest ze een vrij nummer zo dicht mogelijk bij 1 krijgen. Dus stel dat de tabel er zo uit ziet:
1 2 3 | Pietje 2 Jantje 5 Henkie 1 |
Op het moment dat iemand geen nummer kiest, moet ie dus nummer 3 krijgen. Vraag is, hoe kom ik achter dit getal?
Als ik nummer auto_increment meegeef hoogt ie namelijk het hoogste getal, 5 dus, met 1 op =>6, en dat wil ik niet. |
mschol | maandag 21 januari 2008 @ 18:53 |
quote:Op maandag 21 januari 2008 17:46 schreef DutchBlood het volgende:Ik loop tegen het volgende MySQL gerelateerde probleem aan. Ik heb een tabel met registraties voor een sport-event. Mensen kunnen zelf hun racenummer kiezen. Nu wil het echter zo maken dat op het moment dat iemand geen nummer kiest ze een vrij nummer zo dicht mogelijk bij 1 krijgen. Dus stel dat de tabel er zo uit ziet: [ code verwijderd ] Op het moment dat iemand geen nummer kiest, moet ie dus nummer 3 krijgen. Vraag is, hoe kom ik achter dit getal? Als ik nummer auto_increment meegeef hoogt ie namelijk het hoogste getal, 5 dus, met 1 op => 6, en dat wil ik niet. een dirty oplossing: een loopje maken dat vanaf 1 gaat tellen naar de eerste beste lege plek.. (en telkens checkt met een select of het nummer al bestaat) geen idee hoe je het anders zou moeten doen... |
wobbel | maandag 21 januari 2008 @ 19:43 |
Ik hoop dat jullie een beetje JS kunnen 
Ik heb deze pagina:
http://www.senscomputers.nl/v2/TEST.php
als je vervolgens de popup opent, en je klikt op het nummer...dan moet ie dat invullen in het inputvenster van het vorige venster 
Het KAN wel maar hoe? 
[edit]
mm, er is een JS voor dummies topic 
[ Bericht 9% gewijzigd door wobbel op 21-01-2008 19:49:43 ] |
Light | maandag 21 januari 2008 @ 19:49 |
quote:Op maandag 21 januari 2008 18:53 schreef mschol het volgende:[..] een dirty oplossing: een loopje maken dat vanaf 1 gaat tellen naar de eerste beste lege plek.. (en telkens checkt met een select of het nummer al bestaat) geen idee hoe je het anders zou moeten doen... Doe dan gewoon 1 select query om alle id's op te vragen. Dan kun je in php wel uitzoeken wat het laagste vrije id is. |
DutchBlood | maandag 21 januari 2008 @ 20:00 |
quote:Op maandag 21 januari 2008 18:53 schreef mschol het volgende:[..] een dirty oplossing: een loopje maken dat vanaf 1 gaat tellen naar de eerste beste lege plek.. (en telkens checkt met een select of het nummer al bestaat) geen idee hoe je het anders zou moeten doen... Had ik al overwegen, maar zoals je vermeld nogal dirty.quote:Op maandag 21 januari 2008 19:49 schreef Light het volgende:[..] Doe dan gewoon 1 select query om alle id's op te vragen. Dan kun je in php wel uitzoeken wat het laagste vrije id is. Dat lijkt me een goed idee ja. Bedankt. |
Farenji | maandag 21 januari 2008 @ 20:37 |
quote:Op maandag 21 januari 2008 17:46 schreef DutchBlood het volgende:Ik loop tegen het volgende MySQL gerelateerde probleem aan. Ik heb een tabel met registraties voor een sport-event. Mensen kunnen zelf hun racenummer kiezen. Nu wil het echter zo maken dat op het moment dat iemand geen nummer kiest ze een vrij nummer zo dicht mogelijk bij 1 krijgen. Dus stel dat de tabel er zo uit ziet: [ code verwijderd ] Op het moment dat iemand geen nummer kiest, moet ie dus nummer 3 krijgen. Vraag is, hoe kom ik achter dit getal? Als ik nummer auto_increment meegeef hoogt ie namelijk het hoogste getal, 5 dus, met 1 op => 6, en dat wil ik niet. Hm dat was lastiger dan ik dacht maar is toch gelukt, in 2 queries of zelfs 1, als je aanneemt dat ID=1 al bezet is (daar kun je evt op query'en) dan doet de volgende query de truuk:
1 2 3 4 5 | select n1.ID + 1 as lowestFreeID from nodes n1 left join nodes n2 on n2.ID = n1.ID + 1 where n2.ID is null order by n1.ID limit 1; |
|
poepeneesje | maandag 21 januari 2008 @ 20:57 |
Hallo,
Ik ben bezig met een website inclusief database. Ik heb bij PCextreme een database opgebouwd nu wil ik via de website (deze staat bij een ander bedrijf gehost) de informatie uit de database halen, maar ik krijg de volgende foutmelding:
1 | Unknown MySQL server host 'sql2.pcextreme.nl' (1) |
Iemand die hier een oplossing voor weet/heeft?
-xxx- |
wobbel | maandag 21 januari 2008 @ 20:59 |
quote:Op maandag 21 januari 2008 20:57 schreef poepeneesje het volgende:Hallo, Ik ben bezig met een website inclusief database. Ik heb bij PCextreme een database opgebouwd nu wil ik via de website (deze staat bij een ander bedrijf gehost) de informatie uit de database halen, maar ik krijg de volgende foutmelding: [ code verwijderd ] Iemand die hier een oplossing voor weet/heeft? -xxx- kan je wel vanaf buitenaf connecten? en heb je de poort 3306 ingesteld?
Bij heel veel MySQL servers kan je niet van buitenaf connecten naar het IP, of alleen vanaf bepaalde ip adressen (of ranges) |
Light | maandag 21 januari 2008 @ 21:09 |
Ik heb een probleem bij het versturen van html mails. In Thunderbird en in Mail (op Mac) werkt het zoals ik zou verwachten, ook met de linkjes in de mail zelf (<a href=#id>text</a> dingen). Maar die linkjes werken (uiteraard, zou ik bijna zeggen) niet in Outlook. Ook in webmail (gmail) gaan de linkjes niet goed, en daar is de hele css opmaak ook nog zoek.
De mail is xhtml 1.0 transitional (op een paar kleine foutjes na) en met alle css info in <style> tags. Die code werkt goed in IE, FF en Safari.
Heeft iemand nog tips hoe ik die linkjes in Outlook kan laten werken? Ook tips over webmail clients als gmail zijn welkom. |
poepeneesje | maandag 21 januari 2008 @ 21:10 |
quote:Op maandag 21 januari 2008 20:59 schreef wobbel het volgende:[..] kan je wel vanaf buitenaf connecten? en heb je de poort 3306 ingesteld? Bij heel veel MySQL servers kan je niet van buitenaf connecten naar het IP, of alleen vanaf bepaalde ip adressen (of ranges) Ik heb een copy van de site op de servers PCextreme geüpload en dan wordt de data wel uitgelezen. Dus ik denk dat ik te maken heb met de tweede situatie die jij beschrijft.
Hoe kan ik alsnog een connectie maken met deze server, hoe stel ik poort 3306 in en hoe kan ik zien of ik een connectie kan opzetten vanaf buitenaf?
-xxx- |
CraZaay | maandag 21 januari 2008 @ 21:55 |
quote:Op maandag 21 januari 2008 21:10 schreef poepeneesje het volgende:[..] 1. Hoe kan ik alsnog een connectie maken met deze server, 2. hoe stel ik poort 3306 in en 3. hoe kan ik zien of ik een connectie kan opzetten vanaf buitenaf? 1. Niet van buitenaf, tenzij je je host vraagt om toegang van andere hosts dan localhost toe te staan. 2. Tenzij je expliciet een andere poort hebt opgegeven, is het standaard 3306. 3. Als mysql_connect() van buitenaf false geeft en op de server zelf true, dan lijkt het me duidelijk  |
saban | maandag 21 januari 2008 @ 22:23 |
Buitenaf verbinding naar PCX is niet mogelijk. |
Mordreth | maandag 21 januari 2008 @ 22:26 |
quote: Idd, wat vrij irritant is. Ben je gelijk ook aangewezen op phpmyadmin.. wat enorm ruk is. |
CraZaay | maandag 21 januari 2008 @ 23:07 |
Vrij gangbare security measure toch? |
GVRuud | maandag 21 januari 2008 @ 23:15 |
quote:Op maandag 21 januari 2008 21:09 schreef Light het volgende:Ik heb een probleem bij het versturen van html mails. In Thunderbird en in Mail (op Mac) werkt het zoals ik zou verwachten, ook met de linkjes in de mail zelf (<a href=#id>text</a> dingen). Maar die linkjes werken (uiteraard, zou ik bijna zeggen) niet in Outlook. Ook in webmail (gmail) gaan de linkjes niet goed, en daar is de hele css opmaak ook nog zoek. De mail is xhtml 1.0 transitional (op een paar kleine foutjes na) en met alle css info in <style> tags. Die code werkt goed in IE, FF en Safari. Heeft iemand nog tips hoe ik die linkjes in Outlook kan laten werken? Ook tips over webmail clients als gmail zijn welkom. Mijn ervaring is dat styles in <style> soms genegeerd worden. Wanneer je die inline toevoegd aan elementen werkt het (naar mijn ervaring) wel overal.
Met anchors in html-mail heb ik helaasch geen ervaring... |
Mordreth | maandag 21 januari 2008 @ 23:20 |
quote: Idd, maar maakt het niet minder irritant .
[ Bericht 0% gewijzigd door Mordreth op 21-01-2008 23:27:33 ] |
CraZaay | maandag 21 januari 2008 @ 23:36 |
quote:Op maandag 21 januari 2008 21:09 schreef Light het volgende:Heeft iemand nog tips hoe ik die linkjes in Outlook kan laten werken? Ook tips over webmail clients als gmail zijn welkom. http://www.email-standards.org/ |
super-muffin | maandag 21 januari 2008 @ 23:55 |
Leuk topic.  |
Farenji | dinsdag 22 januari 2008 @ 09:02 |
quote: Als die host ssh toegang heeft kun je mysql gewoon tunnelen over ssh en kun je alles wel gewoon vanaf je eigen pc bereiken. |
SHERMAN | dinsdag 22 januari 2008 @ 11:36 |
Situatie, ik heb een database met een berg tabellen.
In 1 van die tabellen heb ik een kolom waar in een aantal waarden in terug kunnen komen, nu staat daar bij een aantal, dus niet allemaal een 6, hier wil ik een 1 van maken.
Ik Googlelen, ik vind het volgende:
1 | update [TABEL] set [KOLOMNAAM] = replace([KOLOMNAAM],'[6]','[1]'); |
Als ik deze echter uitvoer via phpMyAdmin krijg ik een syntax error..? |
Farenji | dinsdag 22 januari 2008 @ 11:41 |
1 | update [TABEL] set [KOLOMNAAM] = 1 where [KOLOMNAAM] = 6; |
|
SHERMAN | dinsdag 22 januari 2008 @ 11:48 |
Thx, maar krijg nog steeds een 1046 error, MySQL zou dit toch gewoon moeten kunnen lijkt me? |
SHERMAN | dinsdag 22 januari 2008 @ 11:59 |
quote:Op dinsdag 22 januari 2008 11:48 schreef SHERMAN het volgende:Thx, maar krijg nog steeds een 1046 error, MySQL zou dit toch gewoon moeten kunnen lijkt me? Heb hem al.. ;)
1 | UPDATE `TABEL` SET KOLOM = replace(KOLOM,"6","1") |
|
CraZaay | dinsdag 22 januari 2008 @ 12:58 |
quote: Fwrenji's methode werkt ook gewoon hoor  |
SHERMAN | dinsdag 22 januari 2008 @ 13:00 |
Ongetwijfeld, maar hier lukte het niet..  |
poepeneesje | dinsdag 22 januari 2008 @ 14:16 |
Het is "gelukt" met de database, ik heb de database opnieuw moeten opbouwen op een andere server.
Maar nu heb ik een probleem als ik de volgende PHP regel invoer:
1 2 3 | <?php header("content-type: application/xhtml+xml; charset=utf-8") ?> |
Firefox geeft dan mijn achtergrond afbeelding maar gedeeltelijk weer (Opera en Internet Explorer doen het wel goed), iemand die weet wat het probleem is?
De reden dat ik deze regel nodig heb, is omdat de goede MIME type wordt niet meegestuurd door de server. Bij de config files van Apache kan ik niet komen om daar het .htaccess aan te passen en de meta-tag wordt niet herkend.
Oja een linkje naar de site zodat jullie kunnen zien wat ik bedoel .
-xxx- |
PiRANiA | dinsdag 22 januari 2008 @ 14:20 |
kan je btw meerdere updates doen in 1 query? bij mij lukte het niet... |
CraZaay | dinsdag 22 januari 2008 @ 14:37 |
quote: Wat wil je precies doen? Dezelfde data updaten voor meerdere records, of verschillende data? |
MuRKie | dinsdag 22 januari 2008 @ 18:48 |
Ik krijg mod_rewrite niet goed werkend.. Als ik de eerste keer een link aanklik (menuitem/list.html) dan werkt het goed, maar vervolgens veranderd deze hyperlink dan in menuitem/menuitem/list.html
De html code voor de links is:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?php function displayMenu() { $html = "<div id=\"navcontainer\">\n"; $html .= "\t\t\t\t<div id=\"title\">" . _MENU_TITLE . "</div>\n"; $html .= "\t\t\t\t<ul id=\"list\">\n"; $html .= "\t\t\t\t\t<li class=\"item\"><a href=\"menuitem/list.html\">Menu items</a></li>\n"; $html .= "\t\t\t\t\t<li class=\"item\"><a href=\"content/list.html\">Pagina's</a></li>\n"; $html .= "\t\t\t\t\t<li class=\"item\"><a href=\"gebruiker/list.html\">Gebruikers</a></li>\n"; $html .= "\t\t\t\t\t<li class=\"item\"><a href=\"mail/edit.html\">Mail</a></li>\n"; $html .= "\t\t\t\t\t<li class=\"item\"><a href=\"login/logout.html\">Uitloggen</a></li>\n"; $html .= "\t\t\t\t</ul>\n"; $html .= "\t\t\t</div>\n"; return $html; } ?> |
en mijn htaccess ziet er zo uit:
1 2 3 | RewriteEngine On RewriteRule ^(.*)/(.*)/(.*)\.html$ index.php?component=$1&type=$2&itemid=$3 [L] RewriteRule ^(.*)/(.*)\.html$ index.php?component=$1&type=$2 [L] |
iemand enig idee hoe dit komt? |
Tuvai.net | dinsdag 22 januari 2008 @ 18:56 |
TeeVeePee. Alhoewel ik steeds minder met PHP aan het werken ben gezien ik op m'n werk zoveel met .NET bezig ben. >_> |
Xcalibur | dinsdag 22 januari 2008 @ 19:03 |
quote: Voeg eens een base href aan je HTML toe, waarin de root van je site staat  |
MuRKie | dinsdag 22 januari 2008 @ 19:04 |
quote: http://localhost/menuitem/list bedoel je dan? Moet dat standaard bij mod_rewrite? Alle links in mijn website de hele url gebruiken?
mijn menu ziet er nu zo uit:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?php function displayMenu() { $html = "<div id=\"navcontainer\">\n"; $html .= "\t\t\t\t<div id=\"title\">" . _MENU_TITLE . "</div>\n"; $html .= "\t\t\t\t<ul id=\"list\">\n"; $html .= "\t\t\t\t\t<li class=\"item\"><a href=\"" . cmsConfig_siteRoot . "cbs/menuitem/list/\">Menu items</a></li>\n"; $html .= "\t\t\t\t\t<li class=\"item\"><a href=\"" . cmsConfig_siteRoot . "cbs/content/list/\">Pagina's</a></li>\n"; $html .= "\t\t\t\t\t<li class=\"item\"><a href=\"" . cmsConfig_siteRoot . "cbs/gebruiker/list/\">Gebruikers</a></li>\n"; $html .= "\t\t\t\t\t<li class=\"item\"><a href=\"" . cmsConfig_siteRoot . "cbs/mail/edit/\">Mail</a></li>\n"; $html .= "\t\t\t\t\t<li class=\"item\"><a href=\"" . cmsConfig_siteRoot . "cbs/login/logout/\">Uitloggen</a></li>\n"; $html .= "\t\t\t\t</ul>\n"; $html .= "\t\t\t</div>\n"; return $html; } ?> |
en mijn htaccess is:
1 2 3 4 5 6 7 8 9 10 | RewriteEngine On
#RewriteRule ^(.*)/(.*)/(.*)/ index.php?component=$1&category=$2&type=$3 [L] #RewriteRule ^(.*)/(.*)/(.*) index.php?component=$1&category=$2&type=$3 [L]
#RewriteRule ^(.*)/(.*)/(.*)/ index.php?component=$1&type=$2&itemid=$3 [L] #RewriteRule ^(.*)/(.*)/(.*) index.php?component=$1&type=$2&itemid=$3 [L]
RewriteRule ^(.*)/(.*)/ index.php?component=$1&type=$2 [L] RewriteRule ^(.*)/(.*) index.php?component=$1&type=$2 [L] |
En het lijkt te werken..
Maar dan heb ik nog een vraag. Ik heb 2 verschillende url's met evenveel get variabelen erin.. Hoe weet mod_rewrite welke hij moet kiezen dan?
[edit]Siteroot kijkt vanuit htdocs en niet vanaf de domeinnaam, zit daar verschil tussen?[/edit]
[ Bericht 43% gewijzigd door MuRKie op 22-01-2008 19:14:46 ] |
CraZaay | dinsdag 22 januari 2008 @ 19:07 |
quote:Op dinsdag 22 januari 2008 19:04 schreef MuRKie het volgende:[..] http://localhost/menuitem/list bedoel je dan? Moet dat standaard bij mod_rewrite? Alle links in mijn website de hele url gebruiken? Of alles relatief vanaf de root gebruiken, zoals "/images/bla,gif", of de base-tag gebruiken: http://www.w3schools.com/tags/tag_base.asp |
Xcalibur | dinsdag 22 januari 2008 @ 21:09 |
quote:Op dinsdag 22 januari 2008 19:04 schreef MuRKie het volgende:http://localhost/menuitem/list bedoel je dan? Moet dat standaard bij mod_rewrite? Alle links in mijn website de hele url gebruiken? <base href=> is een aparte tag, die moet je in je <HEAD> van je document zetten  Dan worden alle links relatief aan dit pad bepaald, maar de volledige URL in je link zetten kan ook. Vind ik zelf alleen niet zo mooi  |
MuRKie | dinsdag 22 januari 2008 @ 21:50 |
quote:Op dinsdag 22 januari 2008 21:09 schreef Xcalibur het volgende:[..] <base href=> is een aparte tag, die moet je in je <HEAD> van je document zetten  Dan worden alle links relatief aan dit pad bepaald, maar de volledige URL in je link zetten kan ook. Vind ik zelf alleen niet zo mooi  <base> tag gaat niet werken in mijn cms omdat alles al utigevoerd wordt voor het in de html template wordt geprint.. |
Geqxon | dinsdag 22 januari 2008 @ 21:51 |
Ik werk hoe dan ook niet met relatieve URLs. Ook met header-informatie is dat not-done.  |
CraZaay | dinsdag 22 januari 2008 @ 21:52 |
quote:Op dinsdag 22 januari 2008 21:50 schreef MuRKie het volgende:[..] <base> tag gaat niet werken in mijn cms omdat alles al utigevoerd wordt voor het in de html template wordt geprint.. Wat wordt uitgevoerd? Uiteindelijk wordt de HTML toch door de browser geïnterpreteerd. Wees eens duidelijk  |
Light | dinsdag 22 januari 2008 @ 22:15 |
quote:Op maandag 21 januari 2008 23:15 schreef GVRuud het volgende:[..] Mijn ervaring is dat styles in <style> soms genegeerd worden. Wanneer je die inline toevoegd aan elementen werkt het (naar mijn ervaring) wel overal. Daar kan ik vast verder mee. Of iig het onthouden voor als het een keer wel nodig is, de eisen blijken aangepast deze keer. Scheelt mij weer  quote:Met anchors in html-mail heb ik helaasch geen ervaring... Google hielp ook al weinig Maar Outlook is gewoon een ramp, da's wel duidelijk. |
Light | dinsdag 22 januari 2008 @ 22:16 |
quote: Thanks, die kende ik nog niet  Allleen jammer dat ze Outlook 2003 niet kennen  |
Xcalibur | woensdag 23 januari 2008 @ 10:49 |
quote:Op dinsdag 22 januari 2008 21:50 schreef MuRKie het volgende:<base> tag gaat niet werken in mijn cms omdat alles al utigevoerd wordt voor het in de html template wordt geprint.. Je kan toch gewoon je adres in die tag zetten? Dat heeft toch niks met je CMS te maken?  |
Chandler | woensdag 23 januari 2008 @ 11:35 |
Ik heb een leuke vraag ;)
Ik heb een define waarbij ik de volgende gegevens heb
define("FILE_TYPES", "1,2,3");
deze informatie wil ik gebruiken bij uploads. Ik wil de file type controlleren met deze define die ik om zet naar een array dmv explode, maar het werkt niet :{
wat doe ik fout? |
Tuvai.net | woensdag 23 januari 2008 @ 11:42 |
quote:Op woensdag 23 januari 2008 11:35 schreef Chandler het volgende:Ik heb een leuke vraag  Ik heb een define waarbij ik de volgende gegevens heb define("FILE_TYPES", "1,2,3"); deze informatie wil ik gebruiken bij uploads. Ik wil de file type controlleren met deze define die ik om zet naar een array dmv explode, maar het werkt niet  [ code verwijderd ] wat doe ik fout? Horen die twee argumenten niet andersom te staan?  |
Chandler | woensdag 23 januari 2008 @ 11:47 |
quote: Nee, zie code
1 2 3 | <?php define("FILE_TYPES", "1,2,3"); ?> |
[ Bericht 44% gewijzigd door Chandler op 23-01-2008 11:54:28 ] |
Xcalibur | woensdag 23 januari 2008 @ 11:57 |
Ik denk dat hij de argumenten van de explode() bedoelt....  |
#ANONIEM | woensdag 23 januari 2008 @ 12:05 |
quote: Dat dus Daarnaast zou ik geen arrays in defines doen, ik zou (zeker als je niet zoveel opties hebt) deze apart definieren. Werkt mijns inzien beter en overzichtelijker.
[ Bericht 15% gewijzigd door #ANONIEM op 23-01-2008 12:06:04 ] |
Xcalibur | woensdag 23 januari 2008 @ 12:16 |
quote:Op woensdag 23 januari 2008 12:05 schreef Scorpie het volgende: Dat dus Daarnaast zou ik geen arrays in defines doen, ik zou (zeker als je niet zoveel opties hebt) deze apart definieren. Werkt mijns inzien beter en overzichtelijker. Dat is natuurlijk wel lastiger uit te breiden.... Maar ik zou in zo'n geval ook geen define gebruiken, maar een gewone array denk ik  |
MuRKie | woensdag 23 januari 2008 @ 12:38 |
quote:Op woensdag 23 januari 2008 10:49 schreef Xcalibur het volgende:[..] Je kan toch gewoon je adres in die tag zetten? Dat heeft toch niks met je CMS te maken?  Dat moet ik dan in mijn html template zetten.. en alle inhoud qua content en menu's wordt al opgebouwd voor ik het in de html weergeef.. Werkt het dan ook nog gewoon? Plakt die <base> voor elke url (of het nou een <a> of een <img> is de baseurl? |
MuRKie | woensdag 23 januari 2008 @ 12:40 |
quote:Op dinsdag 22 januari 2008 21:52 schreef CraZaay het volgende:[..] Wat wordt uitgevoerd? Uiteindelijk wordt de HTML toch door de browser geïnterpreteerd. Wees eens duidelijk  Alles wordt uitgevoerd.. Menu's opbouwen en in variabele stoppen. En zo ook content en andere inhoud die uit de database komt.. Weet niet of dat voor die basetag wat uitmaakt.. weet niet of hij voor alle url's de basetag plakt.. |
Tuvai.net | woensdag 23 januari 2008 @ 12:46 |
quote: Ik bedoel de argumenten van in_array()  |
CraZaay | woensdag 23 januari 2008 @ 13:00 |
quote:Op woensdag 23 januari 2008 12:40 schreef MuRKie het volgende:[..] Alles wordt uitgevoerd.. Menu's opbouwen en in variabele stoppen. En zo ook content en andere inhoud die uit de database komt.. Weet niet of dat voor die basetag wat uitmaakt.. weet niet of hij voor alle url's de basetag plakt.. De browser doet iets met de base-tag, heeft niets met server side zaken te maken  |
Chandler | woensdag 23 januari 2008 @ 13:00 |
correct, fout gezien vervelende van PHP is dat deze argumenten af en toe gewoon andersom staan  |
Tuvai.net | woensdag 23 januari 2008 @ 13:09 |
quote:Op woensdag 23 januari 2008 13:00 schreef Chandler het volgende:correct, fout gezien  vervelende van PHP is dat deze argumenten af en toe gewoon andersom staan  
Is inderdaad een groot nadeel van PHP, en tevens de reden dat veel mensen op PHP afgeven. Je hebt meerdere functies waar '$naald' en '$hooiberg' (zoals in_array() ) omgedraaid worden; en dat kan wel eens narigheid opleveren als je net een flinke lap code neergepleurd hebt. Tip: de PHP cheat sheet: http://www.ilovejackdaniels.com/cheat-sheets/php-cheat-sheet/  |
MuRKie | woensdag 23 januari 2008 @ 14:22 |
quote: Dus dan kan ik baseteg niet gebruiken aangezien php al mijn url's genereerd? Of juist wel? |
WyriHaximus | woensdag 23 januari 2008 @ 14:53 |
quote: Indirect wel aangezien je systeem er rekening mee moet houden in het genereren van je URL's . |
MuRKie | woensdag 23 januari 2008 @ 15:11 |
Hey ik vraag me iets af hè, puur uit nieuwsgierigheid. Ikzelf maak altijd mijn websites in een index.php en include alle content daarin en de lay-out ook. Maar ik zie ook vaak websites die meerdere losse pagina's hebben (index.php, content.php, catalogus.php, enz.) Maar hoe zit dat dan met je lay-out? Heb je dan niet hetzelfde euvel als met platte html dat je op elke pagina je lay-out moet bakken? Of include je dan gewoon op elke php pagina de lay-out template ipv alleen een keer in de index? Of zit daar een ander foefje achter?
En wat is dan het grootste verschil tussen beide methodes, en/of de voor- en nadelen van beide methodes. En zijn er verder nog andere handige methodes om je website op te bouwen?
Veel vragen, maar ik ben hier gewoon heel nieuwsgierig na en altijd opzoek naar betere, praktischere mogelijkheden.
Iemand die mij hier zijn mening over kan/wil geven? |
Xcalibur | woensdag 23 januari 2008 @ 15:22 |
quote:Op woensdag 23 januari 2008 14:22 schreef MuRKie het volgende:Dus dan kan ik baseteg niet gebruiken aangezien php al mijn url's genereerd? Of juist wel? Juist wel  De url's worden berekend vanaf de base href. Als je zorgt dat al je url's relatief zijn (en dat zijn ze waarschijnlijk vanwege je mod_rewrite) dan zorgt de base href ervoor dat ze allemaal vanaf de root van je site worden berekend. En dan ben je dus van het sub/sub/sub/sub/sub mapjes probleem af  |
Xcalibur | woensdag 23 januari 2008 @ 15:25 |
quote:Op woensdag 23 januari 2008 15:11 schreef MuRKie het volgende:Ikzelf maak altijd mijn websites in een index.php en include alle content daarin en de lay-out ook. Ik ook. Zeker in combinatie met mod_rewrite is dit (naar mijn mening) de beste oplossing, omdat je zo de bestandstructuur kunt simuleren die je anders met losse bestanden kunt maken.
Bovendien kan je alle generieke dingen zoals database openen, input validatie, error handling, etc. fijn in de index.php doen, is dat lekker centraal. |
MuRKie | woensdag 23 januari 2008 @ 15:27 |
quote:Op woensdag 23 januari 2008 15:22 schreef Xcalibur het volgende:[..] Juist wel  De url's worden berekend vanaf de base href. Als je zorgt dat al je url's relatief zijn (en dat zijn ze waarschijnlijk vanwege je mod_rewrite) dan zorgt de base href ervoor dat ze allemaal vanaf de root van je site worden berekend. En dan ben je dus van het sub/sub/sub/sub/sub mapjes probleem af  Hmm dat zou inderdaad handig zijn! Ben inmiddels wel van het sub/sub/sub/sub probleem af.. Ik heb mijn url's namelijk niet meer relatief gemaakt  Door van
1 2 3 | <?php "content/view/7/"; ?> |
1 2 3 | <?php cmsConfig_siteRoot . "content/view/7/"; ?> |
te maken
maar met de basetag had dat dus werk gescheeld. Wat wel het voordeel is van mijn oplossing is dat ik nog steeds alle instellingen (in dit geval de siteroot) in de config.php kan instellen ipv in dit geval in de template.. |
MuRKie | woensdag 23 januari 2008 @ 15:31 |
quote:Op woensdag 23 januari 2008 15:25 schreef Xcalibur het volgende:[..] Ik ook. Zeker in combinatie met mod_rewrite is dit (naar mijn mening) de beste oplossing, omdat je zo de bestandstructuur kunt simuleren die je anders met losse bestanden kunt maken. Bovendien kan je alle generieke dingen zoals database openen, input validatie, error handling, etc. fijn in de index.php doen, is dat lekker centraal. Ok.. Ikzelf doe input validatie in het bestand zelf dat ik include (dus waar ook het inputveld staat) Ik gebruik een soort van losse componenten die opzich "zelfstandig" zijn en los staan van de index.php maar wel daarin geinclude worden.. |
CraZaay | woensdag 23 januari 2008 @ 15:33 |
quote: Zie de topic titel... MVC.
Voor PHP bijvoorbeeld Code Igniter of Cake. Je zou niet alleen je lay-out moeten scheiden, maar ook je application behaviour (controller) en business/data logic (model).
Leer er eens het een en ander over zou ik zeggen  |
MuRKie | woensdag 23 januari 2008 @ 15:36 |
quote:Op woensdag 23 januari 2008 15:33 schreef CraZaay het volgende:[..] Zie de topic titel... MVC. Voor PHP bijvoorbeeld Code Igniter of Cake. Je zou niet alleen je lay-out moeten scheiden, maar ook je application behaviour (controller) en business/data logic (model). Leer er eens het een en ander over zou ik zeggen  ik wist niet dat dat MVC daar voor stond  |
Xcalibur | woensdag 23 januari 2008 @ 15:37 |
quote:Op woensdag 23 januari 2008 15:27 schreef MuRKie het volgende:maar met de basetag had dat dus werk gescheeld. Wat wel het voordeel is van mijn oplossing is dat ik nog steeds alle instellingen (in dit geval de siteroot) in de config.php kan instellen ipv in dit geval in de template.. De siteroot kan je ook gewoon in je template printen ipv in je links natuurlijk  |
MuRKie | woensdag 23 januari 2008 @ 15:41 |
quote: Daar zit wat in  |
Farenji | woensdag 23 januari 2008 @ 15:53 |
quote: In de OOP tutorial die ik gisteren ben begonnen doe ik ook alles volgens het MVC model: [Perl] OOP tutorial / case study: DataRow.pm Is wel in perl maar MVC is taalonafhankelijk. Misschien leuk om te volgen. Vanavond de volgende aflevering.  |
MuRKie | woensdag 23 januari 2008 @ 16:18 |
quote: OOP is voor mij nog een stapje te ver ben ik bang.. Ik heb wel al een boek voor OOP aangeschafd maar dat was helemaal op Java toegespitst. Er werd wel vermeld dat OOP taalonafhankelijk is, maar ik vind het toch prettiger als ik meteen uitleg krijg vanuit php en ook oefeningen kan doen in php.. Heb alleen geen boek kunnen vinden die OOP behandeld voor php 
Ik had wel een tijdje lopen rommelen met OOP, kon ook wel wat losse klassen schrijven enzo, ik kreeg het alleen niet voor elkaar om het ook daadwerkelijk tot een geheel te koppelen.. Ik kon nog niet OOP denken en dat schoot dus nog niet op.. Ik was dan ook nog superleek met php, ik begin net een beetje meer te leren en heb besloten eerst gewoon goed te kunnen php-en en daarna naar OOP te gaan kijken.. Leek mij het meest verstandig..
Heb wel het complete handboek php5 / MySQL waar ook een stuk OOP wordt behandeld, hier heb ik nog niet uitgebreid naar gekeken bedenk ik mij net.. Misschien dat ik daar tezijnertijd nog wat aan kan hebben..
[ Bericht 12% gewijzigd door MuRKie op 23-01-2008 16:23:41 ] |
Geqxon | woensdag 23 januari 2008 @ 16:26 |
-Verkeerd topic- |
MuRKie | woensdag 23 januari 2008 @ 16:28 |
quote: ? |
Geqxon | woensdag 23 januari 2008 @ 16:29 |
Ik heb mijn post weg-ge-edit. Want hij stond verkeerd.  |
MuRKie | woensdag 23 januari 2008 @ 16:30 |
quote: Ow op die manier  |
Farenji | woensdag 23 januari 2008 @ 17:10 |
quote: Juist omdat er altijd gedacht wordt dat OOP moeilijk of complex is, heb ik die tutorial gemaakt. Dit is een misvatting, in wezen is het heel simpel en (zeker het eindproduct) is vaak veel intuitiever dan puur imperatief programmeren. Ik ga ook behandelen hoe overerving werkt, hoe je classes met elkaar combineert en er 1 geheel van smeedt. Dus doe een poging het te volgen zou ik zeggen.  |
MuRKie | woensdag 23 januari 2008 @ 18:49 |
quote:Op woensdag 23 januari 2008 17:10 schreef Farenji het volgende:[..] Juist omdat er altijd gedacht wordt dat OOP moeilijk of complex is, heb ik die tutorial gemaakt. Dit is een misvatting, in wezen is het heel simpel en (zeker het eindproduct) is vaak veel intuitiever dan puur imperatief programmeren. Ik ga ook behandelen hoe overerving werkt, hoe je classes met elkaar combineert en er 1 geheel van smeedt. Dus doe een poging het te volgen zou ik zeggen.  Maar wat ik zag bij jouw les 1 was dat er wel redelijk verschil zit in OOP met Perl vergeleken met PHP, dus is het voor mij dan wel nuttig om OOP met Perl te gaan leren? |
Geqxon | woensdag 23 januari 2008 @ 19:11 |
Kan het kloppen dat deze combi niet gaat lukken?
Misschien omdat $output zowel de returnwaarde gaat bevatten maar ook een inputwaarde van de array_merge functie is? |
ralfie | woensdag 23 januari 2008 @ 21:38 |
quote:Op woensdag 23 januari 2008 19:11 schreef Geqxon het volgende:Kan het kloppen dat deze combi niet gaat lukken? [ code verwijderd ] Misschien omdat $output zowel de returnwaarde gaat bevatten maar ook een inputwaarde van de array_merge functie is? zou wel moeten werken... |
Flaccid | woensdag 23 januari 2008 @ 22:27 |
Ik heb een tabel, met daarin 3 rijen. In een van die rijen staat een text met een link. Hoe kan ik eenvoudig die hele tabel uitlezen naar een list/menu item voor een form? tabel met 50 entries, omdit handmatig te doen is irritant. |
super-muffin | woensdag 23 januari 2008 @ 22:34 |
quote:Op woensdag 23 januari 2008 19:11 schreef Geqxon het volgende:Kan het kloppen dat deze combi niet gaat lukken? [ code verwijderd ] Misschien omdat $output zowel de returnwaarde gaat bevatten maar ook een inputwaarde van de array_merge functie is? Dat zou niet moeten uitmaken, check je functie nog maar eens na. |
CraZaay | woensdag 23 januari 2008 @ 22:42 |
quote:Op woensdag 23 januari 2008 19:11 schreef Geqxon het volgende:Misschien omdat $output zowel de returnwaarde gaat bevatten maar ook een inputwaarde van de array_merge functie is? Dat moet niet uitmaken (spuit 11, ik weet het). Even debuggen dus om te checken of $output en het resultaat van je functie beide een array bevatten zou ik zeggen De PHP error message wil ook wel helpen denk ik  |
poepeneesje | woensdag 23 januari 2008 @ 23:38 |
Ik haal een datum op uit mijn database:
1 | DATE_FORMAT(startdate, '%e/%m/%Y') AS startdate |
Deze wil ik printen daarom request ik hem:
1 | $startdate = $request["startdate"]; |
Maar nu wil ik niet de gehele datum printen, maar alleen de dag. Natuurlijk had ik dan dat kunnen aangeven in het eerste stukje code, dat ik alleen de dag binnen krijg. Maar dan komt dit stukje code om de hoek kijken:
1 | ORDER BY startdate ASC, enddate ASC, subscribedate ASC |
Hoe los ik dit netjes op? |
Farenji | woensdag 23 januari 2008 @ 23:50 |
Als je wil sorteren op datuim dan is het natuurlijk niet slim om hem te formatteren als dd/mm/yyyy. Je maakt er door je "AS startdate" een stringvergelijking van. Besef je je dan wel dat "10/12/2008" minder, dus *eerder* is dan "31/01/1978" ? YYYY-MM-DD is een betere volgorde, dat is ook de standaard DATE volgorde in mysql.
Hoe je het op kan lossen: in de sql gewoon als een mysql date of timestamp opvragen, dit in je code omzetten in een datumobject, of zelf de string opsplitsen op dag/maand/datum, en dan kun je het daarna formatteren zoals je wil. |
CraZaay | woensdag 23 januari 2008 @ 23:56 |
1 | DATE_FORMAT(startdate, '%e') AS startday ORDER BY startdate ASC, enddate ASC, subscribedate ASC |
En dan $request['startday'] |
poepeneesje | donderdag 24 januari 2008 @ 12:45 |
Voortborduren op mijn vorige post, wil ik nu graag de opgevraagde data tonen; groeperend op jaar en daarin per maand. Ik heb al een aantal dingen geprobeerd. Zo lukt het me wel om op maand te groeperen op de volgende manier tot en met de 12de maand:
1 2 | if(startmonth == 01){...} elseif(startmonth == 02){...} |
Dit zijn er "maar" twaalf, dus zou het wel eventueel zo kunnen. Maar met het jaar lukt het me niet, in de zin dat ik wil dat de code zodanig wordt, dat elk jaar "zelf" wordt gegenereerd:
1 2 3 4 | $start_jaar = 2008; $volgend_jaar = ???; if($opgehaalde_startjaar == $start_jaar){..} elseif($opgehaalde_startjaar == $volgend_jaar){...} |
Hebben jullie misschien een slimme en logische oplossing? Het volgende moet eigenlijk gebeuren:
Datums -> Automatisch gesorteerd, gegroepeerd en getoond op jaar -> Automatisch gesorteerd, gegroepeerd en getoond op maand.
@ Farenji & CraZaay: Bedankt, ik heb het opgelost zoals Farenji aangaf en de benodigde delen eruit gehaald met:
1 | $startday = date("d", strtotime($startdate)); |
-xxx- |
CraZaay | donderdag 24 januari 2008 @ 12:58 |
quote:Op donderdag 24 januari 2008 12:45 schreef poepeneesje het volgende:Hebben jullie misschien een slimme en logische oplossing? Het volgende moet eigenlijk gebeuren: Datums -> Automatisch gesorteerd, gegroepeerd en getoond op jaar -> Automatisch gesorteerd, gegroepeerd en getoond op maand. Sorteren in de query op datum en vervolgens in het loopje kijken wanneer een nieuw jaar begint?
1 2 3 4 5 | if ($year != $current_year) { echo('nieuw jaar'); $current_year = $year; } |
Dan heb je geen tig if's nodig iig.quote:@ Farenji & CraZaay: Bedankt, ik heb het opgelost zoals Farenji aangaf en de benodigde delen eruit gehaald met: Waarom nou de PHP date functions aanroepen om van de datum een timestamp te maken, en daar weer een dag van te maken? Waarom niet meteen in de query  |
poepeneesje | donderdag 24 januari 2008 @ 13:22 |
quote:Op donderdag 24 januari 2008 12:58 schreef CraZaay het volgende:[..] Sorteren in de query op datum en vervolgens in het loopje kijken wanneer een nieuw jaar begint? [ code verwijderd ] Dan heb je geen tig if's nodig iig. Bedankt, deze had ik ook al bedacht .quote:[..] Waarom nou de PHP date functions aanroepen om van de datum een timestamp te maken, en daar weer een dag van te maken? Waarom niet meteen in de query  Omdat ik geen andere manier wist waarmee ik de juiste gegevens kon verkrijgen...
Dit is mijn code, klik. Het volgende wil ik eigelijk bereiken, volgens mij is het hier voor een beetje omslachtig omschreven :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 2007 - januari - februari - ...
2008 - januari - februari - ...
2009 - januari - februari - ... |
Op bovenstaande manier zou ik graag mijn agenda willen tonen, de moeilijkheid zit hem -bij mij dan- in het feit dat ze op de goede volgorde gegroepeerd (op jaar en maand) en apart van elkaar worden getoond . |
CraZaay | donderdag 24 januari 2008 @ 13:31 |
Ik zou persoonlijk al die strtotime() de deur uit doen en dit in de query oplossen (zie mijn eerdere post hierover). Zo niet, gebruik dan iig niet 3 keer dezelfde "strtotime($startdate)" 
Ik snap niet zo goed waarom je "$id = $request["id"];" etc etc doet. Waarom gebruik je niet gewoon die $request['id'] direct als je er verder niets mee doet? |
MuRKie | donderdag 24 januari 2008 @ 15:40 |
kan iemand mij helpen met de volgende mod_rewrite regels? De regels zijn voor de frontend van mijn cms, maar deze moeten niet werken wanneer in in de map cbs wil voor de backend.. Nu ziet hij cbs als de eerste get variabele ipv een echte map..
1 2 3 4 5 6 | RewriteEngine On
RewriteRule ^!(.*)/(.*)/(.*)/$ index.php?component=$1&type=$2&id=$3 [L] RewriteRule ^!(.*)/(.*)/(.*)$ index.php?component=$1&type=$2&id=$3 [L] RewriteRule ^!(.*)/(.*)/$ index.php?component=$1&type=$2 [L] RewriteRule ^!(.*)/(.*)$ index.php?component=$1&type=$2 [L] |
ik had het zelf al geprobeerd op deze manier:
1 2 3 4 5 6 | RewriteEngine On
RewriteRule ^!(cbs)/(.*)/(.*)/$ index.php?component=$1&type=$2&id=$3 [L] RewriteRule ^!(cbs)/(.*)/(.*)$ index.php?component=$1&type=$2&id=$3 [L] RewriteRule ^!(cbs)/(.*)/$ index.php?component=$1&type=$2 [L] RewriteRule ^!(cbs)/(.*)$ index.php?component=$1&type=$2 [L] |
|
CraZaay | donderdag 24 januari 2008 @ 16:36 |
Geen idee, maar die eerste 4 regels kunnen prima op 1 regel, moet je alleen even in PHP checken of sommige variabelen leeg zijn  |
MuRKie | donderdag 24 januari 2008 @ 17:15 |
quote:Op donderdag 24 januari 2008 16:36 schreef CraZaay het volgende:Geen idee, maar die eerste 4 regels kunnen prima op 1 regel, moet je alleen even in PHP checken of sommige variabelen leeg zijn  Hoe bedoel je dat? |
CraZaay | donderdag 24 januari 2008 @ 17:19 |
RewriteRule ^!(.*)?/?(.*)?/?(.*)?/?$ index.php?component=$1&type=$2&id=$3 [L]
Misschien niet helemaal correcte syntax, maar zo kan het op 1 regel. Afhankelijk van het aantal componenten zijn 1 of meer variabelen (component, type en/of id) dan leeg. |
MuRKie | donderdag 24 januari 2008 @ 17:31 |
Ik ben nog al vers met PHP hoor maar ik zit met een probleem waar ik niet uitkom.. Ik ben bezig met een formulier waarin ik ook foutmeldingen wil verwerken als er iets niet goed gaat. Ik wil dat die foutmelding in het formulier zelf wordt weergegeven met de data die de gebruiker voor het versturen had ingevuld. Ik krijg dit niet mooi voor elkaar.. Ik heb het formulier in zijn geheel in functies geschreven.
Ik heb er nu een beetje een zooi van gemaakt om tot een oplossing te komen wat dus nog steeds niet gelukt is.
Heeft iemand een voorbeeld script voor me hoe ik mooi een formulier kan opbouwen met een invoer validatie en foutafhandeling? Ik kom er echt niet meer uit vandaag... |
no1uknow | donderdag 24 januari 2008 @ 18:12 |
Voor school (PHP vak) moet ik een webapplicatie maken waar mensen zich op kunnen registreren, vervolgens een adresboek moeten kunnen maken en bijhouden/wijzigen, en in de applicatie zelf een nieuwsbrief moeten kunnen opstellen die verzonden kan worden naar iedereen uit het adresboek.
Nu heb ik het registratiegedeelte bijna af, het adresboek zo goed als af, maar nu nog het nieuwsbrief gedeelte. (Vanavond moeten het adresboek+nieuwsbrief gedeelte worden ingeleverd!)
Ik heb het volgende script meegekregen van m'n leraar, die ik (denk ik..) moet gebruiken:
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 | <?php $IsPostback = false; $onderwerp = ""; $bericht = ""; $success = false; if(isset($_POST['Submit'])) { $IsPostback = true; $adressenlijst = "persoon1@adres1.nl, persoon2@adres2.nl"; // vul deze met adressen uit de database!
$onderwerp = $_POST['onderwerp']; $bericht = $_POST['bericht']; // werkt alleen met anonymous smtp, HRO: alleen als je op school netwerk zit!, zie anders evt PEAR::Mail $success = @mail($adressenlijst, $onderwerp, $bericht, "From: mailinglist@adres.nl"); // let op dat sommige SMTP servers geen niet bestaande adressen toestaan als afzender } ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>mail versturen</title> </head>
<body>
<?php if($IsPostback) { if ($success) echo '<p class="success">mail succesvol verstuurd. </p>'; else echo '<p class="error">Er is een fout opgetreden bij het versturen van de mail</p>'; } else { ?> <h2>Mail:</h2> <form action="simple_mail.php" Method="Post"> <label>Onderwerp:</label><input type="text" name="onderwerp" /> <br /> <label>Bericht:</label><textarea name="bericht" > </textarea> <br /> <input type="Submit" name="Submit" value="Versturen" /> </form>
<?php } ?> </body> </html> |
Kan iemand mij dit scriptje uitleggen, en vooral de volgende dingen:
Dit stukje commentaar:
1 | // werkt alleen met anonymous smtp, HRO: alleen als je op school netwerk zit!, zie anders evt PEAR::Mail |
Wat bedoelt de desbetreffende leraar hiermee? Ik heb een beetje lopen zoeken naar anonymous smtp maar ik kan niks interessants of bruikbaars vinden. (Zit op de Hogeschool Rotterdam, maar daar heb ik niks aan als ik thuis zit)
1 | $adressenlijst = "persoon1@adres1.nl, persoon2@adres2.nl"; // vul deze met adressen uit de database! |
Ik heb een database van het adresboek (voor elke geregistreerde gebruiker een eigen tabel met daarin de fields Naam en Email) Hoe roep ik die correct op zodat ze daar naar verzonden worden? Een vriend van mij typte het volgende:
1 2 3 4 5 6 | mysql_connect("localhost","root","speelgoed"); $resultaat = mysql_query("SELECT email FROM gebruikers002"); while($rij = mysql_fetch_array($resultaat)){ $array[] = $rij['email'].','; } $adressenlijst = implode(",",$array); |
Klopt dat?
Wat ik tot nu toe heb begrepen is dat ik smtp erbij nodig heb. Hoe ga ik dat doen? Waar haal ik zo'n server vandaan (dus niet die schoolserver) en is dit te testen op localhost? |
MuRKie | donderdag 24 januari 2008 @ 18:36 |
quote:Op donderdag 24 januari 2008 17:19 schreef CraZaay het volgende:RewriteRule ^!(.*)?/?(.*)?/?(.*)?/?$ index.php?component=$1&type=$2&id=$3 [L] Misschien niet helemaal correcte syntax, maar zo kan het op 1 regel. Afhankelijk van het aantal componenten zijn 1 of meer variabelen (component, type en/of id) dan leeg. Moet die uitroepteken dan na de ^ daar staan? Want dat is toch NOT? |
CraZaay | donderdag 24 januari 2008 @ 18:48 |
quote: Die hoort er niet nee. Ik heb gewoon jouw code gecopy-paste  |
MuRKie | donderdag 24 januari 2008 @ 18:50 |
quote: OK 
[edit]Die regel werkt niet. Hij returned dan de bestandsnaam. In dit geval index.php[/edit]
[ Bericht 9% gewijzigd door MuRKie op 24-01-2008 19:06:43 ] |
MuRKie | donderdag 24 januari 2008 @ 18:52 |
ik heb mijn formulier nu alsvolgt gemaakt maar ik heb het idee dat ik dit niet echt efficient doe zo..
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 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 | <?php // no direct access defined('_ALLOW_ACCESS') or die('Restricted access');
// --- formulier verwerken --- \\ function processForm() { if($_POST['title'] != "" && $_POST['itemID'] != "") { if($_POST['ID'] != "" && fetchType() == "edit") { $varQuery = "UPDATE menuitem "; $varSubQuery = "WHERE ID = '" . mysql_real_escape_string(htmlentities($_POST['ID'])) . "'"; } else if($_POST['ID'] == "" && fetchType() == "new") { $varQuery = "INSERT INTO menuitem"; $varSubQuery = ""; } else { $varComponentResult .= displayComponentResult(retryForm()); exit; } $varQuery .= " SET title = '" . mysql_real_escape_string(htmlentities($_POST['title'])) . "'"; $varQuery .= ", component = '" . mysql_real_escape_string(htmlentities("content")) . "'"; //frontend components moeten nog in de database verwerkt worden. Daarna zal deze functie gemaakt kunnen worden! $varQuery .= ", itemID = '" . mysql_real_escape_string(htmlentities($_POST['itemID'])) . "'"; $varQuery .= ", publish = '" . mysql_real_escape_string(htmlentities($_POST['publish'])) . "'"; $varQuery .= $varSubQuery; $varRun = mysql_query($varQuery) or die(_DATABASE_QUERY_ERROR . " " . mysql_error()); redirect(cmsConfig_siteRoot . 'cbs/?component=menuitem&type=list'); } else { $varComponentResult .= displayComponentResult(retryForm()); return $varComponentResult; } }
// --- lijst maken van beschikbare paginas --- \\ function listPages($pageID) { $varQuery = "SELECT ID, title"; $varQuery .= " FROM content"; $varRun = mysql_query($varQuery) or die(_DATABASE_QUERY_ERROR . " " . mysql_error()); $intRecords = mysql_affected_rows(); $varHtml = "\t\t\t\t" . _CMN_PAGES . ":<br />\n"; $varHtml .= "\t\t\t\t<select name=\"itemID\" size= \"" . $intRecords . "\">\n"; while($arrResult = mysql_fetch_assoc($varRun)) { $varHtml .= "\t\t\t\t\t<option value=\"" . $arrResult['ID'] . "\""; if($arrResult['ID'] == $pageID) { $varHtml .= " selected"; } $varHtml .= ">"; $varHtml .= $arrResult['title']; $varHtml .= "</option>\n"; } $varHtml .= "\t\t\t\t</select><br />\n"; return $varHtml; }
// --- velden voor nieuw formulier aanmaken --- \\ function newForm() { $arrForm['type'] = "new"; $arrForm['ID'] = ""; $arrForm['title'] = ""; $arrForm['itemID'] = ""; $arrForm['page'] = listPages($arrForm['itemID']); $arrForm['publish'] = ""; $arrForm['submit'] = _CMN_CREATE; return $arrForm; }
// --- velden aanmaken voor onvolledig ingevuld formulier --- \\ function retryForm() { $arrForm['type'] = mysql_real_escape_string(htmlentities($_GET['type'])); $arrForm['ID'] = mysql_real_escape_string(htmlentities($_POST['ID'])); $arrForm['title'] = mysql_real_escape_string(htmlentities($_POST['title'])); $arrForm['itemID'] = mysql_real_escape_string(htmlentities($_POST['itemID'])); $arrForm['page'] = listPages($_POST['itemID']); $arrForm['publish'] = mysql_real_escape_string(htmlentities($_POST['publish'])); $arrForm['submit'] = mysql_real_escape_string(htmlentities($_POST['submit'])); return $arrForm; }
// --- velden voor wijzigings formulier aanmaken --- \\ function editForm() { $intID = fetchID(); $varQuery = "SELECT ID, title, itemID, publish"; $varQuery .= " FROM menuitem"; $varQuery .= " WHERE ID = '" . $intID . "'"; $varRun = mysql_query($varQuery) or die(_DATABASE_QUERY_ERROR . " " . mysql_error()); $arrResult = mysql_fetch_assoc($varRun); $arrForm['type'] = "edit"; $arrForm['ID'] = $arrResult['ID']; $arrForm['title'] = $arrResult['title']; $arrForm['itemID'] = $arrResult['itemID']; $arrForm['page'] = listPages($arrForm['itemID']); $arrForm['publish'] = $arrResult['publish']; $arrForm['submit'] = _CMN_EDIT; return $arrForm; }
// --- formulier opbouwen --- \\ function displayComponentResult($arrForm) { $varHtml = "<form action=\"" . cmsConfig_siteRoot . "cbs/?component=menuitem&type=" . $arrForm['type']; if($arrForm['ID'] != "") { $varHtml .= "&id=" . $arrForm['ID']; } $varHtml .= "\" method=\"post\" name=\"menuitem\">\n"; $varHtml .= "\t\t\t\t<input name=\"ID\" type=\"hidden\" value=\"" . $arrForm['ID'] . "\" />\n"; $varHtml .= "\t\t\t\t" . _CMN_TITLE . ":<br />\n"; $varHtml .= "\t\t\t\t<input name=\"title\" type=\"text\" size=\"25\" maxlength=\"50\" value=\""; $varHtml .= $arrForm['title']; $varHtml .= "\" /><br />\n"; $varHtml .= $arrForm['page']; $varHtml .= "\t\t\t\t" . _CMN_PUBLISH . ":<br />\n"; $varHtml .= "\t\t\t\t<select name=\"publish\">\n"; $varHtml .= "\t\t\t\t\t<option value=\"yes\""; if($arrForm['publish'] == "yes") { $varHtml .= " selected"; } $varHtml .= ">" . _CMN_YES . "</option>\n"; $varHtml .= "\t\t\t\t\t<option value=\"no\""; if($arrForm['publish'] == "no") { $varHtml .= " selected"; } $varHtml .= ">" . _CMN_NO . "</option>\n"; $varHtml .= "\t\t\t\t</select><br />\n"; $varHtml .= "\t\t\t\t<input name=\"submit\" type=\"submit\" value=\"" . $arrForm['submit'] . "\" />\n"; $varHtml .= "\t\t\t</form>\n"; return $varHtml; }
// --- functie bepalen --- \\ if(isset($_POST['submit']) && $_POST['submit'] == _CMN_CREATE || $_POST['submit'] == _CMN_EDIT) { $varComponentResult = processForm(); } else if(fetchType() == "edit" && !fetchID()) { redirect(cmsConfig_siteRoot . 'cbs/?component=menuitem&type=list&msg=' . _MSG_NO_ID); } else if(fetchType() == "new") { $varComponentResult = displayComponentResult(newForm()); } else if(fetchType() == "edit") { $varComponentResult = displayComponentResult(editForm()); } ?> |
kan iemand mij wegwijs maken in een betere methode?
[ Bericht 16% gewijzigd door MuRKie op 24-01-2008 19:52:44 ] |
MuRKie | donderdag 24 januari 2008 @ 23:46 |
Misbruik ik met de volgende toepassing van OOP het OOP principe of "mag" deze methode gewoon?
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 | <?php class MenuItem { protected $ID; protected $title; function __construct() { } function setID($ID) { $this->ID = $ID; } function getID() { return $this->ID; } function setTitle($title) { $this->title = $title; } function getTitle() { return $this->title; } function Display() { $this->setID('7'); $this->setTitle('Test met OOP?'); $html = "ID = " . $this->getID() . "\n"; $html .= "Title = " . $this->getTitle() . "\n"; return $html; }
}
$test = new MenuItem; $varComponentResult = $test->Display(); ?> |
Dit dient puur als voorbeeld..
Maar is OOP zo ook goed te gebruiken? Dus 1 functie (Display()) die al het nodige binnen een class uitvoerd en het eind resultaat terug geeft? Dus dat je niet van buiten de class variabelen invoert en/of wijzigt? In mijn situatie haalt hij namelijk alle waarden uit een database en komt daar geen handeling van de gebruiker aan te pas.. Dat is namelijk de reden waardoor ik twijfel of ik OOP wel gebruik zoals het hoort.. |
Geqxon | vrijdag 25 januari 2008 @ 00:27 |
Ziet er keurig uit! Wat ik alleen persoonlijk als constructor zou doen:
Zodat je bij het aanmaken van het object direct het ID en de Title meegeeft. |
super-muffin | vrijdag 25 januari 2008 @ 00:39 |
ik zou alleen de constructor schrijven als __constructor in plaats van de naam van de class, dat kan alleen nog maar ivm backwardcompability met PHP4.  |
Geqxon | vrijdag 25 januari 2008 @ 00:40 |
Oeps! Dat is geen PHP4 backwardscompatibility (Scrabble?), maar een Java trekje.  |
#ANONIEM | vrijdag 25 januari 2008 @ 08:15 |
quote: Hehe, ik haal die 2 ook wel eens door elkaar ja
Java  |
super-muffin | vrijdag 25 januari 2008 @ 08:31 |
En overigens, het is __construct. (zonder de 'or') op het einde. 
In Java moet ik me nog een keer echt gaan verdiepen. Heb hier wel een boek liggen, maar daar staat weinig nuttigs in. |
Xcalibur | vrijdag 25 januari 2008 @ 08:59 |
quote:Op vrijdag 25 januari 2008 00:27 schreef Geqxon het volgende:Ziet er keurig uit! Wat ik alleen persoonlijk als constructor zou doen: Zodat je bij het aanmaken van het object direct het ID en de Title meegeeft. Dat dus. Het nut van (de mogelijkheid tot) het zetten van een ID ontgaat me ook een beetje, aangezien je deze nu op een vaste waarde zet ín je class. Het is natuurlijk juist de bedoeling dat je dat vanuit je script doet lijkt me? |
super-muffin | vrijdag 25 januari 2008 @ 09:15 |
Ik zie trouwens niet in waarom je $Id en $Title niet public maakt. Die Get en Set methods zijn overbodig omdat je toch geen controle of iets uitvoert. |
Geqxon | vrijdag 25 januari 2008 @ 09:26 |
quote:Op vrijdag 25 januari 2008 09:15 schreef super-muffin het volgende:Ik zie trouwens niet in waarom je $Id en $Title niet public maakt. Die Get en Set methods zijn overbodig omdat je toch geen controle of iets uitvoert. Wat nou als de interne werking van het instellen van de titel opeens anders wordt? Stel je voor dat het instellen van de titel naar een database weggeschreven moet worden. Dan mag je dus overal je source-code aan gaan zitten te passen, in plaats van dat je enkel de setTitle method aan hoeft te passen.  |
MuRKie | vrijdag 25 januari 2008 @ 10:22 |
quote:Op vrijdag 25 januari 2008 08:59 schreef Xcalibur het volgende:[..] Dat dus. Het nut van (de mogelijkheid tot) het zetten van een ID ontgaat me ook een beetje, aangezien je deze nu op een vaste waarde zet ín je class. Het is natuurlijk juist de bedoeling dat je dat vanuit je script doet lijkt me? Ja klopt, maar was ook puur ter illustratie van wat ik bedoelde.. |
MuRKie | vrijdag 25 januari 2008 @ 10:23 |
quote:Op vrijdag 25 januari 2008 09:15 schreef super-muffin het volgende:Ik zie trouwens niet in waarom je $Id en $Title niet public maakt. Die Get en Set methods zijn overbodig omdat je toch geen controle of iets uitvoert. Controle komt er nog (als je bedoelt qua gebruikers invoer) en die set en get functies daarover had ik ooit gelezen dat het beter was om de variabelen te setten via een functie en niet direct?
[ Bericht 5% gewijzigd door MuRKie op 25-01-2008 11:06:00 ] |
MuRKie | vrijdag 25 januari 2008 @ 11:58 |
quote:Op vrijdag 25 januari 2008 00:27 schreef Geqxon het volgende:Ziet er keurig uit! Wat ik alleen persoonlijk als constructor zou doen: [ code verwijderd ] Zodat je bij het aanmaken van het object direct het ID en de Title meegeeft. In de uiteindelijke situatie worden de ID en title uit een database gehaald.. Dit wilde ik dan binnen de class regelen. Of is dat raar? En wanneer de gegevens niet uit een database worden gehaald, dan worden ze ingevoerd via een formulier, welke ik ook in de class wilde verwerken.. vandaar dat ik de constructor leeg had gelaten.. |
Farenji | vrijdag 25 januari 2008 @ 12:59 |
quote:Op vrijdag 25 januari 2008 10:23 schreef MuRKie het volgende:[..] Controle komt er nog (als je bedoelt qua gebruikers invoer) en die set en get functies daarover had ik ooit gelezen dat het beter was om de variabelen te setten via een functie en niet direct? Je hebt gelijk, je kan ze best direct getten/setten zonder aparte functies, maar een voordeel van getters en setters gebruiken is dat je dan ook nog andere dingen kan doen - zoals bijv een property "isModified" oid op true zetten als je een veld aanpast. Dat kun je dan weer op andere plekken gebruiken, zoals in een save functie: als er niks gewijzigd is hoef je ook niet op te slaan. Verder is het ook makkeliijk mocht je ooit nog besluiten om de structuur van je object (ingrijpend) aan te passen; met getters en setters hoef je dan alleen die functies aan te passen; als je overal objectvariabelen direct benadert moet je het overal in je code gaan aanpassen. |
Farenji | vrijdag 25 januari 2008 @ 13:03 |
quote:Op vrijdag 25 januari 2008 11:58 schreef MuRKie het volgende:[..] In de uiteindelijke situatie worden de ID en title uit een database gehaald.. Dit wilde ik dan binnen de class regelen. Of is dat raar? Ja, eigenlijk wel. Lijkt me dat je op basis van het ID het record in de database opzoekt. Dus die kan beter wel gezet worden in de constructor. |
MuRKie | vrijdag 25 januari 2008 @ 13:38 |
quote:Op vrijdag 25 januari 2008 13:03 schreef Farenji het volgende:[..] Ja, eigenlijk wel. Lijkt me dat je op basis van het ID het record in de database opzoekt. Dus die kan beter wel gezet worden in de constructor. Ja dat is waar, dom van me.. De ID wordt natuurlijk niet uit de DB gehaald want aan de hand van de ID haal je het record juist op.. ID kan dus wel in de __construct want die wordt via de $_GET variabele bepaald.. |
kamustra | zaterdag 26 januari 2008 @ 21:38 |
Is het mogelijk om bij het includen van bestand (include_once etc..) een $_GET parameter mee te geven? Edit: laat maar, nee dus
[ Bericht 18% gewijzigd door kamustra op 26-01-2008 21:51:28 ] |
SuperRembo | zaterdag 26 januari 2008 @ 23:55 |
quote:Op zaterdag 26 januari 2008 21:38 schreef kamustra het volgende:Is het mogelijk om bij het includen van bestand (include_once etc..) een $_GET parameter mee te geven?Edit: laat maar, nee dus Afhankelijk van je php instellingen mag je ook een url gebruiken als include. Daar zou je denk ik wel een get parameter aan mee kunnen geven. Maar las het kan dan is het zeker geen manier die ik zou aanraden. |
ralfie | zondag 27 januari 2008 @ 00:31 |
include het bestand in een functie waarin je de get variabele set:
1 2 3 4 5 6 7 | <?php function includeX($file, $_GET) { include($file); }
includeX("test/somescript.php", array('id'=> 2, 'page' => 'test' )) ; ?> |
oid
edit: moet je die supervariabelen natuurlijk wel eerst unsetten, anders heeft dit nog geen nut. 
[ Bericht 7% gewijzigd door ralfie op 27-01-2008 00:36:16 ] |
Farenji | zondag 27 januari 2008 @ 04:37 |
quote:Op zaterdag 26 januari 2008 21:38 schreef kamustra het volgende:Is het mogelijk om bij het includen van bestand (include_once etc..) een $_GET parameter mee te geven?Edit: laat maar, nee dus Leg eens uit waarom je dat zou willen? |
Flaccid | zondag 27 januari 2008 @ 10:32 |
quote: Om pagina's te includen? index.php?page=bestel&product=stoel ? |
ralfie | zondag 27 januari 2008 @ 10:37 |
quote: get en post etc variabelen worden toch al doorgegeven aan de geincludeerde scripts? |
Farenji | zondag 27 januari 2008 @ 13:58 |
quote: De scope van variabelen loopt gewoon door, ook in geinclude bestanden. Bijv:
foo.php:
1 2 3 4 5 | <?php var $poep = "vies";
include("bar.php"); ?> |
bar.php:
Dit geeft als output gewoon "vies". Zelfde werkt het voor $_GET en $_POST variabelen. |
SuperRembo | zondag 27 januari 2008 @ 15:30 |
quote: Behalve als je een bestand include via een url (Wat af te raden is) |
MuRKie | zondag 27 januari 2008 @ 16:39 |
ik ben bezig met een website voor de 50ste verjaardag van mijn schoonmoeder. Ik include daarin een pagina waarin ik een class declareer maar ik krijg de melding
1 | Fatal error: Cannot redeclare class GuestBook in C:\xampp\htdocs\maria\includes\guestbook.php on line 10 |
(hieronder dan regel 7 maar in Dreamweaver staat hij gewoon op 10) Dat houdt toch in dat hij al eerder gedeclareerd zou moeten zijn want dat is namelijk niet het geval..
Hier de code hoe ik het bestand include:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?php // --- Pagina retourneren --- \\ function displayPage() { switch (fetchPage()) { case fetchPage(): require('includes/' . fetchPage() . '.php'); break; default: require('includes/content.php'); } return $result; } ?> |
en hier de code met de class:
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 | <?php // no direct access defined('_ALLOW_ACCESS') or die('Restricted access');
class GuestBook { protected $ID; protected $message; protected $name; protected $fullItem = array(); function __construct() { } function fetchMessages() { $query = "SELECT ID, message, name "; $query .= "FROM guestbook"; $run = mysql_query($query) or die('Bericht is niet opgehaald'); while($result = mysql_fetch_assoc($run)) { $this->storeMessage($result['ID'], $result['message'], $result['name']); } } function storeMessage($ID, $message, $name) { $html = "<div>#" . $ID . " - geschreven door: " . $name; $html .= "<br />"; $html .= $message; $html .= "<br />"; $html .= "<br />"; $this->fullItem[] = $html; } function displayGuestBook() { $html = ""; foreach($this->fullItem as $item) { $html .= $item; } return $html; } }
$guestBook = new GuestBook; $guestBook->fetchMessages(); $result = $guestBook->displayGuestBook(); ?> |
Iemand enig idee hoe dit komen kan? |
Geqxon | zondag 27 januari 2008 @ 17:12 |
Door mijn HTML-output van tabs en newlines te strippen kan ik mijn sourcode van 9,69 naar 8,21 kilobyte verkleinen. Maar hoe zwaar is het voor mijn server als ik via str_replace alle tabs en newlines strip? Ik neem aan dat hij in een for-lus alle chars af gaat, op zoek naar een \t, en deze vervangt voor een blanke char? |
Dreammaster | zondag 27 januari 2008 @ 17:15 |
de class wordt waarschijnlijk in de functie fetchPage() gedeclareerd. deze functie roep je al aan bij de switch en dan bij case weer... ik snap trouwens ook niet waarom je een switch statement gebruikt is de onderstaande code niet veel simpeler? Je switch statement zal trouwens ook nooit de content.php requiren.
1 2 3 4 5 6 7 8 | <?php $page = fetchPage(): if (!empty($page)) { require('includes/' . $page . '.php'); } else { require('includes/content.php'); } ?> |
|
MuRKie | zondag 27 januari 2008 @ 17:19 |
quote:Op zondag 27 januari 2008 17:15 schreef Dreammaster het volgende:de class wordt waarschijnlijk in de functie fetchPage() gedeclareerd. deze functie roep je al aan bij de switch en dan bij case weer... ik snap trouwens ook niet waarom je een switch statement gebruikt is de onderstaande code niet veel simpeler? Je switch statement zal trouwens ook nooit de content.php requiren. [ code verwijderd ] Ja had ik net ook naar gekeken maar dat haalt opzich niet veel uit.. FetchPage() geeft altijd wat terug.. als $_GET['page'] niet gedeclareerd is geeft hij "content" terug als page.. Dus het resultaat blijft hetzelfde.. Maar scheelt idd wel paar regels.. Dan kan ik het ook nog alsvolgt doen:
1 2 3 | <?php require('includes/' . fetchPage() . '.php'; ?> |
volgens mij das nog veel korter ook 
Enne zelfde methode gebruik ik ook in een CMS waar ik mee bezig ben en daar werkt het wel gewoon prima.. |
Dreammaster | zondag 27 januari 2008 @ 17:22 |
als de functie altijd iets returned dan kan dat inderdaad... maar is je fatal-error hiermee opgelost? |
MuRKie | zondag 27 januari 2008 @ 17:31 |
quote:Op zondag 27 januari 2008 17:22 schreef Dreammaster het volgende:als de functie altijd iets returned dan kan dat inderdaad... maar is je fatal-error hiermee opgelost? Nee maar heb inmiddels al wel gevonden wat dat was.. Er stond in de index.php nog het volgende:
terwijl ik die al niet meer gebruikte.. Dus daar werd hij al eerder aangeroepen dan dat eigenlijk moest.. Heb dus beide nu aangepast..
Ik ben nu alsvolgt bezig met het gastenboek. Ik wilde alleen van jullie weten of dit correct OOP gebruik is, aangezien ik nog 0 ervaring met OOP heb.
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 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 | <?php // no direct access defined('_ALLOW_ACCESS') or die('Restricted access');
class GuestBook { protected $ID; protected $name; protected $message; protected $theDate; protected $error; protected $fullItem = array(); function __construct() { $this->setError(false); } function setID($ID) { $this->ID = mysql_real_escape_string(htmlentities($ID)); } function fetchID() { return $this->ID; } function setName($name, $error) { $this->name['value'] = mysql_real_escape_string(htmlentities($name)); $this->name['error'] = $error; } function fetchName() { return $this->name['value']; } function fetchNameError() { return $this->name['error']; } function setMessage($message, $error) { $this->message['value'] = mysql_real_escape_string(htmlentities($message)); $this->message['error'] = $error; } function fetchMessage() { return $this->message['value']; } function fetchMessageError() { return $this->message['error']; } function setDate($theDate) { $this->theDate = $theDate; } function fetchDate() { return $this->theDate; } function setError($error) { $this->error = $error; } function fetchError() { return $this->error; } function listMessages() { $query = "SELECT ID, message, name, date "; $query .= "FROM guestbook "; $query .= "ORDER BY `ID` ASC "; //$query .= "LIMIT 0 , 30"; $run = mysql_query($query) or die('Berichten zijn niet opgehaald!<br /><i>' . mysql_error() . '</i>'); $numb = 1; while($result = mysql_fetch_assoc($run)) { $this->storeMessage($numb, $result['message'], $result['name'], $result['date']); $numb++; } } function storeMessage($ID, $message, $name, $date) { $html = "<div>#" . $ID . " - geschreven door: " . $name . " op " . $date; $html .= "<br />"; $html .= $message; $html .= "<br />"; $html .= "<br />"; $this->fullItem[] = $html; } function processForm() { $this->setDate(date('l, d F Y - H:i:s')); if($_POST['name'] != "") { $this->setName($_POST['name'], ''); } else { $this->setName($_POST['name'], 'Vergeten je naam in te vullen!'); $this->setError(true); } if($_POST['message'] != "") { $this->setMessage($_POST['message'], ''); } else { $this->setMessage($_POST['message'], 'Vergeten een berichtje in te vullen!'); $this->setError(true); } if($this->fetchError() == false) { $query = "INSERT INTO guestbook "; $query .= "SET message = '" . $this->fetchMessage() . "', name = '" . $this->fetchName() . "', date = '" . $this->fetchDate() . "'"; $run = mysql_query($query) or die('Invoeren niet gelukt!<br /><i>' . mysql_error() . '</i>'); header('Location: ' . cmsConfig_siteRoot . 'page/guestbook/view'); } } function displayWrite() { $html .= "<form action=\"" . cmsConfig_siteRoot . "page/guestbook/add\" method=\"post\" name=\"sendMessage\">"; $html .= "<table>\n"; $html .= "<tr>\n"; $html .= "<td>Naam: <input name=\"name\" type=\"text\" size=\"10\" value=\"" . $this->fetchName() . "\" maxlength=\"50\" />" . $this->fetchNameError() . "</td>\n"; $html .= "</tr>"; $html .= "<tr>"; $html .= "<td>Bericht: <textarea name=\"message\" cols=\"20\" rows=\"5\">" . $this->fetchMessage() . "</textarea>" . $this->fetchMessageError() . "</td>"; $html .= "</tr>"; $html .= "<tr>"; $html .= "<td><input name=\"submit\" type=\"submit\" value=\"Versturen!\"></td>"; $html .= "</tr>"; $html .= "</table>"; $html .= "</form>"; return $html; } function displayGuestBook() { $this->listMessages(); $html = ""; foreach($this->fullItem as $item) { $html .= $item; } $html .= $this->displayWrite(); return $html; } }
$guestBook = new GuestBook();
if(fetchType() == "add") { if(isset($_POST['submit'])) { $guestBook->processForm(); } }
$result = $guestBook->displayGuestBook(); ?> |
[ Bericht 92% gewijzigd door MuRKie op 27-01-2008 18:27:50 ] |
Flaccid | zondag 27 januari 2008 @ 19:36 |
ik code vaag
[ Bericht 90% gewijzigd door Flaccid op 27-01-2008 20:26:33 ] |
MuRKie | zondag 27 januari 2008 @ 21:20 |
quote: ? |
Thomass | zondag 27 januari 2008 @ 21:49 |
quote:Op zondag 27 januari 2008 17:31 schreef MuRKie het volgende:[..] Nee maar heb inmiddels al wel gevonden wat dat was.. Er stond in de index.php nog het volgende: [ code verwijderd ] terwijl ik die al niet meer gebruikte.. Dus daar werd hij al eerder aangeroepen dan dat eigenlijk moest.. Heb dus beide nu aangepast.. Ik ben nu alsvolgt bezig met het gastenboek. Ik wilde alleen van jullie weten of dit correct OOP gebruik is, aangezien ik nog 0 ervaring met OOP heb. [ code verwijderd ] Persoonlijk vind ik dingen als dit
1 2 3 4 5 6 7 8 9 10 11 | <?php function setDate($theDate) { $this->theDate = $theDate; } function fetchDate() { return $this->theDate; } ?> |
vrij nutteloos, als je de variabelenaam gewoon een heldere naam geeft dan zijn die get/set methoden echt niet nodig |
MuRKie | zondag 27 januari 2008 @ 22:58 |
quote:Op zondag 27 januari 2008 21:49 schreef Thomass het volgende:[..] Persoonlijk vind ik dingen als dit [ code verwijderd ] vrij nutteloos, als je de variabelenaam gewoon een heldere naam geeft dan zijn die get/set methoden echt niet nodig alleen nutteloze extra regels code..? dat vond ik ook steeds meer.. ik had dit ooit ergens gezien en las dat het zo het beste was. ikzelf ben steeds meer gaan vinden dat het overbodige code is..
maarja ik had gelezen dat het goed zou zijn op deze manier ofzo  |
Xcalibur | zondag 27 januari 2008 @ 23:02 |
ik vind getters en setters op zich wel netter, maar vooral in de code waarin je ze gebruikt 
Het gebruik van HTML in je PHP (en dan nog in een class ook) vind ik ranzig trouwens!  |
MuRKie | zondag 27 januari 2008 @ 23:10 |
quote:Op zondag 27 januari 2008 23:02 schreef Xcalibur het volgende:ik vind getters en setters op zich wel netter, maar vooral in de code waarin je ze gebruikt  Het gebruik van HTML in je PHP (en dan nog in een class ook) vind ik ranzig trouwens!  hoe bedoel je dat? zoals ik dat heb gedaan, in strings?
hoe doe jij dat normaal dan? ik leer graag nieuwe dingen.. |
Xcalibur | zondag 27 januari 2008 @ 23:15 |
de PHP in de phpbestanden, de HTML in de template bestanden, strict gescheiden dus  En alle opmaak in CSS bestanden natuurlijk.
Ik gebruik zelf Smarty als template engine, werkt erg prettig vind ik. Er zijn een heleboel alternatieven in omloop, inclusief het nodige zelfbouw wat ik hier voorbij zie komen ...
Het punt van html in je PHP is dat je al je code na kan gaan lopen als je je lay-out wilt veranderen. En eigenlijk wil je dan alleen je CSS aanpassen, want daar is het voor  |
Xcalibur | zondag 27 januari 2008 @ 23:18 |
trouwens, het gebruik van de strings zoals jij doet is wat mij betreft niks mis mee, hoewel het wel wat efficienter kan:
1 2 3 | $html = "hier de tekst " .= "hier de rest " .= "hier nog meer "; |
Dan hoef je niet steeds de variabele-naam te herhalen, vind ik wel zo overzichtelijk  Let op de puntkomma die alleen aan het einde staat! |
CraZaay | zondag 27 januari 2008 @ 23:18 |
quote:Op zondag 27 januari 2008 23:15 schreef Xcalibur het volgende:Het punt van html in je PHP is dat je al je code na kan gaan lopen als je je lay-out wilt veranderen. En eigenlijk wil je dan alleen je CSS aanpassen, want daar is het voor  Daarmee veeg je je argument om geen HTML in je PHP te stoppen aardig van tefel Als je je lay-out aan wilt passen doe je dat door de CSS aan te passen, en maakt het dus niet uit of je HTML in een template staat of tussen de PHP 
Ik ben het overigens met je eens dat je het wél gescheiden zou moeten houden (ik roep maar weer eens "MVC" ). |
CraZaay | zondag 27 januari 2008 @ 23:19 |
quote:Op zondag 27 januari 2008 23:18 schreef Xcalibur het volgende:trouwens, het gebruik van de strings zoals jij doet is wat mij betreft niks mis mee, hoewel het wel wat efficienter kan: [ code verwijderd ] Dan hoef je niet steeds de variabele-naam te herhalen, vind ik wel zo overzichtelijk  Let op de puntkomma die alleen aan het einde staat! Werkt dat? De punt (dus niet ".=") is immers genoeg? |
Xcalibur | zondag 27 januari 2008 @ 23:20 |
Daar heb je wel een punt 
Maar als er HTML in de PHP staat, staat er vaak ook inline CSS in de HTML, en dan wordt het echt een bende....  |
MuRKie | zondag 27 januari 2008 @ 23:21 |
quote:Op zondag 27 januari 2008 23:15 schreef Xcalibur het volgende:de PHP in de phpbestanden, de HTML in de template bestanden, strict gescheiden dus  En alle opmaak in CSS bestanden natuurlijk. Ik gebruik zelf Smarty als template engine, werkt erg prettig vind ik. Er zijn een heleboel alternatieven in omloop, inclusief het nodige zelfbouw wat ik hier voorbij zie komen  ... Het punt van html in je PHP is dat je al je code na kan gaan lopen als je je lay-out wilt veranderen. En eigenlijk wil je dan alleen je CSS aanpassen, want daar is het voor  maar je zal toch altijd wat html in je php houden? ik heb nu meer html gebruikt dan ik uiteindelijk nodig heb maar das puur voor tijdens het ontwikkelen.. uiteindelijk bepaal i alle opmaak in een template en een css. maar in de php zal je dan toch altijd nog je menu in een ul moeten stoppen of je tekst in een div? of zie ik dat nu verkeerd?
[edit] ik kan trouwens niet zien hoeveel posts er geplaatst zijn, ik zit namelijk op mijn pda.. dus kan dan ook geen nieuw vervolg topic openen.. [/edit] |
Xcalibur | zondag 27 januari 2008 @ 23:21 |
quote: oh, ik doe het altijd zo  alleen een punt zou ook wel moeten werken inderdaad, ik vind zelf de = erbij wel prettig, gewoon visueel |
Xcalibur | zondag 27 januari 2008 @ 23:23 |
quote:Op zondag 27 januari 2008 23:21 schreef MuRKie het volgende:maar in de php zal je dan toch altijd nog je menu in een ul moeten stoppen of je tekst in een div? of zie ik dat nu verkeerd? Neehoor, dat hoeft niet. Je kunt al je informatie in variabelen / arrays stoppen, en die in de template weer uitlezen. In de template ontkom je natuurlijk niet aan wat if's en loopjes, maar veel spannenders is daar verder niet nodig  |
Xcalibur | zondag 27 januari 2008 @ 23:24 |
Ik ga naar bed trouwens, morgen weer verder  |
MuRKie | zondag 27 januari 2008 @ 23:30 |
ik gebruik geen inline css in de html die ik in de php stop.. alle opmaak regel ik uiteindelijk vanuit de css. misschien ligt het aan de mate van ervaring dat ik html enp hp nog niet 100% gescheiden hou. die tip over die strings is trouwens handig, thx! |
CraZaay | zondag 27 januari 2008 @ 23:31 |
quote:Op zondag 27 januari 2008 23:21 schreef Xcalibur het volgende:[..] oh, ik doe het altijd zo  alleen een punt zou ook wel moeten werken inderdaad, ik vind zelf de = erbij wel prettig, gewoon visueel Ik wist niet eens dat het valide syntax was op deze manier Dacht altijd dat je ".=" alleen mocht gebruiken met een variabele ervoor. |
MuRKie | zondag 27 januari 2008 @ 23:40 |
quote:Op zondag 27 januari 2008 23:31 schreef CraZaay het volgende:[..] Ik wist niet eens dat het valide syntax was op deze manier  Dacht altijd dat je ".=" alleen mocht gebruiken met een variabele ervoor. ik wist dat inderdaad ook niet, variabelen plak ik normaal ook aan elkaar met . en niet met .= wanneer ik ze op 1 regel plaats, maar wanneer ik het op meerdere regels schrijf dan doe ik het weer met .= en de variabelenaam ervoor.. maar dit gaat weer code schelen  |
MuRKie | maandag 28 januari 2008 @ 11:50 |
Ik heb er nu echt een zooitje van gemaakt, maar het werkt iig.. Nu maar op gaan schonen enzo :)
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 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 | <?php // no direct access defined('_ALLOW_ACCESS') or die('Restricted access');
class GuestBook { var $ID; var $name; var $message; var $theDate; var $error; var $fullItem = array(); var $currentPage; var $limit; var $totalRows; var $totalPages; var $number; var $first; var $last; function __construct() { $this->error = false; $this->limit = 5; } function listMessages() { if(isset($_GET['itemID'])) { $this->currentPage = $_GET['itemID']; } else { $this->currentPage = 1; } $query = "SELECT ID, message, name, date " . "FROM guestbook " . "ORDER BY `ID` DESC"; $subQuery = " LIMIT " . (($this->currentPage - 1) * $this->limit) . " , " . $this->limit . ""; $fullQuery = $query . $subQuery; $run = mysql_query($fullQuery) or die('Berichten zijn niet opgehaald!<br /><i>' . mysql_error() . '</i>'); $this->totalRows = mysql_num_rows(mysql_query($query)); $this->totalPages = ceil($this->totalRows / $this->limit); if($this->currentPage != 1) { $this->number = (($this->currentPage - 1) * $this->limit); $this->number = $this->number+1; } else { $this->number = 1; } //$this->number = $this->number+1; while($result = mysql_fetch_assoc($run)) { $this->storeMessage($this->number, $result['message'], $result['name'], $result['date']); $this->number++; } }
// the actual function function pageNav($cpage,$totalrows,$totalpages) { // configuration $split_begin = "[ "; $split = " ] [ "; $split_end = " ]"; // begin-, split- , end-signs $url = cmsConfig_siteRoot . "page/guestbook/view"; // change, always end $url with a '?' or '&', url will be followed by cpage=<pagenumber> // DON'T CHANGE ANYTHING ELSE BELOW THIS LINE!!! // previous generator if($totalpages != 1) { $prevPage = $cpage - 1; if($prevPage < 1) { $prev = "<span ".$n_a.">««</span>".$split."<span ".$n_a.">« previous</span>".$split; } else { $prev = "<a href='".$url."/1' title='begin'>««</a>".$split."<a href='".$url."/".$prevPage."' title='previous page'>« previous</a>".$split; } } $start = 1; // page numbers generator $pages = ""; // preventing an error notice! for($i = 0; $i < $totalpages; $i++) { if($start != $cpage) { $pages .= "<a href='".$url."/".$start."'>".$start."</a>"; } else { $pages .= "<b>".$start."</b>"; } if($i < ($totalpages - 1)) { $pages .= $split; } else { break; } $start++; } // next generator if($totalpages != 1) { $nextPage = $cpage + 1; if($nextPage > $totalpages) { $next = $split . "<span>next »</span>".$split."<span>»»</span>"; } else { $next = $split . "<a href='" . $url . "/" . $nextPage . "' title='next page'>next »</a>" . $split . "<a href='" . $url . "/" . $totalpages . "' title='end'>»»</a>"; } } return $split_begin . $prev . $pages . $next . $split_end; }
function storeMessage($ID, $message, $name, $date) { $html = "<div>#" . $ID . " - geschreven door: " . $name . " op " . $date . "<br />" . $message . "<br />" . "<br />"; $this->fullItem[] = $html; } function processForm() { $this->theDate = date('l, d F Y - H:i:s'); if($_POST['name'] != "") { $this->name['value'] = mysql_real_escape_string(htmlentities($_POST['name'])); $this->name['error'] = ''; } else { $this->name['value'] = mysql_real_escape_string(htmlentities($_POST['name'])); $this->name['error'] = 'Vergeten je naam in te vullen!'; $this->error = true; } if($_POST['message'] != "") { $this->message['value'] = mysql_real_escape_string(htmlentities($_POST['message'])); $this->message['error'] = ''; } else { $this->message['value'] = mysql_real_escape_string(htmlentities($_POST['message'])); $this->message['error'] = 'Vergeten een berichtje in te vullen!'; $this->error = true; } if($this->error == false) { $query = "INSERT INTO guestbook " . "SET message = '" . $this->message['value'] . "', name = '" . $this->name['value'] . "', date = '" . $this->theDate . "'"; $run = mysql_query($query) or die('Invoeren niet gelukt!<br /><i>' . mysql_error() . '</i>'); header('Location: ' . cmsConfig_siteRoot . 'page/guestbook/view/'); } } function displayWrite() { $html = "<form action=\"" . cmsConfig_siteRoot . "page/guestbook/add\" method=\"post\" name=\"sendMessage\">" . "<table>\n" . "<tr>\n" . "<td>Naam: <input name=\"name\" type=\"text\" size=\"10\" value=\"" . $this->name['value'] . "\" maxlength=\"50\" />" . $this->name['error'] . "</td>\n" . "</tr>" . "<tr>" . "<td>Bericht: <textarea name=\"message\" cols=\"20\" rows=\"5\">" . $this->message['value'] . "</textarea>" . $this->message['error'] . "</td>" . "</tr>" . "<tr>" . "<td><input name=\"submit\" type=\"submit\" value=\"Versturen!\"></td>" . "</tr>" . "</table>" . "</form>"; return $html; } function displayGuestBook() { $this->listMessages(); $html = ""; foreach($this->fullItem as $item) { $html .= $item; } $html .= $this->pageNav($this->currentPage, $this->totalRows, $this->totalPages); $html .= $this->displayWrite(); return $html; } }
$guestBook = new GuestBook();
if(fetchType() == "add") { if(isset($_POST['submit'])) { $guestBook->processForm(); } }
$result = $guestBook->displayGuestBook(); ?> |
|
super-muffin | maandag 28 januari 2008 @ 19:47 |
Dit is niet heel erg OOP. Meer losse functies verzamelen in een klasse. Je hebt nu de verwerking en presentatie in de zelfde klasse zitten wat niet hoort imho. |
Chandler | maandag 28 januari 2008 @ 19:52 |
Ik heb een vraag over mijn database structuur van mijn statistieken script
de database
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 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 | -- phpMyAdmin SQL Dump -- version 2.6.4-pl1 -- http://www.phpmyadmin.net -- -- Host: localhost -- Generatie Tijd: 28 Jan 2008 om 19:51 -- Server versie: 5.0.45 -- PHP Versie: 4.2.3 -- -- Database: `stat` --
-- --------------------------------------------------------
-- -- Tabel structuur voor tabel `stat` --
CREATE TABLE `stat` ( `id` int(4) NOT NULL auto_increment, `name` varchar(32) NOT NULL default '', `user_id` int(11) NOT NULL default '0', `title` varchar(75) NOT NULL default '', `referer` varchar(75) NOT NULL default '', `active` tinyint(1) NOT NULL default '0', PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=latin1;
-- --------------------------------------------------------
-- -- Tabel structuur voor tabel `stat_user` --
CREATE TABLE `stat_user` ( `id` int(11) NOT NULL auto_increment, `username` varchar(32) NOT NULL default '', `password` varchar(64) NOT NULL default '', `user_level` tinyint(1) NOT NULL default '0', `last_login` datetime NOT NULL default '0000-00-00 00:00:00', KEY `id` (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
-- --------------------------------------------------------
-- -- Tabel structuur voor tabel `statcounts` --
CREATE TABLE `statcounts` ( `id` int(4) NOT NULL auto_increment, `sid` int(4) NOT NULL default '0', `pid` int(4) NOT NULL default '0', `year` varchar(4) NOT NULL default '', `value` varchar(75) NOT NULL default '', `count` bigint(20) NOT NULL default '0', PRIMARY KEY (`id`), KEY `sid` (`sid`,`pid`,`year`) ) ENGINE=MyISAM AUTO_INCREMENT=28648 DEFAULT CHARSET=latin1;
-- --------------------------------------------------------
-- -- Tabel structuur voor tabel `statdate` --
CREATE TABLE `statdate` ( `id` int(4) NOT NULL auto_increment, `sid` int(4) NOT NULL default '0', `day` char(2) NOT NULL default '', `weekday` char(2) NOT NULL default '', `week` char(2) NOT NULL default '', `month` char(2) NOT NULL default '', `year` varchar(4) NOT NULL default '', `count` bigint(20) NOT NULL default '0', PRIMARY KEY (`id`), KEY `sid` (`sid`,`month`,`year`) ) ENGINE=MyISAM AUTO_INCREMENT=634 DEFAULT CHARSET=latin1;
-- --------------------------------------------------------
-- -- Tabel structuur voor tabel `statip` --
CREATE TABLE `statip` ( `id` int(4) NOT NULL auto_increment, `sid` int(4) NOT NULL default '0', `value` varchar(75) NOT NULL default '', `lastdate` varchar(10) default NULL, `count` bigint(20) NOT NULL default '0', PRIMARY KEY (`id`), KEY `value` (`value`) ) ENGINE=MyISAM AUTO_INCREMENT=27411 DEFAULT CHARSET=latin1;
-- --------------------------------------------------------
-- -- Tabel structuur voor tabel `statkeywords` --
CREATE TABLE `statkeywords` ( `sid` tinyint(4) NOT NULL default '0', `search_id` int(11) NOT NULL default '0', `year` varchar(4) NOT NULL default '', `lastupdate` datetime NOT NULL default '0000-00-00 00:00:00', `keyword` varchar(25) NOT NULL default '', `count` bigint(20) NOT NULL default '0', KEY `sid` (`sid`,`search_id`,`year`,`keyword`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
-- --------------------------------------------------------
-- -- Tabel structuur voor tabel `statlast` --
CREATE TABLE `statlast` ( `id` bigint(20) NOT NULL auto_increment, `sid` tinyint(4) NOT NULL default '0', `lasttime` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, `date` datetime NOT NULL default '0000-00-00 00:00:00', `ip` varchar(15) NOT NULL default '', `host` varchar(255) NOT NULL default '', `referer` varchar(255) NOT NULL default '', `os` varchar(75) NOT NULL default '', `browser` varchar(75) NOT NULL default '', `country` varchar(75) NOT NULL default '', `color` varchar(75) NOT NULL default '', `resolution` varchar(75) NOT NULL default '', KEY `id` (`id`,`sid`) ) ENGINE=MyISAM AUTO_INCREMENT=21 DEFAULT CHARSET=latin1;
-- --------------------------------------------------------
-- -- Tabel structuur voor tabel `statreferer` --
CREATE TABLE `statreferer` ( `sid` int(4) NOT NULL default '0', `lastvisit` datetime NOT NULL default '0000-00-00 00:00:00', `value` varchar(255) NOT NULL default '', `count` bigint(20) NOT NULL default '0', `type` enum('I','E') NOT NULL default 'I', KEY `sid` (`sid`,`value`,`type`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
-- --------------------------------------------------------
-- -- Tabel structuur voor tabel `statsearchengine` --
CREATE TABLE `statsearchengine` ( `id` int(11) NOT NULL auto_increment, `year` varchar(4) NOT NULL default '', `title` varchar(64) NOT NULL default '', KEY `id` (`id`), KEY `year` (`year`,`title`) ) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=latin1; |
Nu gebruik ik het tabel statcounts voor algemene gegevens zoals dag, maand, jaar, IP, hostname, kleuren, brouwser, javascript, plugins, etc etc etc maar is dit wel een juiste manier? en verder zou ik graag willen weten of de indexes etc goed zijn :) iemand die mij hier info over kan geven? :D |
MuRKie | maandag 28 januari 2008 @ 19:56 |
quote:Op maandag 28 januari 2008 19:47 schreef super-muffin het volgende:Dit is niet heel erg OOP. Meer losse functies verzamelen in een klasse.  Je hebt nu de verwerking en presentatie in de zelfde klasse zitten wat niet hoort imho. Dat gevoel had ik al.. Ik was in ieder geval blij dat het werkte  Heb inmiddels de pagina navigatie in een aparte class gestopt nu en mijn code wat opgeschoont enzo.. Ben al blij dat ik zover ben gekomen, heb al redelijk wat dingen bijgeleerd.. Nu kijken of ik het nog een stap verder kan doen.. Is in dit geval niet heel erg noodzakelijk aangezien het een website wordt voor voor, tijdens en na de 50ste verjaardag van mijn schoonmoeder.. daarna heb ik de site niet meer nodig.. zolang hij het die tijd maar ff uithoudt..
Maar hoe dan ook kan ik met het maken van deze site mooi oefenen..
[ Bericht 0% gewijzigd door MuRKie op 28-01-2008 20:06:05 ] |
schwa78 | maandag 28 januari 2008 @ 20:23 |
Ik zou graag willen leren hoe je flash widgets kunt maken die gebruik maken van informatie die in een MySQL database opgeslagen zijn en waarvan de invoer dmv PHP verwerkt wordt.
Kan iemand mij een goed flash-boek aanbevelen dat zich vooral hierop richt?
[ Bericht 0% gewijzigd door schwa78 op 28-01-2008 20:29:31 ] |
Light | maandag 28 januari 2008 @ 20:29 |
quote:Op maandag 28 januari 2008 19:52 schreef Chandler het volgende:Ik heb een vraag over mijn database structuur van mijn statistieken script -- PHP Versie: 4.2.3 Da's wel een beetje een achterhaalde versie... |
Likkende_Lassie | maandag 28 januari 2008 @ 20:30 |
Ik heb een tabel met favorieten van gebruikers Een favoriet product wordt herkend door middel van de productID. De query ziet er dus als volgt uit :
1 | "SELECT productID AS id FROM shop_favorites WHERE UID = '".$_SESSION['UID']."'"; |
in de producten tabel staan dus ook de namen van de producten, maar deze wil ik ASCsorteren. De tabelnaam is shop_products ...
Hoe doe ik dat met een JOIN ? |
Arjan321 | maandag 28 januari 2008 @ 20:52 |
1 2 3 4 5 | SELECT shop_favorites.productID as `id`, shop_products.name FROM `shop_favorites` INNER JOIN `shop_products` ON `id` = shop_products.productID WHERE shop_favorites.UID = '.$_SESSION['uid'].' ORDER BY shop_products.name |
aangenomen dat je naam kolom `name` heet en productID in beide tabellen het zelfde heten..
[ Bericht 1% gewijzigd door Arjan321 op 28-01-2008 21:02:17 ] |
Chandler | maandag 28 januari 2008 @ 20:57 |
1 tip voordat je gaat werken met meerdere tabellen!
- Geef alle namen in een Select indien je met meerdere tabellen gaat werken ook de naam van de tabel (over noemer daar van) mee oftewel shop_favorites.productID 
een voorbeeld
1 2 3 4 5 6 7 8 9 10 11 12 | SELECT shop_favorites.productID, shop_products.id, shop_products.name, shop_products.group, shop_products.title, shop_products.short_desc, shop_products.etcetcetc, FROM shop_favorites LEFT JOIN shop_products ON shop_products.id = shop_favorites.productID WHERE shop_favorites.userID = '" . $_SESSION['UID'] . " GROUP BY shop_favorites.userID ORDER BY shop_favorites.date_created ASC |
Het is een voorbeeld waarin ik een tabel JOIN naarna groepeer je bij een ID veld in een van de 2 tabellen en sorteer je de uitkomst middels ook een van de 2 tabellen en daar een veld van 
naja ik hoop dat je het snapt ik iig wel maar goed...
succes!.
[ Bericht 14% gewijzigd door Chandler op 28-01-2008 20:58:45 (-edit- extra ASC en slimies aanzetten! =P-) ] |
JortK | maandag 28 januari 2008 @ 22:03 |
quote:Op maandag 28 januari 2008 20:57 schreef Chandler het volgende:1 tip voordat je gaat werken met meerdere tabellen! - Geef alle namen in een Select indien je met meerdere tabellen gaat werken ook de naam van de tabel (over noemer daar van) mee oftewel shop_favorites.productID ;) een voorbeeld [ code verwijderd ] Het is een voorbeeld waarin ik een tabel JOIN naarna groepeer je bij een ID veld in een van de 2 tabellen en sorteer je de uitkomst middels ook een van de 2 tabellen en daar een veld van :) naja ik hoop dat je het snapt ;) ik iig wel :P maar goed... succes!. Waarom de complete tabel naam?
Aliassen is toch een veel beter idee?
Like:
1 2 3 | <?php SELECT a.org, b.contact FROM org a, contact b ?> |
? |
Likkende_Lassie | maandag 28 januari 2008 @ 22:27 |
quote:Op maandag 28 januari 2008 20:57 schreef Chandler het volgende:1 tip voordat je gaat werken met meerdere tabellen! - Geef alle namen in een Select indien je met meerdere tabellen gaat werken ook de naam van de tabel (over noemer daar van) mee oftewel shop_favorites.productID ;) een voorbeeld [ code verwijderd ] Het is een voorbeeld waarin ik een tabel JOIN naarna groepeer je bij een ID veld in een van de 2 tabellen en sorteer je de uitkomst middels ook een van de 2 tabellen en daar een veld van :) naja ik hoop dat je het snapt ;) ik iig wel :P maar goed... succes!. Bedankt! Het is gelukt, het is geworden:
1 2 3 | SELECT shop_items.id FROM shop_favorites LEFT JOIN shop_items ON shop_items.id = shop_favorites.productID WHERE shop_favorites.UID = '" . $_SESSION['UID'] . "' ORDER BY shop_items.name ASC |
|
JaapjeK | maandag 28 januari 2008 @ 22:57 |
tvp |
Chandler | dinsdag 29 januari 2008 @ 09:36 |
quote:Op maandag 28 januari 2008 22:03 schreef JortK het volgende:[..] Waarom de complete tabel naam? Aliassen is toch een veel beter idee? Like: [ code verwijderd ] ? Beter of handiger of duidelijer? tis maar net wat je zelf het makkelijkste vind  |
Xcalibur | dinsdag 29 januari 2008 @ 10:40 |
quote: Dit vind ik altijd hoogst onduidelijk.... |
Dreammaster | dinsdag 29 januari 2008 @ 11:21 |
quote:Op maandag 28 januari 2008 22:03 schreef JortK het volgende:[..] Waarom de complete tabel naam? Aliassen is toch een veel beter idee? Like: [ code verwijderd ] ? Door aliassen te maken worden er temporary tables aangemaakt, en wordt het een stuk trager van. |
Chandler | dinsdag 29 januari 2008 @ 11:53 |
quote:Op dinsdag 29 januari 2008 11:21 schreef Dreammaster het volgende:[..] Door aliassen te maken worden er temporary tables aangemaakt, en wordt het een stuk trager van. Dat wist ik ook niet weer wat geleerd, vind zo ie zo dat aliassen vies zijn, het is imho duidelijker om gewoon de gehele tabelnaam te gebruiken, weet je gelijk wat waar voor dient!  |
Dreammaster | dinsdag 29 januari 2008 @ 12:13 |
quote:Op dinsdag 29 januari 2008 11:53 schreef Chandler het volgende:[..] Dat wist ik ook niet  weer wat geleerd, vind zo ie zo dat aliassen vies zijn, het is imho duidelijker om gewoon de gehele tabelnaam te gebruiken, weet je gelijk wat waar voor dient!  Ja aliassen zijn ook smerig. Ik gebruik het alleen als het niet anders kan. |
Geqxon | dinsdag 29 januari 2008 @ 12:38 |
Mwa.
"SELECT c.Name AS CompanyName, e.Name AS EmployeeName FROM company AS c LEFT JOIN employee AS e WHERE e.CompanyID = c.ID"
Is toch wel duidelijk? |
Dreammaster | dinsdag 29 januari 2008 @ 12:48 |
quote:Op dinsdag 29 januari 2008 12:38 schreef Geqxon het volgende:Mwa. "SELECT c.Name AS CompanyName, e.Name AS EmployeeName FROM company AS c LEFT JOIN employee AS e WHERE e.CompanyID = c.ID" Is toch wel duidelijk? Voor jou misschien maar ik vind het erg onoverzichtelijk (en tevens trager) |
JortK | dinsdag 29 januari 2008 @ 12:51 |
Hoeveel trager dan?
Ik werk op echt grote omgevingen (MSSQL) maar daar merk ik het echt niet 
Wat ik wel merk in performance is of je je joins left in de WHERE of in de FROM  |