abonnement Unibet Coolblue Bitvavo
  donderdag 26 juli 2007 @ 01:07:26 #153
71919 wonderer
Hung like a My Little Pony
pi_51841155
quote:
Op donderdag 26 juli 2007 01:05 schreef Geqxon het volgende:

[..]

Nog wat puntjes die ik expres vergat te melden:
  • Een "Rememberkey" (de unieke string) is maar een week geldig.
  • Bij het aanmelden op de website, via een cookie of het inlogvenster, word je IP-adres in de database opgeslagen. Elke keer bij het openen van een pagina wordt $_SERVER['REMOTE_ADDR'] met het IP-adres uit de database vergelijken. Zo niet > Uitloggen.
  • Hoe doe je dat van die week?
    "Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
    "My brain is too smart for me."
    "We don't need no education." "Yes you do, you just used a double negative."
    pi_51841348
    quote:
    Op donderdag 26 juli 2007 01:07 schreef wonderer het volgende:

    [..]

    Hoe doe je dat van die week?
    Bij het uitgeven van de unieke string naar een cookie hou ik bij wanneer deze cookie uitgegeven / gebruikt is. Als de user een week later met deze cookie aan komt kloppen, dan kijk ik wanneer ik hij voor het laatst gebruikt is, en als dat te lang geleden is: Uitloggen.
      donderdag 26 juli 2007 @ 01:19:15 #155
    71919 wonderer
    Hung like a My Little Pony
    pi_51841445
    quote:
    Op donderdag 26 juli 2007 01:14 schreef Geqxon het volgende:

    [..]

    Bij het uitgeven van de unieke string naar een cookie hou ik bij wanneer deze cookie uitgegeven / gebruikt is. Als de user een week later met deze cookie aan komt kloppen, dan kijk ik wanneer ik hij voor het laatst gebruikt is, en als dat te lang geleden is: Uitloggen.
    Hoe hou je dat bij dan? Kijk je naar de datum van je cookie of heb je de datum van het moment dat die string is uitgegeven in de database staan?

    Je kunt ook gewoon je cookie na een week laten verlopen, toch?
    "Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
    "My brain is too smart for me."
    "We don't need no education." "Yes you do, you just used a double negative."
    pi_51841664
    quote:
    Op donderdag 26 juli 2007 01:19 schreef wonderer het volgende:

    [..]

    Hoe hou je dat bij dan? Kijk je naar de datum van je cookie of heb je de datum van het moment dat die string is uitgegeven in de database staan?

    Je kunt ook gewoon je cookie na een week laten verlopen, toch?
    quote:
    $sql = " UPDATE users
    SET RememberIP = '".$_SERVER['REMOTE_ADDR']."',
    RememberKey = '".$rememberkey."',
    RememberDate = '".time()."'
    WHERE ID = '".$user["ID"]."'
    LIMIT 1";
    $result = mysql_query($sql);

    setcookie("RememberKey", $rememberkey, time()+604800);
    .

    Cookies laten verlopen is extra beveiliging, clientside moet je nooit wat vertrouwen.
      donderdag 26 juli 2007 @ 02:00:10 #157
    71919 wonderer
    Hung like a My Little Pony
    pi_51842262
    Yeah. Zo heb ik het ook ongeveer. De datum wanneer wordt ingelogd wordt gelogd. Ik doe er alleen vooralsnog niks mee (behalve mensen trimmen die al een maand zijn ingelogd maar de site niet bezocht hebben).
    "Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
    "My brain is too smart for me."
    "We don't need no education." "Yes you do, you just used a double negative."
      donderdag 26 juli 2007 @ 08:22:15 #158
    84926 WyriHaximus
    Release the hounds smithers!
    pi_51844204
    quote:
    Op donderdag 26 juli 2007 00:38 schreef wonderer het volgende:

    [..]

    Moet je wel de domeinnaam weten
    Kleine bijkomstigheid .
    quote:
    Op donderdag 26 juli 2007 00:48 schreef wonderer het volgende:
    Hah! Gevonden: http://www.yapf.net/

    http://www.yapf.net/Articles/ArticleView/805

    En dat is het artikel.
    Ah net artikel .
    phluphy for president!
    pi_51846161
    Ik zit met een probleem waar ik niet uitkom:

    Ik sla de invoerdatum van een factuur op in de database d.m.v. datetime (0000-00-00 00:00:00).

    Nu zou ik graag met een query een overzicht maken van alle factuurnummers met als invoerdatum een dag terug, of een week geleden.

    Ik heb gezocht en kwam functies tegen zoals DATE_ADD en DATE_SUB maar hiermee krijg ik het niet voor elkaar.

    Kan iemand me helpen hiermee?
      donderdag 26 juli 2007 @ 10:27:41 #160
    84926 WyriHaximus
    Release the hounds smithers!
    pi_51846761
    quote:
    Op donderdag 26 juli 2007 10:04 schreef Erik het volgende:
    Ik zit met een probleem waar ik niet uitkom:

    Ik sla de invoerdatum van een factuur op in de database d.m.v. datetime (0000-00-00 00:00:00).

    Nu zou ik graag met een query een overzicht maken van alle factuurnummers met als invoerdatum een dag terug, of een week geleden.

    Ik heb gezocht en kwam functies tegen zoals DATE_ADD en DATE_SUB maar hiermee krijg ik het niet voor elkaar.

    Kan iemand me helpen hiermee?
    Misschien is date iets om naar te kijken? Samen met time() moet dat wel lukken denk ik :).
    1
    2
    3
    4
    <?php
    $day_count 
    1;
    $sql "SELECT * FROM table WHERE date LIKE '" date('yadieya',(time() - ((60 60 24) * $day_count))) . "%'";
    ?>
    phluphy for president!
      donderdag 26 juli 2007 @ 10:42:50 #161
    62215 qu63
    ..de tijd drinkt..
    pi_51847227
    quote:
    Op donderdag 26 juli 2007 00:48 schreef wonderer het volgende:
    Hah! Gevonden: http://www.yapf.net/

    http://www.yapf.net/Articles/ArticleView/805

    En dat is het artikel.
    leesvoer!
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
    pi_51847518
    quote:
    Op dinsdag 24 juli 2007 18:43 schreef Thomass het volgende:

    [..]
    [ code verwijderd ]

    och het is zo logisch mensen

    (gave site heb je trouwens )
    SELECT 'a' + '0x1' geeft toch echt 0 als resultaat in MySQL 5.
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
      donderdag 26 juli 2007 @ 10:59:59 #163
    62215 qu63
    ..de tijd drinkt..
    pi_51847720
    quote:
    Op donderdag 26 juli 2007 10:42 schreef qu63 het volgende:

    [..]

    leesvoer!
    ik snap het wel aardig geloof ik, alleen voorbeelden zeggen mij meestal meer
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
    pi_51850243
    quote:
    Op donderdag 26 juli 2007 10:53 schreef SuperRembo het volgende:

    [..]

    SELECT 'a' + '0x1' geeft toch echt 0 als resultaat in MySQL 5.
    Dat zou zo maar kunnen, maar ik had het over php
    pi_51850384
    quote:
    Op donderdag 26 juli 2007 10:27 schreef WyriHaximus het volgende:

    [..]

    Misschien is date iets om naar te kijken? Samen met time() moet dat wel lukken denk ik .
    [ code verwijderd ]
    Of iets als date('Y-m-d h:i:s', strtotime('-7 day'));
    pi_51851648
    quote:
    Op donderdag 26 juli 2007 12:25 schreef Thomass het volgende:
    Dat zou zo maar kunnen, maar ik had het over php
    Aha. De oorspronkelijke vraag ging over SQL.
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    pi_51852955
    quote:
    Op donderdag 26 juli 2007 10:59 schreef qu63 het volgende:

    [..]

    ik snap het wel aardig geloof ik, alleen voorbeelden zeggen mij meestal meer
    *handschud* dat ondervind ik dus ook... erg vervelend, zou graag begrijpend willen lezen maar veel stukken snap ik niet, zelfs niet na meerdere keren lezen

    Maar gelukkig zijn er nog posters die zonder problemen iets willen uitleggen!

    CraZaay Jera SuperRembo en voormalige poster Sop voor al die anderen die ik vergeet
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
      donderdag 26 juli 2007 @ 14:06:13 #168
    84926 WyriHaximus
    Release the hounds smithers!
    pi_51853295
    quote:
    Op donderdag 26 juli 2007 13:56 schreef Chandler het volgende:

    [..]

    *handschud* dat ondervind ik dus ook... erg vervelend, zou graag begrijpend willen lezen maar veel stukken snap ik niet, zelfs niet na meerdere keren lezen

    Maar gelukkig zijn er nog posters die zonder problemen iets willen uitleggen!

    CraZaay Jera SuperRembo en voormalige poster Sop voor al die anderen die ik vergeet
    Kijk eens naar die van phpBB, zit redelijk netjes in elkaar . Komt zo ff link naar de source, upload is wat traag op me werk . http://wyrihaximus.net/en(...)-n-sessions_php.html
    phluphy for president!
    pi_51853324
    PHP leren kun je op twee manieren doen. Source-codes lezen of boeken. Beide kan ik aanraden.
    pi_51854483
    $result = @mysql_query("INSERT INTO t_nieuws VALUES ('" . $datum . "','" . $titel . "','" . $bericht . "','" . $actief . "','" . $extern . "','" . $intern . "');");

    Is daar iets fout aan? Hij voer hem niet uit, ik krijg geen foutmelding. Ook zonder @ voor de mysql tag.
      donderdag 26 juli 2007 @ 14:41:11 #171
    84926 WyriHaximus
    Release the hounds smithers!
    pi_51854529
    quote:
    Op donderdag 26 juli 2007 14:39 schreef Qunix het volgende:
    $result = @mysql_query("INSERT INTO t_nieuws VALUES ('" . $datum . "','" . $titel . "','" . $bericht . "','" . $actief . "','" . $extern . "','" . $intern . "');");

    Is daar iets fout aan? Hij voer hem niet uit, ik krijg geen foutmelding.
    Zet er eens or die(mysql_error()) achter . OW en haal de @ weg .
    phluphy for president!
    pi_51854643
    quote:
    Op donderdag 26 juli 2007 14:41 schreef WyriHaximus het volgende:

    [..]

    Zet er eens or die(mysql_error()) achter . OW en haal de @ weg .
    2007-07-26 14:43:15
    wedfrgthuj
    poiuytre4567890
    1
    1
    0

    Geplaatst
    Nieuwsitem is geplaatst.

    Geen foutmelding dus... Dat boven in is wat ingevoerd is.
      donderdag 26 juli 2007 @ 14:44:34 #173
    71919 wonderer
    Hung like a My Little Pony
    pi_51854649
    Ik wil van PHPBB eigenlijk wel meer weten hoe ze dingen doen. Ik probeer zelf een forum te scripten (als onderdeel van een hele site, netjes geintegreerd) en ik heb af en toe het idee dat ik het wiel opnieuw aan het uitvinden ben

    Maar een bestaand pakket gebruiken werkt ook weer niet echt want ik wil dingen die zij niet ondersteunen (ook niet in MODs) en zelf dingen aanpassen daar is nog veel frustrerender.

    Er zijn forumpakketten die bijhouden welke topics je hebt gelezen, hoe vaak je ook in- en uitlogt (dus niet zoals Fok het doet, gebaseerd op je laatste inlogtijd, maar echt of je erop geklikt hebt). Weet iemand hoe dat bijgehouden wordt? Ik kan me amper voorstellen dat er ergens in een tabel wordt bijgehouden met een n-n relatie: user-post/topic.

    Iemand een idee?
    "Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
    "My brain is too smart for me."
    "We don't need no education." "Yes you do, you just used a double negative."
    pi_51854729
    quote:
    Op donderdag 26 juli 2007 14:44 schreef wonderer het volgende:
    Ik wil van PHPBB eigenlijk wel meer weten hoe ze dingen doen. Ik probeer zelf een forum te scripten (als onderdeel van een hele site, netjes geintegreerd) en ik heb af en toe het idee dat ik het wiel opnieuw aan het uitvinden ben

    Maar een bestaand pakket gebruiken werkt ook weer niet echt want ik wil dingen die zij niet ondersteunen (ook niet in MODs) en zelf dingen aanpassen daar is nog veel frustrerender.

    Er zijn forumpakketten die bijhouden welke topics je hebt gelezen, hoe vaak je ook in- en uitlogt (dus niet zoals Fok het doet, gebaseerd op je laatste inlogtijd, maar echt of je erop geklikt hebt). Weet iemand hoe dat bijgehouden wordt? Ik kan me amper voorstellen dat er ergens in een tabel wordt bijgehouden met een n-n relatie: user-post/topic.

    Iemand een idee?
    Volgens mij had DirectTopics dat... www.directtopics.nl En dan de beta v5.
    pi_51854766
    quote:
    Op donderdag 26 juli 2007 14:39 schreef Qunix het volgende:
    $result = @mysql_query("INSERT INTO t_nieuws VALUES ('" . $datum . "','" . $titel . "','" . $bericht . "','" . $actief . "','" . $extern . "','" . $intern . "');");

    Is daar iets fout aan? Hij voer hem niet uit, ik krijg geen foutmelding. Ook zonder @ voor de mysql tag.
    Ik kan je aanraden dit format te gebruiken:

    1INSERT INTO tbl_name (a,b,c) VALUES(1,2,3);


    Als je dan ooit een veldnaam aan je tabel toevoegd, dan weet je zeker dat alles nog goed loopt. :)
      donderdag 26 juli 2007 @ 14:50:12 #176
    84926 WyriHaximus
    Release the hounds smithers!
    pi_51854846
    quote:
    Op donderdag 26 juli 2007 14:44 schreef Qunix het volgende:

    [..]

    2007-07-26 14:43:15
    wedfrgthuj
    poiuytre4567890
    1
    1
    0

    Geplaatst
    Nieuwsitem is geplaatst.

    Geen foutmelding dus... Dat boven in is wat ingevoerd is.
    Dan gaat de query iig goed .
    quote:
    Op donderdag 26 juli 2007 14:44 schreef wonderer het volgende:
    Ik wil van PHPBB eigenlijk wel meer weten hoe ze dingen doen. Ik probeer zelf een forum te scripten (als onderdeel van een hele site, netjes geintegreerd) en ik heb af en toe het idee dat ik het wiel opnieuw aan het uitvinden ben

    Maar een bestaand pakket gebruiken werkt ook weer niet echt want ik wil dingen die zij niet ondersteunen (ook niet in MODs) en zelf dingen aanpassen daar is nog veel frustrerender.

    Er zijn forumpakketten die bijhouden welke topics je hebt gelezen, hoe vaak je ook in- en uitlogt (dus niet zoals Fok het doet, gebaseerd op je laatste inlogtijd, maar echt of je erop geklikt hebt). Weet iemand hoe dat bijgehouden wordt? Ik kan me amper voorstellen dat er ergens in een tabel wordt bijgehouden met een n-n relatie: user-post/topic.

    Iemand een idee?
    Ja ben je ook . Maar goed als een ander wiel niet past onder jouw auto waarom zou je het dan gebruiken .

    Yup dat word gewoon in een tabelletje bijgehouden vaak. (Dat het ontzettend groot word is een ander verhaal .)

    * WyriHaximus heeft de hele source van phpbb online staan, dus als je wilt, leef je uit http://wyrihaximus.net/en-files/index-d-548-n-phpBB2_0_22.html
    phluphy for president!
      donderdag 26 juli 2007 @ 15:25:20 #177
    71919 wonderer
    Hung like a My Little Pony
    pi_51856150
    quote:
    Op donderdag 26 juli 2007 14:50 schreef WyriHaximus het volgende:
    Ja ben je ook . Maar goed als een ander wiel niet past onder jouw auto waarom zou je het dan gebruiken .
    Da's wel een goeie, ja!
    quote:
    Yup dat word gewoon in een tabelletje bijgehouden vaak. (Dat het ontzettend groot word is een ander verhaal .)

    * ] WyriHaximus heeft de hele source van phpbb online staan, dus als je wilt, leef je uit http://wyrihaximus.net/en-files/index-d-548-n-phpBB2_0_22.html
    Ik kan het me haast niet voorstellen (zo'n grote tabel ),

    PHPBB ga ik ook eens een keer bekijken, hoewel ik meer geinteresseerd ben in hoe ze het opslaan in de database.
    "Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
    "My brain is too smart for me."
    "We don't need no education." "Yes you do, you just used a double negative."
      donderdag 26 juli 2007 @ 15:28:26 #178
    84926 WyriHaximus
    Release the hounds smithers!
    pi_51856275
    quote:
    Op donderdag 26 juli 2007 15:25 schreef wonderer het volgende:

    [..]

    Da's wel een goeie, ja!
    Net verzonnen .
    quote:
    Op donderdag 26 juli 2007 15:25 schreef wonderer het volgende:
    [..]

    Ik kan het me haast niet voorstellen (zo'n grote tabel ),

    PHPBB ga ik ook eens een keer bekijken, hoewel ik meer geinteresseerd ben in hoe ze het opslaan in de database.
    Dat gaat gewoon ook fout na een tijdje als het te groot word. Natuurlijk is een prune functie wel handig .
    phluphy for president!
    pi_51856478
    quote:
    Op donderdag 26 juli 2007 14:47 schreef Geqxon het volgende:

    [..]

    Ik kan je aanraden dit format te gebruiken:


    [ code verwijderd ]


    Als je dan ooit een veldnaam aan je tabel toevoegd, dan weet je zeker dat alles nog goed loopt.
    Gedaan zonder id voorin... maar nog doet hij het niet.. Gegevens komen goed door, hij komt in het gebied waar hij het hoort uit te voeren maar alsnog doet hij het niet in de database.
      donderdag 26 juli 2007 @ 15:48:35 #180
    71919 wonderer
    Hung like a My Little Pony
    pi_51856995
    *probeert left join te snappen*

    Serieus, volgens mij heb ik een redacteur nodig. Mijn SQL skills zitten al 8 jaar op hetzelfde niveau Dat kan allemaal veel handiger volgens mij...
    "Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
    "My brain is too smart for me."
    "We don't need no education." "Yes you do, you just used a double negative."
      donderdag 26 juli 2007 @ 15:52:00 #181
    84926 WyriHaximus
    Release the hounds smithers!
    pi_51857104
    quote:
    Op donderdag 26 juli 2007 15:48 schreef wonderer het volgende:
    *probeert left join te snappen*

    Serieus, volgens mij heb ik een redacteur nodig. Mijn SQL skills zitten al 8 jaar op hetzelfde niveau Dat kan allemaal veel handiger volgens mij...
    * WyriHaximus pakt de kruip olie alvast

    Anyway vertel . Wat snap je niet?
    phluphy for president!
    pi_51857117
    quote:
    Op donderdag 26 juli 2007 15:48 schreef wonderer het volgende:
    *probeert left join te snappen*

    Serieus, volgens mij heb ik een redacteur nodig. Mijn SQL skills zitten al 8 jaar op hetzelfde niveau Dat kan allemaal veel handiger volgens mij...
    http://www.w3schools.com/sql/sql_join.asp
      donderdag 26 juli 2007 @ 16:03:51 #183
    71919 wonderer
    Hung like a My Little Pony
    pi_51857456
    quote:
    Op donderdag 26 juli 2007 15:52 schreef WyriHaximus het volgende:

    [..]

    * WyriHaximus pakt de kruip olie alvast

    Anyway vertel . Wat snap je niet?
    Vooral wanneer ik het moet gebruiken. De syntax is niet zo heel lastig, maar het nut. En werkt het alleen met twee verschillende tabellen?

    Ik heb alle lagen forum (dus categorieen, subfora, startpost en replies) in dezelfde tabel staan en het level van elke entry geeft weer wat het is. Leek me handiger dan vier aparte tabellen met voornamelijk dezelfde velden. Zou ik daar eventueel (als ik erachter kom waar ik het voor kan gebruiken) gebruik kunnen maken van left join?

    Dus eigenlijk vraag ik me af: welke situatie zal eerder om een left join vragen, dan bijvoorbeeld twee aparte queries.
    "Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
    "My brain is too smart for me."
    "We don't need no education." "Yes you do, you just used a double negative."
      donderdag 26 juli 2007 @ 16:07:00 #184
    84926 WyriHaximus
    Release the hounds smithers!
    pi_51857554
    quote:
    Op donderdag 26 juli 2007 16:03 schreef wonderer het volgende:

    [..]

    Vooral wanneer ik het moet gebruiken. De syntax is niet zo heel lastig, maar het nut. En werkt het alleen met twee verschillende tabellen?

    Ik heb alle lagen forum (dus categorieen, subfora, startpost en replies) in dezelfde tabel staan en het level van elke entry geeft weer wat het is. Leek me handiger dan vier aparte tabellen met voornamelijk dezelfde velden. Zou ik daar eventueel (als ik erachter kom waar ik het voor kan gebruiken) gebruik kunnen maken van left join?

    Dus eigenlijk vraag ik me af: welke situatie zal eerder om een left join vragen, dan bijvoorbeeld twee aparte queries.
    In feite can kan oneindig aantal tabellen met left join koppelen .
    phluphy for president!
      donderdag 26 juli 2007 @ 16:07:39 #185
    71919 wonderer
    Hung like a My Little Pony
    pi_51857570
    quote:
    Hm.

    Dus iets als
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
      $result1
    =runquery("SELECT * FROM user_profile WHERE username=".quote_smart($user,$d),$d);
    $result2=runquery("SELECT * FROM user_data WHERE username=".quote_smart($user,$d),$d);
    $result3=runquery("SELECT * FROM user_prefs WHERE username=".quote_smart($user,$d),$d);
    $result4=runquery("SELECT * FROM users WHERE username=".quote_smart($user,$d),$d);
    $result5=runquery("SELECT * FROM user_extras WHERE username=".quote_smart($user,$d),$d);

    $row1=mysql_fetch_array($result1);
    $row2=mysql_fetch_array($result2);
    $row3=mysql_fetch_array($result3);
    $row4=mysql_fetch_array($result4);
    $row5=mysql_fetch_array($result5);
    ?>


    zou met een join kunnen? Met een query tegelijk alle noodzakelijke dingen uit meerdere tabellen halen?
    "Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
    "My brain is too smart for me."
    "We don't need no education." "Yes you do, you just used a double negative."
      donderdag 26 juli 2007 @ 16:08:20 #186
    84926 WyriHaximus
    Release the hounds smithers!
    pi_51857598
    quote:
    Op donderdag 26 juli 2007 16:07 schreef wonderer het volgende:

    [..]

    Hm.

    Dus iets als
    [ code verwijderd ]

    zou met een join kunnen? Met een query tegelijk alle noodzakelijke dingen uit meerdere tabellen halen?
    Ja.
    phluphy for president!
      donderdag 26 juli 2007 @ 16:11:52 #187
    62215 qu63
    ..de tijd drinkt..
    pi_51857701
    quote:
    Op donderdag 26 juli 2007 14:06 schreef WyriHaximus het volgende:

    [..]

    Kijk eens naar die van phpBB, zit redelijk netjes in elkaar . Komt zo ff link naar de source, upload is wat traag op me werk . http://wyrihaximus.net/en(...)-n-sessions_php.html
    hmz, pagina begint met wat php-errors

    verder ziet het wel ok uit
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
    pi_51857748
    Zo ie zo vind ik dat de meeste bulletinboards te veel mogelijkheden hebben. Een standaard forum is bijna niet meer te vinden.

    Waar je simpel en alleen kunt registreren, posten enzo. Heb zelf ooit ook een forum geschreven (wie niet?) ennuh moet zeggen dat het niet echt heel moeilijk is hoor. Tenzij je meer wilt dan 'standaard'
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
    pi_51857760
    quote:
    Op donderdag 26 juli 2007 16:03 schreef wonderer het volgende:

    [..]

    Vooral wanneer ik het moet gebruiken. De syntax is niet zo heel lastig, maar het nut. En werkt het alleen met twee verschillende tabellen?

    Ik heb alle lagen forum (dus categorieen, subfora, startpost en replies) in dezelfde tabel staan en het level van elke entry geeft weer wat het is. Leek me handiger dan vier aparte tabellen met voornamelijk dezelfde velden. Zou ik daar eventueel (als ik erachter kom waar ik het voor kan gebruiken) gebruik kunnen maken van left join?

    Dus eigenlijk vraag ik me af: welke situatie zal eerder om een left join vragen, dan bijvoorbeeld twee aparte queries.
    Ik heb hier dus al enkele topics mee bevuild, maar om het dan toch een keertje op te takelen:

    In het systeem dat ik aan het bouwen ben kunnen gebruikers een nieuwsartikel bookmarken. Ik plaats dan een record in de bookmark tabel met het userid en het nieuwsartikel-id.

    In het nieuwsoverzicht wil ik dat de gebruikers bij elk nieuwsartikel zien of ze deze al gebookmarked hebben of niet. Nu kan ik bij elk nieuwsartikel het in de database opzoeken, maar ik maak gebruik van een left join. Als bij het nieuwsartikel-ID een bookmark is geplaatst (en dat dus in de bookmarktabel staat), dan komt hij er keurig bij te staan, en als die er niet is, staat er NULL.

    Zo kan ik bijna de complete pagina in 1 query ophalen.
      donderdag 26 juli 2007 @ 16:13:57 #190
    84926 WyriHaximus
    Release the hounds smithers!
    pi_51857767
    quote:
    Op donderdag 26 juli 2007 16:11 schreef qu63 het volgende:

    [..]

    hmz, pagina begint met wat php-errors

    verder ziet het wel ok uit
    Liep idd ff te kutten ja met de functie die voor de source parsing and highligthing zorgt aangezien de text van de code wat klein is

    Thanks !
    phluphy for president!
      donderdag 26 juli 2007 @ 16:14:13 #191
    71919 wonderer
    Hung like a My Little Pony
    pi_51857773
    quote:
    Op donderdag 26 juli 2007 16:08 schreef WyriHaximus het volgende:

    [..]

    Ja.
    En dat kan ik dan met een enkele fetch_array ophalen? wordt het dan iets van $row["users.last_visit"] en $row["user_data.first_name"]?
    "Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
    "My brain is too smart for me."
    "We don't need no education." "Yes you do, you just used a double negative."
      donderdag 26 juli 2007 @ 16:16:25 #192
    71919 wonderer
    Hung like a My Little Pony
    pi_51857831
    quote:
    Op donderdag 26 juli 2007 16:13 schreef Chandler het volgende:
    Zo ie zo vind ik dat de meeste bulletinboards te veel mogelijkheden hebben. Een standaard forum is bijna niet meer te vinden.

    Waar je simpel en alleen kunt registreren, posten enzo. Heb zelf ooit ook een forum geschreven (wie niet?) ennuh moet zeggen dat het niet echt heel moeilijk is hoor. Tenzij je meer wilt dan 'standaard'
    Ik wil in zoverre meer dan standaard dat geen enkel bestaand pakket alles heeft Maar dat heeft vooral met de omgeving te maken. Ik heb mijn eigen PB-system, eigen profielen enzo, en dat zit er tegenwoordig allemaal bij, dat hoeft niet.

    Maar het gaat best zo en het is leuk om te doen, en ik leer ook steeds wat nieuws.
    "Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
    "My brain is too smart for me."
    "We don't need no education." "Yes you do, you just used a double negative."
      donderdag 26 juli 2007 @ 16:17:41 #193
    71919 wonderer
    Hung like a My Little Pony
    pi_51857869
    quote:
    Op donderdag 26 juli 2007 16:13 schreef Geqxon het volgende:

    [..]

    Ik heb hier dus al enkele topics mee bevuild, maar om het dan toch een keertje op te takelen:

    In het systeem dat ik aan het bouwen ben kunnen gebruikers een nieuwsartikel bookmarken. Ik plaats dan een record in de bookmark tabel met het userid en het nieuwsartikel-id.

    In het nieuwsoverzicht wil ik dat de gebruikers bij elk nieuwsartikel zien of ze deze al gebookmarked hebben of niet. Nu kan ik bij elk nieuwsartikel het in de database opzoeken, maar ik maak gebruik van een left join. Als bij het nieuwsartikel-ID een bookmark is geplaatst (en dat dus in de bookmarktabel staat), dan komt hij er keurig bij te staan, en als die er niet is, staat er NULL.

    Zo kan ik bijna de complete pagina in 1 query ophalen.
    Oh damn. Volgens mij moet ik echt alles wat ik tot nu toe heb omgooien

    Het grote nadeel van autodidact zijn, er is niemand die je vertelt dat het ook anders kan
    "Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
    "My brain is too smart for me."
    "We don't need no education." "Yes you do, you just used a double negative."
    pi_51857899
    quote:
    Op donderdag 26 juli 2007 16:14 schreef wonderer het volgende:

    [..]

    En dat kan ik dan met een enkele fetch_array ophalen? wordt het dan iets van $row["users.last_visit"] en $row["user_data.first_name"]?
    Jep, alles wordt in een array gestopt. :)

    Mocht je een array door willen kammen:

    1
    2
    3
    <?php
    print_r
    ($array);
    ?>
      donderdag 26 juli 2007 @ 16:19:37 #195
    84926 WyriHaximus
    Release the hounds smithers!
    pi_51857934
    quote:
    Op donderdag 26 juli 2007 16:14 schreef wonderer het volgende:

    [..]

    En dat kan ik dan met een enkele fetch_array ophalen? wordt het dan iets van $row["users.last_visit"] en $row["user_data.first_name"]?
    Ja, maar je moet wel gaan specificeren welke velden je wilt . En je kunt ook user_data.first_name AS firstname en dan zal die firstname in je $row heten .
    phluphy for president!
    pi_51858007
    Hebbes, één van de betere tutorials over joins:

    http://www.wellho.net/mou(...)-and-OUTER-JOIN.html
      donderdag 26 juli 2007 @ 16:22:21 #197
    71919 wonderer
    Hung like a My Little Pony
    pi_51858015
    quote:
    Op donderdag 26 juli 2007 16:19 schreef WyriHaximus het volgende:

    [..]

    Ja, maar je moet wel gaan specificeren welke velden je wilt . En je kunt ook user_data.first_name AS firstname en dan zal die firstname in je $row heten .
    dus users.* werkt niet?
    "Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
    "My brain is too smart for me."
    "We don't need no education." "Yes you do, you just used a double negative."
      donderdag 26 juli 2007 @ 16:22:29 #198
    62215 qu63
    ..de tijd drinkt..
    pi_51858021
    quote:
    Op donderdag 26 juli 2007 16:13 schreef WyriHaximus het volgende:

    [..]

    Liep idd ff te kutten ja met de functie die voor de source parsing and highligthing zorgt aangezien de text van de code wat klein is
    dat vond ik ook al ja
    quote:
    Thanks !
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
      donderdag 26 juli 2007 @ 16:24:25 #199
    84926 WyriHaximus
    Release the hounds smithers!
    pi_51858069
    quote:
    Op donderdag 26 juli 2007 16:22 schreef qu63 het volgende:

    [..]

    dat vond ik ook al ja
    Word aan gewerkt .
    quote:
    Op donderdag 26 juli 2007 16:22 schreef qu63 het volgende:
    [..]

    quote:
    Op donderdag 26 juli 2007 16:22 schreef wonderer het volgende:

    [..]

    dus users.* werkt niet?
    Jawel maar als je 2 keer de zelfde ga je errors krijgen .
    phluphy for president!
    pi_51858282
    wonderer, dump eens een lap code waarvan je denkt dat het korter kan.
      donderdag 26 juli 2007 @ 16:36:53 #201
    62215 qu63
    ..de tijd drinkt..
    pi_51858424
    hmz, http://www.w3schools.com/php/php_sessions.asp helpt me wel een beetje verder, maar hoe zorg ik er voor dat ik dezelfde gegevens ook op andere pagina's kan gebruiken?
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
      donderdag 26 juli 2007 @ 16:37:33 #202
    71919 wonderer
    Hung like a My Little Pony
    pi_51858441
    quote:
    Op donderdag 26 juli 2007 16:31 schreef Geqxon het volgende:
    wonderer, dump eens een lap code waarvan je denkt dat het korter kan. :)
    You asked for it... :')
    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
    <?php
    function profile_form($user,$element)
    {
     global 
    $days$months;

     
    $d=connectDB();
     
    $result1=runquery("SELECT * FROM user_profile WHERE username=".quote_smart($user,$d),$d);
     
    $result2=runquery("SELECT * FROM user_data WHERE username=".quote_smart($user,$d),$d);
     
    $result3=runquery("SELECT * FROM user_prefs WHERE username=".quote_smart($user,$d),$d);
     
    $result4=runquery("SELECT * FROM users WHERE username=".quote_smart($user,$d),$d);
     
    $result5=runquery("SELECT * FROM user_extras WHERE username=".quote_smart($user,$d),$d);

     
    $row1=mysql_fetch_array($result1);
     
    $row2=mysql_fetch_array($result2);
     
    $row3=mysql_fetch_array($result3);
     
    $row4=mysql_fetch_array($result4);
     
    $row5=mysql_fetch_array($result5);

     
    $bd=explode("-",$row2["birthday"]);
     
    $day=$bd[2];
     
    $month=$bd[1];
     
    $year=$bd[0];

     
    $days=select_list('profileform[user_day]',$day,$days);
     
    $months=select_list('profileform[user_month]',$month,$months);

     if(
    $row2["user_sex"]=="f"){$sf='checked';}
     elseif(
    $row2["user_sex"]=="m"){$sm='checked';}
     elseif(
    $row2["user_sex"]=="t"){$st='checked';}

     if(
    $row3["email_public"]=='1'){
      
    $pb=' checked';
     }
     else{
      
    $pv=' checked';
     }

     if(
    $row3["smilies"]=='1'){
      
    $sb=' checked';
     }
     else{
      
    $sv=' checked';
     }

     
    $res=runquery("SELECT * FROM user_avatars WHERE username=".quote_smart($user,$d),$d);
     while(
    $av=mysql_fetch_array($res)){
      
    $ava=$av["avatar_ID"].'.'.$av["extension"];
      if(
    $av["avatar_ID"]==$row2["user_avatar"]){
        
    $checked=' selected';
      }
      else{
        
    $checked='';
      }
      
    $select .= '<option value="'.$ava.'"'.$checked.'>'.$ava.'</option>';
     }

     if(
    mysql_num_rows(runquery("SELECT * FROM user_inventory WHERE item_ID='3' AND username=".quote_smart($user,$d),$d))=='1'){
      
    $fe_custom_color='<select name="profileform[custom_color]" id="kleur" style="background-color:#000000;color:#ffeeee;">'.generate_colors($row5["custom_color"]).'</select> Eigen kleurtje <br />';
     }
     else{
      
    $fe_custom_color='Eigen kleurtje: <span style="color:#'.$row5["custom_color"].'">'.$row5["custom_color"].' (<a href="shop.php">aanpassen</a>)</span><br />';
     }
     if(
    mysql_num_rows(runquery("SELECT * FROM user_inventory WHERE item_ID='4' AND username=".quote_smart($user,$d),$d))=='1'){
      
    $fe_custom_tag='<input type="text" class="text" name="profileform[custom_tag]"> Eigen tag <br />';
     }
     else{
      
    $fe_custom_tag='Eigen tag: '.$row5["custom_tag"].' (<a href="shop.php">aanpassen</a>)<br />';
     }
     if(
    mysql_num_rows(runquery("SELECT * FROM user_inventory WHERE item_ID='7' AND username=".quote_smart($user,$d),$d))=='1'){
      
    $fe_custom_sig='In je handtekening mogen plaatjes van maximaal 400 pixels breed en 60 pixels hoog. Het totaal aantal tekens mag de 250 niet overschrijden, inclusief BBCode. Op de inhoud zijn de algemene voorwaarden van toepassing. <br />';
      
    $fe_custom_sig.='<textarea name="profileform[custom_sig]" style="width:285px;height:60px;" class="sig">'.stripslashes($row5["custom_sig"]).'</textarea>';
     }
     else{
      
    $fe_custom_sig='Je hebt geen handtekening. Ga naar de <a href="shop.php">shop</a> om deze mogelijkheid te benutten.<br />';
     }
     if(
    mysql_num_rows(runquery("SELECT * FROM user_inventory WHERE item_ID='6' AND username=".quote_smart($user,$d),$d))=='1'){
      
    $change_name='1';
     }

     if(
    $row2["user_alias"]==$user || $row2["user_alias"]==''){
      
    $fe_alias='<input type="text" class="text" name="profileform[user_alias]" value="'.$user.'"> Chatnaam <br />';
     }
     elseif(
    $change_name=='1'){
      
    $fe_alias='<input type="text" class="text" name="profileform[user_alias]" value="'.$row2["user_alias"].'"> Chatnaam <br />';
     }
     else{
      
    $fe_alias=format_username($user).' (Chatnaam <a href="">veranderen</a>)<br />';
     }


     
    $fe_avatar='<select class="actielijst" name="profileform[user_avatar]"><option value="">Geen avatar</option> '.$select.'</select> <a href="members.php?c=avatars">Upload nieuwe avatar</a><br />';

     
    $fe_color='<select name="profileform[user_color]" id="kleur" style="background-color:#000000;color:#ffeeee;">'.generate_colors($row2["user_color"]).'</select> Chatkleur <br />';

     
    $fe_bio='Vertel hier iets over jezelf. Geen chatlogs, geen ASCII geknutsel, geen verhalen, gedichten, songteksten etc.<br />';
     
    $fe_bio.=show_toolbar('user_bio');
     
    $fe_bio.='<textarea id="user_bio" class="user_bio" name="profileform[user_bio]">'.stripslashes($row1["user_bio"]).'</textarea>';
     
    $fe_bio.='<script>write_toolbar('user_bio');</script>';

     
    $fe_homepage='<input type="text" class="text" name="profileform[user_page]" value="'.$row1["user_page"].'"> URL van je homepage <br />';
     
    $fe_msn='<input type="text" class="text" name="profileform[user_msn]" value="'.$row1["user_msn"].'"> Je MSN-adres <br />';
     
    $fe_wp='<input type="text" class="text" name="profileform[user_whatpulse]" value="'.$row1["user_whatpulse"].'"> Whatpulse username <br />';
     
    $fe_email='<input type="text" class="text" name="profileform[email]" value="'.$row4["email"].'"> E-mailadres<br />';

     
    $fe_first_name='<input type="text" class="text" name="profileform[first_name]" value="'.$row2["first_name"].'"> Voornaam<br />';
     
    $fe_last_name='<input type="text" class="text" name="profileform[last_name]" value="'.$row2["last_name"].'"> Achternaam<br />';
     
    $fe_location='<input type="text" class="text" name="profileform[location]" value="'.$row2["location"].'"> Woonplaats<br />';
     
    $fe_country='<input type="text" class="text" name="profileform[country]" value="'.$row2["country"].'"> Land<br />';

     
    $fe_birthday=$days.' - '.$months.' - <input type="text" class="text" size="4" maxlength="4" name=profileform[user_year]" value="'.$year.'"><br />';
     
    $fe_sex='<input type="radio" name="profileform[user_sex]" value="m" '.$sm.'> Jongen <input type="radio" name="profileform[user_sex]" value="f" '.$sf.'> Meisje<br /><input type="radio" name="profileform[user_sex]" value="t" '.$st.' style="display:none;">';

     
    $fe_prefs='
     <table class="prefs">
     <tr><td>Email-adres</td> <td><input type="radio" value="1" name="profileform[email_public]"'
    .$pb.'> Openbaar</td> <td><input type="radio" value="0" name="profileform[email_public]"'.$pv.'> Priv&eacute;</td></tr>
     <tr><td>Smilies</td> <td><input type="radio" value="1" name="profileform[smilies]"'
    .$sb.'> Aan</td> <td><input type="radio" value="0" name="profileform[smilies]"'.$sv.'> Uit</td></tr>
     </table>'
    ;


     
    $formheader='<form class="profile_form" method="post" action="?c=submit_profile">';
     
    $submit='<input type="hidden" name="profileform[username]" value="'.$user.'"><input type="submit" class="submit" name="submit_profile" value="opslaan" accesskey="s">';
     
    $formfooter='</form>';

     
    $link='<a href="?c=profile&user='.$user.'">Bekijk je profiel</a>';

     switch(
    $element){
      case 
    '1'#bio
       
    $form=$formheader.$fe_bio.$submit.$formfooter;
       break;
      case 
    '2'#contact
       
    $form=$formheader.$fe_homepage.$fe_msn.$fe_wp.$fe_email.$submit.$formfooter;
       break;
      case 
    '3'#persoonlijk
       
    $form=$formheader.$fe_first_name.$fe_last_name.$fe_location.$fe_country.$submit.$formfooter;
       break;
      case 
    '4'#geb. datum/sexe
       
    $form=$formheader.$fe_birthday.$fe_sex.$submit.$formfooter;
       break;
      case 
    '5'#chatstuff
       
    $form=$formheader.$fe_alias.$fe_avatar.$fe_color.$submit.$formfooter;
       break;
      default:
       
    $form=$formheader.'<div class="prof_left">
       <fieldset class="prof"><legend>Contactgegevens</legend>'
    .$fe_homepage.$fe_msn.$fe_wp.$fe_email.'</fieldset>
       <fieldset class="prof"><legend>Persoonlijk</legend>'
    .$fe_first_name.$fe_last_name.$fe_location.$fe_country.$fe_birthday.$fe_sex.'</fieldset>
       <fieldset class="prof"><legend>Chatstuff</legend>'
    .$fe_alias.$fe_avatar.$fe_color.'</fieldset>
       <fieldset class="prof"><legend>Instellingen</legend>'
    .$fe_prefs.'</fieldset>
       <fieldset class="prof"><legend>Extra'
    s</legend>'.$fe_custom_tag.$fe_custom_color.$fe_custom_sig.'</fieldset>
       
    '.$submit.'</div>
       <
    div class="prof_right"><fieldset class="prof"><legend>Biografie</legend>'.$fe_bio.'</fieldset></div>'.$formfooter;
       break;
     }
    return $form;
    }
    ?>


    Dat bouwt het formulier op voor een gebruikersprofiel. De switch is voor stukjes formulier: als je op je eigen profiel zit, zie je per gedeelte (persoonlijke info, biografie etc een linkje "bewerk" dat in een popupje het betreffende stukje form laat zien zodat je het makkelijk en snel kan aanpassen).

    Ik heb alle userdata in verschillende tabellen gestopt vanwege het overzicht. Dit leek me makkelijker dan een grote tabel met wel 50 fields. Als ik nu bijvoorbeeld alleen een voornaam nodig heb, hoef ik niet in een hele grote tabel te gaan zoeken (hoewel, met een SELECT first_name zou dat ook niet veel uitmaken? Is het misschien toch slimmer om alles in een tabel te proppen?).
    "Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
    "My brain is too smart for me."
    "We don't need no education." "Yes you do, you just used a double negative."
      donderdag 26 juli 2007 @ 16:38:40 #203
    71919 wonderer
    Hung like a My Little Pony
    pi_51858473
    Dit voelt echt net als iemand een verhaal laten lezen Ben echt bang dat er zometeen iemand komt die me keihard uitlacht omdat de code zo knullig is

    Met dat verschil dat ik weet dat ik goed verhalen kan schrijven, maar dat mijn codeer-niveau nog in groep drie zit
    "Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
    "My brain is too smart for me."
    "We don't need no education." "Yes you do, you just used a double negative."
      donderdag 26 juli 2007 @ 16:40:51 #204
    71919 wonderer
    Hung like a My Little Pony
    pi_51858525
    Deze is ook wel leuk trouwens:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <?php
    function breadcrumb($id){
     
    $d=connectDB();
     
    $r1=runquery("SELECT forum_subject, parent_ID FROM forum WHERE ID='".$id."'",$d);
     
    $pid=mysql_result($r1,0,"parent_ID");
     
    $topic=mysql_result($r1,0,"forum_subject");
     
    $r2=runquery("SELECT forum_subject, parent_ID FROM forum WHERE ID='".$pid."'",$d);
     
    $pid2=mysql_result($r2,0,"parent_ID");
     
    $subforum=mysql_result($r2,0,"forum_subject");
     
    $r3=runquery("SELECT forum_subject FROM forum WHERE ID='".$pid2."'",$d);
     
    $forum=mysql_result($r3,0,"forum_subject");

     
    $crumb='<a href="forum.php">Griezelforum</a> > '.$forum.': <a href="forum.php?c=forum&id='.$pid.'">'.$subforum.'</a> > '.stripslashes($topic);

     return 
    $crumb;
    }
    ?>

    Breadcrumb voor forum->subforum->topic
    "Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
    "My brain is too smart for me."
    "We don't need no education." "Yes you do, you just used a double negative."
      donderdag 26 juli 2007 @ 16:43:56 #205
    84926 WyriHaximus
    Release the hounds smithers!
    pi_51858605
    quote:
    Op donderdag 26 juli 2007 16:38 schreef wonderer het volgende:
    Dit voelt echt net als iemand een verhaal laten lezen Ben echt bang dat er zometeen iemand komt die me keihard uitlacht omdat de code zo knullig is

    Met dat verschil dat ik weet dat ik goed verhalen kan schrijven, maar dat mijn codeer-niveau nog in groep drie zit
    Dat blijf je altijd houden . Maar de meeste hier zullen best willen helpen .
    phluphy for president!
      donderdag 26 juli 2007 @ 16:48:02 #206
    62215 qu63
    ..de tijd drinkt..
    pi_51858719
    quote:
    Op donderdag 26 juli 2007 16:36 schreef qu63 het volgende:
    hmz, http://www.w3schools.com/php/php_sessions.asp helpt me wel een beetje verder, maar hoe zorg ik er voor dat ik dezelfde gegevens ook op andere pagina's kan gebruiken?
    opgelöst!
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
    pi_51858764
    quote:
    Op donderdag 26 juli 2007 16:36 schreef qu63 het volgende:
    hmz, http://www.w3schools.com/php/php_sessions.asp helpt me wel een beetje verder, maar hoe zorg ik er voor dat ik dezelfde gegevens ook op andere pagina's kan gebruiken?
    Pagina 1:
    1
    2
    3
    4
    5
    <?php
    session_start
    ();

    $_SESSION["Voornaam"] = "Dieter";
    ?>


    Pagina 2:
    1
    2
    3
    4
    5
    6
    <?php
    session_start
    ();

    echo
    $_SESSION["Voornaam"];
    // Dieter
    ?>
    pi_51860668
    quote:
    Op donderdag 26 juli 2007 16:40 schreef wonderer het volgende:
    Deze is ook wel leuk trouwens:
    [ code verwijderd ]

    Breadcrumb voor forum->subforum->topic
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <?php
    function breadcrumb($id){
        
    $d connectDB();

        
    $result runquery("SELECT forum_subject, parent_ID FROM forum WHERE ID = '" mysql_real_escape_string($id) . "'");
        
    $topic mysql_fetch_assoc($result);
        
        
    $result runquery("SELECT forum_ID, forum_subject, parent_ID FROM forum WHERE ID = '" $topic['parent_ID'] . "'");
        
    $subforum mysql_fetch_assoc($result);
        
        
    $result runquery("SELECT forum_subject FROM forum WHERE ID = '" $subforum['parent_ID'] . "'");
        
    $forum mysql_fetch_assoc($result);
        
        
    $breadcrumb_html '<a href="forum.php">Griezelforum</a> &raquo; ' $forum['forum_subject'] . ': ';
        
    $breadcrumb_html .= '<a href="forum.php?c=forum&id='.$subforum['forum_ID'].'">'.$subforum['forum_subject'].'</a> &raquo; ';
        
    $breadcrumb_html .= stripslashes($topic['forum_subject']);
        
        return 
    $breadcrumb_html;
    }
    ?>


    Qua structuur iets overzichtelijker gemaakt. Je hebt nu drie arrays, een array met alle data van het topic, een array met alle data van het subforum, en een array met alle data van het forum zelf. En daar bouw je dan vervolgens je breadcrumb mee op.

    'forum_ID' heb ik zelf verzonnen, daar zul je mogelijk nog wat aan moeten doen.

    En als je het een heel stuk korter wilt hebben:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?php
    function breadcrumb($id){
        
    $d connectDB();

        
    $topic mysql_fetch_assoc(runquery("SELECT forum_subject, parent_ID FROM forum WHERE ID = '" mysql_real_escape_string($id) . "'",$d));
        
    $subforum mysql_fetch_assoc(runquery("SELECT forum_ID, forum_subject, parent_ID FROM forum WHERE ID = '" $topic['parent_ID'] . "'",$d));
        
    $forum mysql_fetch_assoc(runquery("SELECT forum_subject FROM forum WHERE ID = '" $subforum['parent_ID'] . "'",$d));
        
        
    $breadcrumb_html '<a href="forum.php">Griezelforum</a> &raquo; ' $forum['forum_subject'] . ': ';
        
    $breadcrumb_html .= '<a href="forum.php?c=forum&id='.$subforum['forum_ID'].'">'.$subforum['forum_subject'].'</a> &raquo; ';
        
    $breadcrumb_html .= stripslashes($topic['forum_subject']);
        
        return 
    $breadcrumb_html;
    }
    ?>


    Aan jou de keus wat je netter vind. :)
    pi_51860729
    ik vind de html opbouwen met sprintf() netter dan dit.
    1
    2
    3
    4
    <?php
    $format 
    '<a href="forum.php">Griezelforum</a> &raquo; %s <a href="forum.php?c=forum&id=%s">&s</a> &raquo; %s';
    $breakcrumb_html sprintf($format$forum['forum_subject'], $subforum['forum_ID'], $subforum['forum_subject'], stripslashes($topic['forum_subject']););
    ?>


    [ Bericht 40% gewijzigd door super-muffin op 26-07-2007 18:16:29 ]
    pi_51861081
    quote:
    Op donderdag 26 juli 2007 18:11 schreef super-muffin het volgende:
    ik vind de html opbouwen met sprintf() netter dan dit.
    [ code verwijderd ]
    Dat is inderdaad een stuk netter.
      donderdag 26 juli 2007 @ 19:43:48 #211
    71919 wonderer
    Hung like a My Little Pony
    pi_51863424
    quote:
    Op donderdag 26 juli 2007 18:11 schreef super-muffin het volgende:
    ik vind de html opbouwen met sprintf() netter dan dit.

    [ code verwijderd ]
    Waarom? In principe doe je toch hetzelfde? Bij een sprintf moet ik steeds weer opnieuw nadenken wat waar precies komt, op de "normale" manier gaat dat vanzelf

    Geq, ik zie dat je steeds "$result" gebruikt. Geeft dat niet? Dat ie hem overschrijft? Of is dat juist handiger omdat hij dan steeds maar een result in het geheugen heeft zitten in plaats van drie verschillende?
    "Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
    "My brain is too smart for me."
    "We don't need no education." "Yes you do, you just used a double negative."
      donderdag 26 juli 2007 @ 20:08:01 #212
    85514 ralfie
    !Yvan eht nioj
    pi_51864169
    ik gebruik het liefste haakjes om mijn strings op te bouwen:

    "Hallo {$gebruiker}, je hebt als naam opgegeven {$_GET['naam']}<br/>";

    sprintf vind ik een beetje overdreven om zoiets op te bouwen, maarja, whatever floats your boat...
    pi_51864322
    quote:
    Op donderdag 26 juli 2007 19:43 schreef wonderer het volgende:

    [..]

    Geq, ik zie dat je steeds "$result" gebruikt. Geeft dat niet? Dat ie hem overschrijft? Of is dat juist handiger omdat hij dan steeds maar een result in het geheugen heeft zitten in plaats van drie verschillende?
    Je hebt het hier maar 1 keer nodig, dus vandaar dat ik altijd dezelfde gebruik. Dat is wat netter dan $result_topic en $result_subforum.
      donderdag 26 juli 2007 @ 20:14:13 #214
    71919 wonderer
    Hung like a My Little Pony
    pi_51864391
    Oh, dat kan ook? Ik was al trots dat ik tegenwoordig single quotes gebruik voor strings en de variabelen er buiten laat
    "Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
    "My brain is too smart for me."
    "We don't need no education." "Yes you do, you just used a double negative."
    pi_51864484
    quote:
    Op donderdag 26 juli 2007 18:11 schreef super-muffin het volgende:
    ik vind de html opbouwen met sprintf() netter dan dit.
    [ code verwijderd ]
    HTML in je code is verre van net. Het hoort er niet. Daar zijn template engines voor.
      donderdag 26 juli 2007 @ 20:16:47 #216
    71919 wonderer
    Hung like a My Little Pony
    pi_51864502
    quote:
    Op donderdag 26 juli 2007 20:12 schreef Geqxon het volgende:

    [..]

    Je hebt het hier maar 1 keer nodig, dus vandaar dat ik altijd dezelfde gebruik. Dat is wat netter dan $result_topic en $result_subforum.
    Hm, maar qua performance maakt het niet uit? Ik meen me te herinneren dat ik geleerd heb dat je steeds een nieuwe variabele moet gebruiken. Maar dat is alweer zo lang geleden, misschien heb ik het mezelf wel aangeleerd omdat het ergens een keer fout ging of zo.

    Ik heb in 1999 een LAMP cursus gevolgd, daarna stage gelopen bij een internetbedrijfje waar ik alle begin leerde en daarna heb ik daar nog een tijdje gewerkt met een OO systeem dat ik niet zelf gebouwd had.

    Dus ik modder al ruim zes jaar maar een beetje aan met vallen opstaan Het werkt allemaal best maar het kan dus een stuk beter. Eigenlijk heb ik iemand nodig die samen met me door alle code gaat en hier en daar wat verbetert of me laat zien hoe het ook/beter kan.
    "Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
    "My brain is too smart for me."
    "We don't need no education." "Yes you do, you just used a double negative."
    pi_51864581
    quote:
    Op donderdag 26 juli 2007 20:08 schreef ralfie het volgende:
    ik gebruik het liefste haakjes om mijn strings op te bouwen:

    "Hallo {$gebruiker}, je hebt als naam opgegeven {$_GET['naam']}<br/>";

    sprintf vind ik een beetje overdreven om zoiets op te bouwen, maarja, whatever floats your boat...
    Voor zo iets als dit is sprintf misschien wel overdreven, maar over het algemeen is het wel iets netter. Ook wel iets waar ik waarde aan hecht in mijn code.
    pi_51865858
    quote:
    Op donderdag 26 juli 2007 20:16 schreef Farenji het volgende:

    [..]

    HTML in je code is verre van net. Het hoort er niet. Daar zijn template engines voor.
    Ook voor een functie die puur gebaseerd voor het outputten van HTML bestaat?
    pi_51865950
    quote:
    Op donderdag 26 juli 2007 20:16 schreef Farenji het volgende:
    HTML in je code is verre van net. Het hoort er niet. Daar zijn template engines voor.
    PHP is een prima template engine
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    pi_51866333
    quote:
    Op donderdag 26 juli 2007 20:56 schreef SuperRembo het volgende:

    [..]

    PHP is een prima template engine
    Het idee van een template engine die gebruik maakt van een sandbox om templates te renderen vind ik toch wat prettiger dan zelf in de gaten te houden welke variabelen er allemaal in het presentatiedeel van m'n applicatie terecht komen (white listing versus black listing van variabelen).
      donderdag 26 juli 2007 @ 21:24:36 #221
    71919 wonderer
    Hung like a My Little Pony
    pi_51866834
    Als ik met serialize() iets in een tabel wil opslaan, moet dat veld dan binary safe zijn of kan dat ook gewoon text zijn?
    "Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
    "My brain is too smart for me."
    "We don't need no education." "Yes you do, you just used a double negative."
    pi_51866955
    quote:
    Op donderdag 26 juli 2007 21:08 schreef JeRa het volgende:

    [..]

    Het idee van een template engine die gebruik maakt van een sandbox om templates te renderen vind ik toch wat prettiger dan zelf in de gaten te houden welke variabelen er allemaal in het presentatiedeel van m'n applicatie terecht komen (white listing versus black listing van variabelen).
    Ja, een template engin kan best handig zijn, afhankelijk van de grootte van het project. Het was vooral een opmerking om aan te geven dat een functie die wat html terug geeft niet per definitie "niet netjes" is.
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    pi_51867176
    quote:
    Op donderdag 26 juli 2007 21:24 schreef wonderer het volgende:
    Als ik met serialize() iets in een tabel wil opslaan, moet dat veld dan binary safe zijn of kan dat ook gewoon text zijn?
    Dat ligt eraan wat je serializet. Alle taalelementen van PHP zijn zonder meer in een ASCI-compatible veld op te slaan, maar als jij variabelen met binary data gaat serializen kan het een heel goed idee zijn om een binary safe veld te gebruiken. Sterker nog, ik raad je aan om een binary veld te gebruiken, puur omdat je verder geen character sets oid nodig hebt voor het resultaat van een serialize()
      donderdag 26 juli 2007 @ 21:38:43 #224
    71919 wonderer
    Hung like a My Little Pony
    pi_51867322
    quote:
    Op donderdag 26 juli 2007 21:34 schreef JeRa het volgende:

    [..]

    Dat ligt eraan wat je serializet. Alle taalelementen van PHP zijn zonder meer in een ASCI-compatible veld op te slaan, maar als jij variabelen met binary data gaat serializen kan het een heel goed idee zijn om een binary safe veld te gebruiken. Sterker nog, ik raad je aan om een binary veld te gebruiken, puur omdat je verder geen character sets oid nodig hebt voor het resultaat van een serialize()
    Waarschijnlijk een stel arrays (ik sla nu arrays als string met delimiters op, dan is een ge-serialize-de toch wel een stukkie sneller, in plaats van explode dit en join dat enzo) maar als het verder niet uitmaakt, kan ik het net zo goed in binary doen. Met de hand aanpassen in bijv. phpMyAdmin schiet toch niet op.
    "Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
    "My brain is too smart for me."
    "We don't need no education." "Yes you do, you just used a double negative."
      donderdag 26 juli 2007 @ 21:39:21 #225
    71919 wonderer
    Hung like a My Little Pony
    pi_51867356
    Goh, ik leer zoveel vandaag

    Nou nog allemaal toepassen
    "Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
    "My brain is too smart for me."
    "We don't need no education." "Yes you do, you just used a double negative."
    pi_51867405
    quote:
    Op donderdag 26 juli 2007 21:08 schreef JeRa het volgende:

    [..]

    Het idee van een template engine die gebruik maakt van een sandbox om templates te renderen vind ik toch wat prettiger dan zelf in de gaten te houden welke variabelen er allemaal in het presentatiedeel van m'n applicatie terecht komen (white listing versus black listing van variabelen).
    Hoe moet ik dat black/whitelisten van variablen zien? Zit me af te vragen hoe je zoiets zou doen. Of bedoel je dat je de values van de variablen sanitized?
    pi_51867530
    quote:
    Op donderdag 26 juli 2007 21:40 schreef slakkie het volgende:

    [..]

    Hoe moet ik dat black/whitelisten van variablen zien? Zit me af te vragen hoe je zoiets zou doen. Of bedoel je dat je de values van de variablen sanitized?
    De scheiding tussen je model in PHP en je view (óók in PHP) vervaagt doordat je voor een goede overgang tussen de twee moet zorgen. Zo kan het dus het geval zijn dat er een losse variabele die je in je model hebt gebruikt terugvindt in je view et vice versa. Door een template engine te gebruiken (zoals Smarty) begin je, waar je het view dan ook aanspreekt in je model, met een lege sandbox waarin je variabelen kunt toevoegen. Die sandbox kun je vervolgens ook netjes debuggen. Ik zie zoiets als preventief fouten voorkomen
      donderdag 26 juli 2007 @ 22:10:21 #228
    84926 WyriHaximus
    Release the hounds smithers!
    pi_51868608
    quote:
    Op donderdag 26 juli 2007 21:43 schreef JeRa het volgende:

    [..]

    De scheiding tussen je model in PHP en je view (óók in PHP) vervaagt doordat je voor een goede overgang tussen de twee moet zorgen. Zo kan het dus het geval zijn dat er een losse variabele die je in je model hebt gebruikt terugvindt in je view et vice versa. Door een template engine te gebruiken (zoals Smarty) begin je, waar je het view dan ook aanspreekt in je model, met een lege sandbox waarin je variabelen kunt toevoegen. Die sandbox kun je vervolgens ook netjes debuggen. Ik zie zoiets als preventief fouten voorkomen
    Precies . Template engines besparen je zo veel werk. o.a. omdat je heel erg makkelijk designs en indelingen kunt veranderen etc zonder je code te moeten aanpassen .
    phluphy for president!
    pi_51868857
    Ik werk met hobbyprojectjes niet met templates. Meestal gewoon eerst de data uit MySQL ophalen, dan HTML (buiten de PHP tags), en waar nodig bijvoorbeeld:

    1
    2
    3
    4
    5
    <?php
    <select name="user_timezone">
    echo
    drawDropdownItems($timezone_array,$user['Timezone']);
    </
    select>
    ?>


    Voor kleinschalige projecten toch niet al te fout?
      donderdag 26 juli 2007 @ 22:22:53 #230
    71919 wonderer
    Hung like a My Little Pony
    pi_51869186
    quote:
    Op donderdag 26 juli 2007 22:10 schreef WyriHaximus het volgende:

    [..]

    Precies . Template engines besparen je zo veel werk. o.a. omdat je heel erg makkelijk designs en indelingen kunt veranderen etc zonder je code te moeten aanpassen .
    Daar hebben ze toch CSS voor uitgevonden?

    template engines doe ik wel voor versie 4 van deze site. Zoiets als geqxon doe ik ook regelmatig, maar alleen als ik die bepaalde dropdown vaker dan eenmaal nodig heb.
    "Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
    "My brain is too smart for me."
    "We don't need no education." "Yes you do, you just used a double negative."
    pi_51871178
    quote:
    Op donderdag 26 juli 2007 20:56 schreef SuperRembo het volgende:

    [..]

    PHP is een prima template engine
    Meer is het eigenlijk ook niet he.
      donderdag 26 juli 2007 @ 23:11:33 #232
    84926 WyriHaximus
    Release the hounds smithers!
    pi_51871255
    quote:
    Op donderdag 26 juli 2007 22:22 schreef wonderer het volgende:

    [..]

    Daar hebben ze toch CSS voor uitgevonden?

    template engines doe ik wel voor versie 4 van deze site. Zoiets als geqxon doe ik ook regelmatig, maar alleen als ik die bepaalde dropdown vaker dan eenmaal nodig heb.
    Niet alles kan met CSS . Maar als je echt dat kant op wil dat je document alleen maar data bestaat en design in andere dan moet je eens naar XML en XLST (ofzo) kijken . Mooi voorbeeldje daar van is me wow char in de armory van blizzard:
    http://armory.wow-europe.com/character-sheet.xml?r=Skullcrusher&n=Wyrihaximus
    phluphy for president!
      donderdag 26 juli 2007 @ 23:19:31 #233
    63192 ursel
    "Het Is Hier Fantastisch!
    pi_51871499
    quote:
    Op donderdag 26 juli 2007 23:11 schreef WyriHaximus het volgende:

    [..]

    Niet alles kan met CSS . Maar als je echt dat kant op wil dat je document alleen maar data bestaat en design in andere dan moet je eens naar XML en XLST (ofzo) kijken . Mooi voorbeeldje daar van is me wow char in de armory van blizzard:
    http://armory.wow-europe.com/character-sheet.xml?r=Skullcrusher&n=Wyrihaximus
    Begreep juist tijdens mijn cursus dat XSLT het 2 jaar geleden leek te worden, maar dat het niet on voldoen aan de verwachtingen en dat Smarty die plaats nu heeft ingenomen. In het boek staat dan nog wel XSLT beschreven, maar is uit de cursus zelf geschrapt en vervangen door Smarty..

    XML daarentegen is er nog wel..
      donderdag 26 juli 2007 @ 23:42:38 #234
    84926 WyriHaximus
    Release the hounds smithers!
    pi_51872283
    quote:
    Op donderdag 26 juli 2007 23:19 schreef ursel het volgende:

    [..]

    Begreep juist tijdens mijn cursus dat XSLT het 2 jaar geleden leek te worden, maar dat het niet on voldoen aan de verwachtingen en dat Smarty die plaats nu heeft ingenomen. In het boek staat dan nog wel XSLT beschreven, maar is uit de cursus zelf geschrapt en vervangen door Smarty..

    XML daarentegen is er nog wel..
    Tsja XSLT is gewoon nog traag. Smarty (en andere template engines) is stuk rapper is mijn ervaring . Daar tegenover staat is dat XSLT gewoon erg tof is .
    phluphy for president!
      vrijdag 27 juli 2007 @ 01:03:09 #235
    71919 wonderer
    Hung like a My Little Pony
    pi_51874719
    XML heb ik op school nog gehad.

    Maar 't is allemaal niet zo'n halszaak. Ik maak dingen vooral voor mezelf. Als ik echt ingewikkelde applicaties voor iemand anders zou maken en daar geld mee zou verdienen, zou het wat anders zijn. Met dit soort hobbydingen leer ik weer veel bij dat ik later kan gebruiken, maar om er echt mijn werk van te maken kom ik toch een en ander tekort, helaas.
    "Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
    "My brain is too smart for me."
    "We don't need no education." "Yes you do, you just used a double negative."
    pi_51879569
    Het maakt ook weinig uit als je gewoon dingen voor jezelf maakt idd. Maar zodra je applicaties groter worden dan een paar scriptjes die bij elkaar horen dan wordt het iets anders dan "het hoort zo" maar dan wordt het "als je het niet doet kom je uiteindelijk zwaar in de shit". Ik heb een keer een grote applicatie moeten onderhouden waarvan de php vol stond met (non-css) html incl presentatietags. En toen ging het bedrijf over op een nieuwe huisstijl dus moest alles omgegooid worden. Dat was echt kut met peren vooral omdat het toen al veel te laat was om alsnog op een template engine over te gaan.
      vrijdag 27 juli 2007 @ 12:24:37 #237
    84926 WyriHaximus
    Release the hounds smithers!
    pi_51883045
    quote:
    Op vrijdag 27 juli 2007 10:18 schreef Farenji het volgende:
    Het maakt ook weinig uit als je gewoon dingen voor jezelf maakt idd. Maar zodra je applicaties groter worden dan een paar scriptjes die bij elkaar horen dan wordt het iets anders dan "het hoort zo" maar dan wordt het "als je het niet doet kom je uiteindelijk zwaar in de shit". Ik heb een keer een grote applicatie moeten onderhouden waarvan de php vol stond met (non-css) html incl presentatietags. En toen ging het bedrijf over op een nieuwe huisstijl dus moest alles omgegooid worden. Dat was echt kut met peren vooral omdat het toen al veel te laat was om alsnog op een template engine over te gaan.
    En alleen daarom is het een goed idee om een template engine te gebruiken . Ook voor kleine projectjes is het erg handig, tenzij je met 1 pagina scripts werkt .
    phluphy for president!
    pi_51887551
    Hoe goed zijn jullie met mod_rewrite?

    Ik probeer namelijk een of meer characters in m'n URL te replacen voordat ik em ga rewriten ( / (slash) door _ (underscore). Maar daar lijkt mod_rewrite niet zo op gebouwd te zijn. Nu is het mogelijk met rewriteMap, maar daar heb ik weer een apart txt-bestandje voor nodig, en dat vind ik niet mooi

    Kan dit makkelijker? Bij voorkeur in m'n .htaccess
    pi_51888171
    quote:
    Op vrijdag 27 juli 2007 10:18 schreef Farenji het volgende:
    Het maakt ook weinig uit als je gewoon dingen voor jezelf maakt idd. Maar zodra je applicaties groter worden dan een paar scriptjes die bij elkaar horen dan wordt het iets anders dan "het hoort zo" maar dan wordt het "als je het niet doet kom je uiteindelijk zwaar in de shit". Ik heb een keer een grote applicatie moeten onderhouden waarvan de php vol stond met (non-css) html incl presentatietags. En toen ging het bedrijf over op een nieuwe huisstijl dus moest alles omgegooid worden. Dat was echt kut met peren vooral omdat het toen al veel te laat was om alsnog op een template engine over te gaan.
    Herkenbaar. Sindsdien gebruik ik ten allen tijde mijn eigen template engine, en nog belangrijker: ik zet ALLES, maar dan ook ALLES wat enigzins configureerbaar is in constanten.
      vrijdag 27 juli 2007 @ 15:22:21 #240
    84926 WyriHaximus
    Release the hounds smithers!
    pi_51888302
    quote:
    Op vrijdag 27 juli 2007 15:00 schreef Xcalibur het volgende:
    Hoe goed zijn jullie met mod_rewrite?

    Ik probeer namelijk een of meer characters in m'n URL te replacen voordat ik em ga rewriten ( / (slash) door _ (underscore). Maar daar lijkt mod_rewrite niet zo op gebouwd te zijn. Nu is het mogelijk met rewriteMap, maar daar heb ik weer een apart txt-bestandje voor nodig, en dat vind ik niet mooi

    Kan dit makkelijker? Bij voorkeur in m'n .htaccess
    Heb je voorbeeldje van wat naar wat je wilt hebben?
    phluphy for president!
    pi_51889563
    quote:
    Op vrijdag 27 juli 2007 15:19 schreef Scorpie het volgende:

    [..]

    Herkenbaar. Sindsdien gebruik ik ten allen tijde mijn eigen template engine, en nog belangrijker: ik zet ALLES, maar dan ook ALLES wat enigzins configureerbaar is in constanten.
    Daar heb ik een settings-tabel in de database voor. Waarbij alles via getSetting($instelling) op te vragen is.
    pi_51889593
    Gewoon alle slashes vervangen door underscores :)

    1category-1/subcategory-2/subsubcategorie-3 -> category-1_subcategory-2_subsubcategorie-3


    De verdere mod_rewrite afhandeling werkt prima...
    pi_51889642
    quote:
    Op vrijdag 27 juli 2007 15:51 schreef Geqxon het volgende:
    Daar heb ik een settings-tabel in de database voor. Waarbij alles via getSetting($instelling) op te vragen is.
    Ik gebruik liever een configfile, omdat je niet altijd een database hebt, en de configvariabelen over het algemeen niet veranderen
    pi_51890183
    quote:
    Op vrijdag 27 juli 2007 15:53 schreef Xcalibur het volgende:

    [..]

    Ik gebruik liever een configfile, omdat je niet altijd een database hebt, en de configvariabelen over het algemeen niet veranderen
    Mwa, userfriendly wil ik het niet noemen, om over de snelheid maar te zwijgen. Het is toch niet zoveel werk om een formulier in elkaar te knutsellen waar gebruikers deze opties kunnen wijzigen?
      vrijdag 27 juli 2007 @ 16:23:03 #245
    84926 WyriHaximus
    Release the hounds smithers!
    pi_51890735
    quote:
    Op vrijdag 27 juli 2007 15:52 schreef Xcalibur het volgende:
    Gewoon alle slashes vervangen door underscores
    [ code verwijderd ]

    De verdere mod_rewrite afhandeling werkt prima...
    Hmmm dit moet nog voor mod_rewrite gebeuren of tijdens PHP of nog voor mod_rewrite, want dat was me nog niet helemaal duidelijk . * WyriHaximus is niet echt wakker vandaag
    phluphy for president!
    pi_51891949
    quote:
    Op vrijdag 27 juli 2007 15:53 schreef Xcalibur het volgende:

    [..]

    Ik gebruik liever een configfile, omdat je niet altijd een database hebt, en de configvariabelen over het algemeen niet veranderen
    Ik gebruik het allebei, configfile voor de statische instellingen zoals database gegevens, en een tabel in de db voor de dynamische instellingen die aangepast moeten kunnen worden. En beide lees ik in in een Config class wat een singleton is die overal aan te roepen is.
    pi_51892049
    quote:
    Op vrijdag 27 juli 2007 16:56 schreef Farenji het volgende:

    [..]

    Ik gebruik het allebei, configfile voor de statische instellingen zoals database gegevens, en een tabel in de db voor de dynamische instellingen die aangepast moeten kunnen worden. En beide lees ik in in een Config class wat een singleton is die overal aan te roepen is.
    Een config class om de configuratie op te vragen? Voor iets dat in vijf regeltjes code kan?
    pi_51892079
    quote:
    Op vrijdag 27 juli 2007 16:08 schreef Geqxon het volgende:

    [..]

    Mwa, userfriendly wil ik het niet noemen, om over de snelheid maar te zwijgen. Het is toch niet zoveel werk om een formulier in elkaar te knutsellen waar gebruikers deze opties kunnen wijzigen?
    Een configfile lees je natuurlijk maar 1 keer in, bij initialisatie, en dan stop je alles in een object waarna je het gewoon uit het geheugen trekt. Dat is echt geen performanceissue... van sommige configvars wil je toch niet dat users ze kunnen zien laat staan wijzigen.
    pi_51892196
    quote:
    Op vrijdag 27 juli 2007 16:59 schreef Geqxon het volgende:

    [..]

    Een config class om de configuratie op te vragen? Voor iets dat in vijf regeltjes code kan?
    Die config class hoeft ook niet groot te zijn. Maar je wil het wel scheiden in een object, in een aparte namespace dus, met een uniforme interface om vars uit te lezen, en dynamische vars aan te passen.
    Ik spreek je nog wel eens als je echt een applicatie van formaat hebt gemaakt.
    pi_51892286
    Ik zit ook maar te grappen.

    Ben ik trouwens de enige die binnen PHP niet Object Oriented werkt? Ik vind het, mede door het 'loosely typed' karakter van PHP, en het feit dat PHP met een totaal andere gedachtengang ontwikkeld is, nog niet handig werken.
    pi_51892341
    quote:
    Op vrijdag 27 juli 2007 16:08 schreef Geqxon het volgende:

    [..]

    Mwa, userfriendly wil ik het niet noemen,
    Dat kan net zo userfriendly zijn als via een database, het ligt maar net aan de vereisten.
    quote:
    om over de snelheid maar te zwijgen.
    Wat? Ga jij nu beweren dat een include trager is dan alle opties via een functie uit de database te trekken?
      vrijdag 27 juli 2007 @ 17:12:34 #252
    84926 WyriHaximus
    Release the hounds smithers!
    pi_51892442
    quote:
    Op vrijdag 27 juli 2007 16:59 schreef Geqxon het volgende:

    [..]

    Een config class om de configuratie op te vragen? Voor iets dat in vijf regeltjes code kan?
    1 config class in 5 regels .

    1
    2
    3
    4
    5
    6
    7
    <?php
    class config_class
    {
        function 
    __construct() { self::_settings unserialize(file_get_contents('config file')); }
        function 
    get_settings($index) {  return self::_settings[$key]; }
    }
    ?>
    phluphy for president!
    pi_51892477
    quote:
    Op vrijdag 27 juli 2007 17:09 schreef JeRa het volgende:

    Wat? Ga jij nu beweren dat een include trager is dan alle opties via een functie uit de database te trekken?
    Elke keer hardeschijfactiviteit versus elke keer databaseactiviteit? Ik gok dat een database sneller werkt. Gok ik.
      vrijdag 27 juli 2007 @ 17:18:58 #254
    84926 WyriHaximus
    Release the hounds smithers!
    pi_51892612
    quote:
    Op vrijdag 27 juli 2007 17:13 schreef Geqxon het volgende:

    [..]

    Elke keer hardeschijfactiviteit versus elke keer databaseactiviteit? Ik gok dat een database sneller werkt. Gok ik.
    I/O actie:
  • Hit naar het bestand
  • Bestand in 1 ruk uitlezen

    SQL:
  • Connectie openen naar de server
  • Autenticeren
  • Database selecteren
  • Query opdracht geven
  • - Hit naar de tabel bestanden, mits het niet nog in de cache staat
  • - Door het bestand gaan zoeken
  • - Results samen stellen en dusnoods sorteren
  • Results van de database ontvagen


    Weet niet zeker maar gok dat database toch trager is...
  • phluphy for president!
    pi_51892626
    quote:
    Op vrijdag 27 juli 2007 17:13 schreef Geqxon het volgende:

    [..]

    Elke keer hardeschijfactiviteit versus elke keer databaseactiviteit? Ik gok dat een database sneller werkt. Gok ik.
    Net zoals bij een database heb je maar één keer schijfoverhead doordat daarna de block cache de read kan opvangen. Verder heb je deze additionele overhead bij de database:
    1) Het openen van de verbinding (TCP is trager dan een lokale socket, bv)
    2) Het parsen van de query
    3) Het plannen van de query
    4) Het checken van de rechten op de betrokken relations (database, tabellen, kolommen)
    5) De resultset teruggeven en intern door PHP naar de juiste variabelen laten omzetten
    pi_51892672
    quote:
    Op vrijdag 27 juli 2007 17:18 schreef WyriHaximus het volgende:

    [..]

    I/O actie:
  • Hit naar het bestand
  • Bestand in 1 ruk uitlezen

    SQL:
  • Connectie openen naar de server
  • Autenticeren
  • Database selecteren
  • Query opdracht geven
  • - Hit naar de tabel bestanden
  • - Door het bestand gaan zoeken
  • - Results samen stellen en dusnoods sorteren
  • Results van de database ontvagen


    Weet niet zeker maar gok dat database toch trager is...
  • bij je I/O actie vergeet je alleen dat dit door de HD moet gebeuren, een database actie zal in het geheugen van de server gebeuren (die ,na een tijdje, ook wel weer I/O heeft maar toch)
      vrijdag 27 juli 2007 @ 17:23:08 #257
    84926 WyriHaximus
    Release the hounds smithers!
    pi_51892716
    quote:
    Op vrijdag 27 juli 2007 17:20 schreef mschol het volgende:

    [..]

    bij je I/O actie vergeet je alleen dat dit door de HD moet gebeuren, een database actie zal in het geheugen van de server gebeuren (die ,na een tijdje, ook wel weer I/O heeft maar toch)
    Heb het er al bij gezet . (Database stuk dan.) Daarnaast cached je HDD ook het 1 en ander .
    phluphy for president!
    pi_51892720
    quote:
    Op vrijdag 27 juli 2007 17:20 schreef mschol het volgende:

    [..]

    bij je I/O actie vergeet je alleen dat dit door de HD moet gebeuren, een database actie zal in het geheugen van de server gebeuren (die ,na een tijdje, ook wel weer I/O heeft maar toch)
    Die database zal in eerste instantie toch echt iets van de harde schijf moeten halen, en na de eerste I/O-actie bij een include zit de boel in de block cache
    pi_51893284
    quote:
    Op vrijdag 27 juli 2007 15:51 schreef Geqxon het volgende:

    [..]

    Daar heb ik een settings-tabel in de database voor. Waarbij alles via getSetting($instelling) op te vragen is.
    En je database settings, waar sla je die op?

    Ik heb een Settings klasse die gebruik ik zo:

    1
    2
    3
    4
    5
    6
    7
    <?php
    $settings 
    Settings::getInstance();
    $settings->import('config.ini');

    $hostname $settings->get('database.hostname');
    $username $settings->get('database.username');
    ?>


    En die config.ini kan ik weer wijzigen via een formulier. Werkt handig.
    pi_51900143
    Om weer op het OO puntje uit te komen: super-muffin hierboven gebruik bijvoorbeeld een setting-classe. Maar is je complete systeem / website dan ook Object Oriented?
      zaterdag 28 juli 2007 @ 05:25:12 #261
    71919 wonderer
    Hung like a My Little Pony
    pi_51907531
    Misschien vindt iemand het leuk om hier mee te spelen, ik krijg mijn brein er niet omheen gevouwen op dit moment.

    Ik heb alle menu-items in een tabel zitten. Het veld link_parent_id vertelt van welke sectie het een onderdeel is (de bovenste laag is natuurlijk alleen parent, dus daar is ie leeg) en het veld link_level geeft aan hoe diep ie gaat.

    Nu wil ik een recursieve functie die de tabel uitleest en elk menu-item op de juiste plek zet, en met de juiste stijl zodat het visueel ook in orde komt (<li class="menu_level_'.$link_level.'"> voldoet daar prima);

    Ik weet niet hoeveel levels er zijn (nou ja, op dit moment wel, en ik denk ook niet dat het echt gaat veranderen, maar je weet nooit en ik wil geen while-loopjes hoeven blijven toevoegen). Hij moet zichzelf dus aanroepen tot alles klaar is.

    Iemand enig idee? Twee functies, denk ik? Eentje voor de buitenkant ($menu='<ul>'; $menu.=make_inner_menu($level); $menu.='</ul>';

    En dan make_inner_menu($level) {
    select from menu where level = $level;
    while(result){
    $menu.=style linkje naam;
    $menu.=make_inner_menu($level+1);
    }
    return $menu;

    ?

    Of wordt dat een oneindige loop? Of is het anderszins nogal dom om het zo te doen?
    "Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
    "My brain is too smart for me."
    "We don't need no education." "Yes you do, you just used a double negative."
    pi_51908110
    quote:
    Op zaterdag 28 juli 2007 05:25 schreef wonderer het volgende:
    Menu uit tabel
    ok dit is misschien geen antwoord op je vraag maar mijn mening, waarom zou je een verbinding opzetten met je database voor een paar menuitems O_O, zo kan het ook?

    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
    $menu 
    =
    array(
    "item1" =>
          array (
    "subitem1" => "linkje",
                 
    "subitem2" => "linkje",
                 
    "subitem3" =>
                 array(
    "subsubitem1" => "linkje",
                       
    "subsubitem2" => "linkje"
                      
    )
                ),
          
    "item2" => "linkje",
          
    "item3" =>
          array (
    "subitem1" => "linkje",
                 
    "subitem2" => "enzovoort"
                
    )
         );

    function 
    bouwmenutje(array $menu) {
        
    $result "";
        foreach(
    $menu as $item => $submenu)
            if(
    is_array($submenu))
                
    $result .= "$item" bouwmenutje($submenu);
            else
                
    $result .= "<a href=$submenu>$item</a>";
        return 
    $result;
    }
    ?>
    pi_51908503
    quote:
    Op vrijdag 27 juli 2007 16:23 schreef WyriHaximus het volgende:
    Hmmm dit moet nog voor mod_rewrite gebeuren of tijdens PHP of nog voor mod_rewrite, want dat was me nog niet helemaal duidelijk . * WyriHaximus is niet echt wakker vandaag
    Op het moment doe ik het in PHP, maar dat vind ik niet zo'n mooie oplossing....
    Het is de bedoeling dat het in de .htaccess, vóór de rest van de mod_rewrite gaat gebeuren

    En één optie om het te doen is met RewriteMap, maar daar heb je weer een extra txt-bestandje voor nodig, en daar zit ik ook niet op te wachten
    pi_51908830
    quote:
    Op zaterdag 28 juli 2007 05:25 schreef wonderer het volgende:
    ?
    Dan moet je dus voor elk sub-menu een query uitvoeren. Ik denk dat het een stuk sneller is om alle menu items in één keer te lezen (gesorteerd op level). Met php loop je door de resultaten heen en bouw je een array van array's op (van hoog naar laag). Die plak je dan recursief aan elkaar tot het uiteindelijke menu in html.
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    pi_51909340
    quote:
    Op vrijdag 27 juli 2007 22:15 schreef Geqxon het volgende:
    Om weer op het OO puntje uit te komen: super-muffin hierboven gebruik bijvoorbeeld een setting-classe. Maar is je complete systeem / website dan ook Object Oriented?
    Jup. Alhoewel ik het systeem wel ga herschrijven voor een groot deel, maar dan ook op een OO manier.
    pi_51910371
    Ik wil XML naar SQL converteren. De meeste dingen lukken wel, maar er is een deel dat er zo uitziet:

    <item id='blabla'>
    <inside>
    <item id='pa'>
    <item id='po'>
    <item id='pe'>
    <inside>
    <item id='at'>
    </inside>
    <item id='it'>
    </inside>

    Dit moet in een db die er zo uitziet:

    pid | sid | item
    Pid is parent id, en sid is het itemnummertje.

    Dus met het voorbeeld moet het er zo uitzien:

    pid | sid | item
    1 | 102 | blabla
    blabla | 103 | pa
    blabla | 104 | po
    blabla | 105 | pe
    pe | 106 | at
    blabla | 107 | it

    Ik heb geen idee hoe ik dit moet doen, want die <inside>'s gaan heel lang door..
    Dingen met 1 value als <acc number='101'> lukken nog wel, maar dit niet
    Ideeen?

    [ Bericht 90% gewijzigd door Scriptha op 28-07-2007 12:29:25 ]
    pi_51911171
    Je moet de hele lijst in een loop afgaan en in een variabele bijhouden in welke scoop je zit, maw binnen welk <inside> blok.. Aangezien die blokken meerdere niveaus diep kunnen gaan kun je daar het beste een array voor gebruiken waar je bij een <inside> een element aan toevoegt en bij </inside> deze weer verwijdert. In pseudocode:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    var $scope = new Array()
    var $lastid = ""
    $scope[0] = ...   # volgummer of initiele waarde

    for each $elem in $elems {
       if $elem == <item> {
          insert into table (pid, item) values ($scope[0], $elem->id)
          $lastid = $elem->id
       } else if $elem == <inside> {
          unshift $scope, $lastid   # voeg nieuw element op pos 0 toe
       } else if $elem == </inside> {
          shift $scope   # verwijder element op pos 0
       }
    }


    [ Bericht 3% gewijzigd door Farenji op 28-07-2007 13:10:55 ]
      zaterdag 28 juli 2007 @ 15:29:38 #268
    84926 WyriHaximus
    Release the hounds smithers!
    pi_51913593
    quote:
    Op vrijdag 27 juli 2007 22:15 schreef Geqxon het volgende:
    Om weer op het OO puntje uit te komen: super-muffin hierboven gebruik bijvoorbeeld een setting-classe. Maar is je complete systeem / website dan ook Object Oriented?
    In mijn situatie is alles OO . Maakt het makkelijker en overzichtelijker om bepaalde blokken die iets doen (bijvoorbeeld mijn wow screenshots weergeven op verschillende manieren) appart te houden .
    quote:
    Op zaterdag 28 juli 2007 10:19 schreef Xcalibur het volgende:

    [..]

    Op het moment doe ik het in PHP, maar dat vind ik niet zo'n mooie oplossing....
    Het is de bedoeling dat het in de .htaccess, vóór de rest van de mod_rewrite gaat gebeuren

    En één optie om het te doen is met RewriteMap, maar daar heb je weer een extra txt-bestandje voor nodig, en daar zit ik ook niet op te wachten
    Ik zou het dan gewoon bij PHP houden . Doe het zelf ook zo en bevalt prima . RewriteMap kan ook maar dan heb je je extra bestandje .
    phluphy for president!
    pi_51915040
    ja, maar dat was nou net niet m'n vraag
      zaterdag 28 juli 2007 @ 16:46:33 #270
    84926 WyriHaximus
    Release the hounds smithers!
    pi_51915440
    quote:
    Op zaterdag 28 juli 2007 16:30 schreef Xcalibur het volgende:
    ja, maar dat was nou net niet m'n vraag
    Je kunt het trouwens toch ook met mod_rewrite doen gewoon? Alleen moet je dan tot vrij diep gaan genereren . (ff voorbeeldje maken)
    phluphy for president!
      zaterdag 28 juli 2007 @ 16:56:15 #271
    62215 qu63
    ..de tijd drinkt..
    pi_51915715
    quote:
    Op zaterdag 28 juli 2007 16:46 schreef WyriHaximus het volgende:

    [..]

    Je kunt het trouwens toch ook met mod_rewrite doen gewoon? Alleen moet je dan tot vrij diep gaan genereren . (ff voorbeeldje maken)
    deze pagina doet het neit echt trouwens bij je
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
      zaterdag 28 juli 2007 @ 17:00:09 #272
    84926 WyriHaximus
    Release the hounds smithers!
    pi_51915814
    quote:
    Op zaterdag 28 juli 2007 16:56 schreef qu63 het volgende:

    [..]

    deze pagina doet het neit echt trouwens bij je
    Heb me forum verplaatst . En was dat ff vergeten ja .
    phluphy for president!
    pi_51916496
    quote:
    Op zaterdag 28 juli 2007 16:46 schreef WyriHaximus het volgende:
    Je kunt het trouwens toch ook met mod_rewrite doen gewoon? Alleen moet je dan tot vrij diep gaan genereren . (ff voorbeeldje maken)
    Ja, dat deed ik eerst, tot 3 niveau's.... tot ik tegen niveau 4 aanliep, etc.
    En ik ben nou met een webshop bezig waar het aantal niveau's in principe onbeperkt is... en dat wil ik niet gaan voorbereiden
      zaterdag 28 juli 2007 @ 17:38:20 #274
    84926 WyriHaximus
    Release the hounds smithers!
    pi_51916956
    quote:
    Op zaterdag 28 juli 2007 17:23 schreef Xcalibur het volgende:

    [..]

    Ja, dat deed ik eerst, tot 3 niveau's.... tot ik tegen niveau 4 aanliep, etc.
    En ik ben nou met een webshop bezig waar het aantal niveau's in principe onbeperkt is... en dat wil ik niet gaan voorbereiden
    Het is toch niet zo bar moeilijk om een scripte te maken wat het tot op 500 niveau's genereerd voor je?
    phluphy for president!
      zaterdag 28 juli 2007 @ 17:38:57 #275
    62215 qu63
    ..de tijd drinkt..
    pi_51916969
    quote:
    Op zaterdag 28 juli 2007 17:00 schreef WyriHaximus het volgende:

    [..]

    Heb me forum verplaatst . En was dat ff vergeten ja .
    loopt nog steeds niet hoor
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
      zaterdag 28 juli 2007 @ 17:46:02 #276
    84926 WyriHaximus
    Release the hounds smithers!
    pi_51917147
    quote:
    Op zaterdag 28 juli 2007 17:38 schreef qu63 het volgende:

    [..]

    loopt nog steeds niet hoor
    Nu wel .
    phluphy for president!
      zaterdag 28 juli 2007 @ 17:48:06 #277
    62215 qu63
    ..de tijd drinkt..
    pi_51917198
    quote:
    Op zaterdag 28 juli 2007 17:46 schreef WyriHaximus het volgende:

    [..]

    Nu wel .
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
      zaterdag 28 juli 2007 @ 17:51:37 #278
    62215 qu63
    ..de tijd drinkt..
    pi_51917278
    quote:
    Op zaterdag 28 juli 2007 17:48 schreef qu63 het volgende:

    [..]

    of toch niet:
    Fatal error: Call to undefined function: sql_addslashes() in /home/wyrihaxi/domains/wyrihaximus.net/public_html/fok/wow/do_edit.php on line 42
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
    pi_51917599
    Als het het via xml_parse doet en een event-driven afhandeling opzet, dan kan je relatief eenvoudig een stack met parent id's bijhouden toch, middels de open_element en close_element functies.
      zaterdag 28 juli 2007 @ 18:09:43 #280
    84926 WyriHaximus
    Release the hounds smithers!
    pi_51917697
    quote:
    Op zaterdag 28 juli 2007 17:51 schreef qu63 het volgende:

    [..]

    of toch niet:
    Fatal error: Call to undefined function: sql_addslashes() in /home/wyrihaxi/domains/wyrihaximus.net/public_html/fok/wow/do_edit.php on line 42
    Dankje , gefixed nu . Nu ff wat onderhouds scripts draaien .
    phluphy for president!
    pi_51919175
    quote:
    Op zaterdag 28 juli 2007 15:29 schreef WyriHaximus het volgende:

    [..]

    In mijn situatie is alles OO . Maakt het makkelijker en overzichtelijker om bepaalde blokken die iets doen (bijvoorbeeld mijn wow screenshots weergeven op verschillende manieren) appart te houden .
    Dus om maar een voorbeeld van deze pagina te geven, elke smilie is een object, elke post is een object, en elk stukje GUI is een object? En elke keer als je de pagina opvraagt bouw je dat compleet op, waarbij de data uit een ODBMS komt?
      zaterdag 28 juli 2007 @ 19:32:00 #282
    84926 WyriHaximus
    Release the hounds smithers!
    pi_51919670
    quote:
    Op zaterdag 28 juli 2007 19:12 schreef Geqxon het volgende:

    [..]

    Dus om maar een voorbeeld van deze pagina te geven, elke smilie is een object, elke post is een object, en elk stukje GUI is een object? En elke keer als je de pagina opvraagt bouw je dat compleet op, waarbij de data uit een ODBMS komt?
    Zo OO nog niet. Ga wel die kant op . Heb gewoon een set classes die alles afhandelen (templates, database connectivitie, cache, configuratie). Dus om ff het zelfde voorbeeld te pakken: de viewtopic class haalt de data uit de database met een query via de database class haalt het bericht door de bbcode class (voor de bbcode en smilies) waarna het het door stuurt naar de template class voor de weer gave. Op die manier OO .
    phluphy for president!
    pi_51919766
    quote:
    Op zaterdag 28 juli 2007 19:12 schreef Geqxon het volgende:

    [..]

    Dus om maar een voorbeeld van deze pagina te geven, elke smilie is een object, elke post is een object, en elk stukje GUI is een object? En elke keer als je de pagina opvraagt bouw je dat compleet op, waarbij de data uit een ODBMS komt?
    Nee, zo moet je het niet zien.

    Een OO applicatie bestaat idealiter uit 3 delen: model, view en controller.

    Het model is alle data voor je applicatie, inclusief de interface om die data op te halen en te manipuleren. Je hebt daar bijv een Database class om te praten met je database. Het model zijn ook je objecten die opgebouwd worden uit / gebruik maken van die data, zoals bijv je Settings class, een Page classe, een User class etc.

    De view is alles wat de gebruiker ziet, de output van je applicatie. Voor webapplicaties is dat meestal de template engine. De view is "dom", in de zin dat het gewoon weergeeft wat ie aangereikt krijgt en geen weet heeft van applicatielogica. Het is gewoon een object waar je variabelen aan hangt, en deze worden op de juiste plek in de html weergegeven.

    Die applicatielogica zit in het controller gedeelte. Deze maakt de objecten uit het model aan, doet er het een en ander mee, en geeft ze door aan de view die het netjes op het scherm tovert. Alle gebruikersinvoer komt weer bij de controller terecht die er weer op reageert. Het is zeg maar de tussenpersoon tussen gebruiker en data.

    OO programmeren betekent niet dat je over *alles* als objecten gaat denken, in het geval van Fok is elke post gewoon een grote string die in de database staat. De smilies zijn geen aparte objecten maar gewoon deel van die string.
    Het is meer dat je je applicatie opdeelt in de essentiele bouwblokken, voor deze onderdelen definieer je eigenschappen en methodes. Hoe je dat doet is aan jou maar de keuze van je objectstructuur is essentieel voor de mogelijkheden van je applicatie dus daar kun je beter goed over nadenken. Daarna maak je een controller laag die de objecten die je hebt gedefinieerd tot leven te wekken, ze met elkaar kan laten samenwerken en er uiteindelijk een template object van bakt wat je aan de gebruiker toont.
    pi_51920088
    quote:
    Op zaterdag 28 juli 2007 19:35 schreef Farenji het volgende:

    [..]

    Nee, zo moet je het niet zien.

    Een OO applicatie bestaat idealiter uit 3 delen: model, view en controller.

    Het model is alle data voor je applicatie, inclusief de interface om die data op te halen en te manipuleren. Je hebt daar bijv een Database class om te praten met je database. Het model zijn ook je objecten die opgebouwd worden uit / gebruik maken van die data, zoals bijv je Settings class, een Page classe, een User class etc.

    De view is alles wat de gebruiker ziet, de output van je applicatie. Voor webapplicaties is dat meestal de template engine. De view is "dom", in de zin dat het gewoon weergeeft wat ie aangereikt krijgt en geen weet heeft van applicatielogica. Het is gewoon een object waar je variabelen aan hangt, en deze worden op de juiste plek in de html weergegeven.

    Die applicatielogica zit in het controller gedeelte. Deze maakt de objecten uit het model aan, doet er het een en ander mee, en geeft ze door aan de view die het netjes op het scherm tovert. Alle gebruikersinvoer komt weer bij de controller terecht die er weer op reageert. Het is zeg maar de tussenpersoon tussen gebruiker en data.

    OO programmeren betekent niet dat je over *alles* als objecten gaat denken, in het geval van Fok is elke post gewoon een grote string die in de database staat. De smilies zijn geen aparte objecten maar gewoon deel van die string.
    Het is meer dat je je applicatie opdeelt in de essentiele bouwblokken, voor deze onderdelen definieer je eigenschappen en methodes. Hoe je dat doet is aan jou maar de keuze van je objectstructuur is essentieel voor de mogelijkheden van je applicatie dus daar kun je beter goed over nadenken. Daarna maak je een controller laag die de objecten die je hebt gedefinieerd tot leven te wekken, ze met elkaar kan laten samenwerken en er uiteindelijk een template object van bakt wat je aan de gebruiker toont.
    MVC of niet, dan programmeer je in mijn opinie niet OO. Zelf heb ik diverse projecten met Java gedaan, waar basicly alles een object is. In Java zouden de smilies die op het moment onder mijn reply-message staan een object zijn, evenals het Preview en Invoeren knopje. Allemaal deel van de UI-laag.

    In that case geef blijf ik wat PHP betreft liever bij "normaal" programmeren, aangezien ik liever geen mix van diverse programmeermanieren gebruik. Een databaseclass is leuk, als de rest van je software ook uit classes bestaat, en je niet stiekem ergens sjoemelt en je direct iets uit de database naar de gebruiker print.

    Om een voorbeeld te geven, ik heb zoals elke student een bankproject moeten maken. En dan is dus wel alles een object. Geld overboeken doe je niet door in de database te klooien, nee, dat doe je een een Transactie-object aan te maken, die zelf de verantwoordelijkheid van de transactie draagt, en de rest van de transactie regelt.
    pi_51920609
    quote:
    Op zaterdag 28 juli 2007 19:47 schreef Geqxon het volgende:

    [..]

    MVC of niet, dan programmeer je in mijn opinie niet OO. Zelf heb ik diverse projecten met Java gedaan, waar basicly alles een object is. In Java zouden de smilies die op het moment onder mijn reply-message staan een object zijn, evenals het Preview en Invoeren knopje. Allemaal deel van de UI-laag.
    Soms is dat handig. Soms absoluut niet. Als fok zo was opgebouwd dan hadden ze er wel 2 keer zoveel servers voor mogen inzetten want dat genereert een enorme hoeveelheid overbodige overhead. In Java wordt het OO denken heel ver doorgevoerd, zelfs een string is een object, in veel andere talen is een string gewoon een rijtje karakters afgesloten door een null character. Je bent als ontwerper vrij om te bepalen in hoeverre je de OO gedachte doorvoert. Als je het te ver doorvoert kan je helemaal verzuipen in de objecten, doe je het niet ver genoeg dan krijg je ongestructureerde en moeilijker onderhoudbare code.
    Als je een gezicht beschrijft aan de hand van de kenmerken van de onderdelen zoals ogen neus en mond etc dan is dat duidelijker en zinvoller dan wanneer je een gezicht beschrijft aan de hand van de onderlinge samenhang van alle lichaamscellen in het gezicht.
    quote:
    In that case geef blijf ik wat PHP betreft liever bij "normaal" programmeren, aangezien ik liever geen mix van diverse programmeermanieren gebruik. Een databaseclass is leuk, als de rest van je software ook uit classes bestaat, en je niet stiekem ergens sjoemelt en je direct iets uit de database naar de gebruiker print.
    Het voordeel van een database class is dat je een uniforme interface hebt die verschillende backends kan hebben. Je kan er een wrapper van maken en hiermee je applicatie onafhankelijk van de database te maken, zo kan je het zo doen dat ie zowel met MySQL als MSSQL als met XML files kan werken. Natuurlijk kun je altijd die class omzeilen maar daarmee doe je idd het idee achter OO teniet.
    quote:
    Om een voorbeeld te geven, ik heb zoals elke student een bankproject moeten maken. En dan is dus wel alles een object. Geld overboeken doe je niet door in de database te klooien, nee, dat doe je een een Transactie-object aan te maken, die zelf de verantwoordelijkheid van de transactie draagt, en de rest van de transactie regelt.
    Inderdaad, objecten met elk hun eigen verantwoordelijkheden en taken, netjes afgescheiden van de andere objecten. Maar het is zinloos om alle data tot in de oneindigheid verder op te delen in objecten. Ergens moeten de objecten obhouden met object te zijn en gewoon een brok data worden.
    pi_51921739
    quote:
    Op zaterdag 28 juli 2007 20:06 schreef Farenji het volgende:

    Het voordeel van een database class is dat je een uniforme interface hebt die verschillende backends kan hebben. Je kan er een wrapper van maken en hiermee je applicatie onafhankelijk van de database te maken, zo kan je het zo doen dat ie zowel met MySQL als MSSQL als met XML files kan werken. Natuurlijk kun je altijd die class omzeilen maar daarmee doe je idd het idee achter OO teniet.
    Om puur hier op in te gaan: Is dat wel mogelijk? Is er dan niet voor elke compliceerde query een aparte functie (/method) nodig? Stel dat ik een query van een regel of zeven gebruik om de data op te halen, dan moet deze complete query in de class staan, onder een aparte functie, neem ik aan?
      zaterdag 28 juli 2007 @ 21:14:29 #287
    84926 WyriHaximus
    Release the hounds smithers!
    pi_51922268
    quote:
    Op zaterdag 28 juli 2007 20:49 schreef Geqxon het volgende:

    [..]

    Om puur hier op in te gaan: Is dat wel mogelijk? Is er dan niet voor elke compliceerde query een aparte functie (/method) nodig? Stel dat ik een query van een regel of zeven gebruik om de data op te halen, dan moet deze complete query in de class staan, onder een aparte functie, neem ik aan?
    Ja, want je geeft de SQL query aan de DBclass, deze voert hem uit en geeft de resultaten terug. Maar je kunt ook iets zoals propel gebruiken .
    phluphy for president!
    pi_51922693
    quote:
    Op zaterdag 28 juli 2007 21:14 schreef WyriHaximus het volgende:

    [..]

    Ja, want je geeft de SQL query aan de DBclass, deze voert hem uit en geeft de resultaten terug. Maar je kunt ook iets zoals propel gebruiken .
    Maar wat als je dus de SQL-query aan de DBclass doorgeeft, en je plotseling op XML-files over wilt stappen, of een totaal andere manier van storage? Meer op die manier.
      zaterdag 28 juli 2007 @ 21:41:37 #289
    84926 WyriHaximus
    Release the hounds smithers!
    pi_51922821
    quote:
    Op zaterdag 28 juli 2007 21:34 schreef Geqxon het volgende:

    [..]

    Maar wat als je dus de SQL-query aan de DBclass doorgeeft, en je plotseling op XML-files over wilt stappen, of een totaal andere manier van storage? Meer op die manier.
    Nee dat gaat dan niet, naar allerlei SQL servers wel maar XML niet tenzij je zelf storage engine er voor gaat bouwen . Maar Propel wat ik noemde maakt je hele database beschikbaar als object .
    phluphy for president!
      zondag 29 juli 2007 @ 10:55:25 #290
    12880 CraZaay
    prettig gestoord
    pi_51929700
    quote:
    Op zaterdag 28 juli 2007 20:49 schreef Geqxon het volgende:

    [..]

    Om puur hier op in te gaan: Is dat wel mogelijk? Is er dan niet voor elke compliceerde query een aparte functie (/method) nodig? Stel dat ik een query van een regel of zeven gebruik om de data op te halen, dan moet deze complete query in de class staan, onder een aparte functie, neem ik aan?
    Welcome to "models"
    pi_51931187
    Mmmm. Blijft complicated, OO in PHP. Persoonlijk zou ik het pas willen gebruiken als ik dan ook gelijk 100% op OO over zou kunnen gaan, echter zou dat veel overhead en veel extra werk betekenen. For now blijf ik liever bij de standaard manier van programmeren, alles met functies, niks redundant. Is toch niks mis mee? Of kom ik daar de komende 2 jaar niet meer mee door?
    pi_51931650
    We hebben heel lang zonder OO gezeten dus 2 jaar trek je ook wel, maar als je grote complexere applicaties maakt zal je merken dat het veel overzichtelijker en veel gestructureerder werkt als je te maken hebt met gedefinieerde objecten met methodes en eigenschappen, die ook van elkaar kunnen overerven, dan wanneer je allemaal ondefineerbare brokken code en ongedefineerde databrokken hebt zonder expliciete samenhang.

    Voorbeeld: ik heb een CMS en een van de objecten van dat cms is het Page object wat ik zelf heb gedefinieerd. ALs ik een pagina wil tonen maak ik een nieuw Page object aan, bijv "var $page = Page->newByID(12)" en roep ik Page->outputHTML() aan waarna hij getoond wordt in de browser. Als ik een pagina wil aanpassen doe ik Page->setProperty( key => value ) en daarna Page->save() waardoor het in de DB wordt opgeslagen.

    Ik kan ook meerdere instanties aanmaken van de Page class, ik kan met enkele regels code een array van honderden pagina's instantieren en deze allemaal makkelijk beheren en manipuleren dmv de object methodes. Ik weet namelijk altijd met wat voor object ik aan het werken ben, het is niet zomaar willekeurige data.

    Ik kan een nieuw object definieren, bijv Chapter, dat alle methodes en eigenschappen overerft van Page maar daarnaast eigen functies heeft. Ik hoef dan alleen de afwijkende dingen te definieren, alle standaardfuncties heb ik al want die neemt ie automagisch over van de parent Page class.

    Probeer zoiets eens met strict procedureel programmeren. Als dat al lukt gaat je dat sowieso vele malen meer code opleveren, maar waarschijnlijker is dat je compleet de weg en het overzicht kwijtraakt en met een niet goed werkende applicatie zit die niet meer te debuggen of onderhouden is.
    pi_51958296
    Korte vraag; ik heb een database waar ik alleen de items van vandaag wil halen.

    Ik gebruik datetime en dit is een voorbeeld query

    select * from tabel where date = '" . date("Y-m-d") . "'"

    Wrom gaat het fout?
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
      maandag 30 juli 2007 @ 13:41:54 #294
    84926 WyriHaximus
    Release the hounds smithers!
    pi_51958565
    Wat voor veld is date? En volgens mij is date ook een reserved word dus probeer eens `date` ipv `date` .
    phluphy for president!
    pi_51959062
    nee date werkt gewoon hoor.

    Maar af en toe ben ik nogal blind :X

    1date_format(date, '%Y-%m-%d')


    Opgelost :P (slotje :X)
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
      maandag 30 juli 2007 @ 14:19:17 #296
    187069 slacker_nl
    Sicko pur sang
    pi_51959486
    quote:
    Op zaterdag 28 juli 2007 19:35 schreef Farenji het volgende:


    Een OO applicatie bestaat idealiter uit 3 delen: model, view en controller.
    Dat is niet geheel waar. Je hebt verschillende design patterns, allemaal met een zeker doel/uitgangspunt. OO zegt niet dat je een MVC model moet implementeren.

    MVC is vooral om de business logic te scheiden van de hoe de data wordt gepresenteerd op je scherm door het gebruik van de controller.

    Ikzelf heb dit boek ooit aangeschafd: http://en.wikipedia.org/wiki/Design_Patterns

    Zie verder ook: http://en.wikipedia.org/wiki/Object_oriented en http://en.wikipedia.org/wiki/Model-view-controller
    In theory there is no difference between theory and practice. In practice there is.
    pi_51959926
    quote:
    Op maandag 30 juli 2007 14:19 schreef slacker_nl het volgende:

    [..]

    Dat is niet geheel waar. Je hebt verschillende design patterns, allemaal met een zeker doel/uitgangspunt. OO zegt niet dat je een MVC model moet implementeren.

    MVC is vooral om de business logic te scheiden van de hoe de data wordt gepresenteerd op je scherm door het gebruik van de controller.

    Ikzelf heb dit boek ooit aangeschafd: http://en.wikipedia.org/wiki/Design_Patterns

    Zie verder ook: http://en.wikipedia.org/wiki/Object_oriented en http://en.wikipedia.org/wiki/Model-view-controller
    pi_51962391
    Voor webapplicaties is het MVC model wel *het* model dacht ik zo. Ik zou zo gauw geen ander model kunnen noemen. Of het moet het "alles op 1 grote ondefinieerbare hoop" model moeten zijn.
    Dat Design Patterns boek heb ik (uiteraard) ook in de kast staan, maar dat gaat niet direct over MVC maar meer over patterns die je zou kunnen gebruiken voor bepaalde doeleinden, eventueel binnen een MVC framework.
      maandag 30 juli 2007 @ 23:26:08 #299
    12880 CraZaay
    prettig gestoord
    pi_51975358
    OO staat inderdaad los van MVC, maar MVC is inderdaad wel "het" model voor webpps
    pi_51976177
    Ik gok zo even dat de uitvoering van MVC in Java exact hetzelfde is als MVC in PHP?
      dinsdag 31 juli 2007 @ 00:13:41 #301
    37634 wobbel
    Da WoBBeL King
    pi_51976658
    Ik wil graag beginnen met PHP en Ajax...lijkt me wel lachen enzo

    Nu ben ik op zoek naar een soort memoblok in Ajax, PHP en MySQL. Dus gewoon een text-area waar je wat typt en dan het dan gewoon opgeslagen wordt zonder dat ik op een submit knop hoef te drukken Lijkt me echt ideaal, want dan kan ik me browser afsluiten en later weer openen en dan staat het er gewoon weer (omdat het uit de DB wordt gehaald)

    Ik zoek dus eigenlijk een klein kant en klaar script zodat ik beetje met Ajax kan knutselen
    abonnement Unibet Coolblue Bitvavo
    Forum Opties
    Forumhop:
    Hop naar:
    (afkorting, bv 'KLB')