FOK!forum / Digital Corner / [PHP/(My)SQL] voor dummies - Deel 52
Farenjidinsdag 20 november 2007 @ 14:14

cd niet bijgeleverd

Als je vragen hebt over PHP/MySQL, dan zit je hier goed met een vaste kliek guru's en een groot aantal regelmatige bezoekers. Beperk je vragen niet tot "hij doet het niet" of "hij geeft een fout" - onze glazen bol is kapot en we willen graag van je weten w�t er niet lukt en w�lke foutmelding je precies krijgt

Vorige delen:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
49, 50, 51


Zie ook:
  • PHP Dataverwerking
  • Offici�le PHP website
  • PHP Documentatie
  • MySQL Reference Manual
  • Yet Another PHP Faq
  • PHP Cheat Sheet
  • PHP5 Power Programming - boek met uitleg over OOP, Pear, XML, etc

    Tutorials:
  • W3Schools PHP
  • W3Schools SQL

    Deze OP en instructies voor nieuw topic: http://wiki.fok.nl/index.php/OP/PHP
  • Chandlerdinsdag 20 november 2007 @ 14:17
    tvpee
    Farenjidinsdag 20 november 2007 @ 14:18
    Ha, toepasselijke utf-8 / ISO-8859 coderingsproblemen in de OP!
    #ANONIEMdinsdag 20 november 2007 @ 14:19
    ttttttttttttttttttvp
    broodmonkehdinsdag 20 november 2007 @ 14:49
    Ik zoek een script waarmee ik een HTML / PHP i.c.m CSS pagina om kan zetten naar PDF. Ik heb tot nu toe nog niks kunnen vinden. Het dichtste bij kwam http://www.phpclasses.org/browse/package/2905.html , maar dit script maakt gebruik van een andere server en die pleurt er reclame onder van 48px groot. Heeft iemand toevallig wat liggen?
    DaFrenkdinsdag 20 november 2007 @ 15:30
    2 vraagjes

    1) Welke character set kan je nu het beste kiezen voor je database? De database wordt gevuld met zo'n 80.000 LP's etc. uit heel Europa.

    2) Hoe kan ik een regel bijvoorbeeld 10.000 keer plakken zonder 10.000 keer op command+v te drukken? Ik werk dus @ Mac OS X met Smultron. Eventueel kan ik ook gebruik maken van Windows als het daar wel mogelijk is.

    Thanks
    hornagedinsdag 20 november 2007 @ 15:43
    ik heb ook nog een vraag. Beetje lang en uitgebreid, dus ik heb daarom er een apart topic voor gemaakt: [PHP]Word/RTF/txt bestanden inlezen met php op linux server

    Wie helpt me uit de brand?
    Mordrethdinsdag 20 november 2007 @ 15:46
    tvp
    Darkomendinsdag 20 november 2007 @ 15:51
    quote:
    Op donderdag 15 november 2007 19:42 schreef Darkomen het volgende:
    Ik moet een lijst van namen omzetten naar mogelijke email adressen.
    maar die namen zitten vol met trema's, dubbelpunten, spaties etc.
    Ik kan dat allemaal 1 voor 1 vervangen, maar heeft er iemand misschien een expressie of iets dergelijks?
    Die dus een naam veilig maakt om als email adres aangemaakt te worden?
    Iemand nog een ideetje?
    Ik doe het nu zo, maar dan haal ik de ._- ook weg welke wel erin moeten blijven
    ereg_replace("[^[a-zA-Z0-9\._-]+]","",$email);
    Darkomendinsdag 20 november 2007 @ 15:52
    quote:
    Op dinsdag 20 november 2007 14:49 schreef broodmonkeh het volgende:
    Ik zoek een script waarmee ik een HTML / PHP i.c.m CSS pagina om kan zetten naar PDF. Ik heb tot nu toe nog niks kunnen vinden. Het dichtste bij kwam http://www.phpclasses.org/browse/package/2905.html , maar dit script maakt gebruik van een andere server en die pleurt er reclame onder van 48px groot. Heeft iemand toevallig wat liggen?
    http://www.google.com/search?ie=UTF-8&oe=UTF-8&sourceid=navclient&gfns=1&q=php+%2Bhtml+to+pdf

    Misschien ziet daar wat tussen?
    Xcaliburdinsdag 20 november 2007 @ 17:59
    quote:
    Is je pagina ook echt UTF-8? (Inclusief juiste headers)
    Meestal voldoet iso-8859-15 prima (en geeft minder problemen)
    Ja, die is wel echt UTF-8
    qu63dinsdag 20 november 2007 @ 18:50
    markiemarkdinsdag 20 november 2007 @ 20:10
    om maar even te laten weten dat ik er nog ben..
    Dzywoensdag 21 november 2007 @ 00:33
    quote:
    Op dinsdag 20 november 2007 15:30 schreef DaFrenk het volgende:
    2) Hoe kan ik een regel bijvoorbeeld 10.000 keer plakken zonder 10.000 keer op command+v te drukken? :{ Ik werk dus @ Mac OS X met Smultron. Eventueel kan ik ook gebruik maken van Windows als het daar wel mogelijk is.

    Thanks :)
    Schrijf er een fucking scriptje voor? :P Waar heb je het voor nodig? Je kunt in elke willekeurige taal wel met een loopje naar de output of een file een regel wegschrijven.

    1
    2
    3
    4
    for ($i=0;$i<10000;$i++)
      {
      echo "Dit is mijn prachtige regel! :D";
      }


    Of je doet het in javascript kun je hem gelijk copy pasten naar je bestand.
    hornagewoensdag 21 november 2007 @ 09:10
    nou, dan repost ik mijn topic hier nog een keer. Sorry, ben echt wanhopig

    Ik ben nu al een flinke tijd met een irritant probleem waar ik een aantal maanden terug ook al eens over gepost heb: [PHP]Mac txt bestanden inlezen met php op linux server

    Ik heb een website gemaakt waarvan de content via txt files geupdate kan worden.
    Diegene die de website bijhoudt doet dit nu in word vanaf een mac, slaat dit op als unicode txt bestanden en opent hem dan op een windows pc in notepad en slaat het dan als een gewoon txt bestand op zodat de linux server waar de website op draait hem normaal in kan lezen.

    Deze tussenstap is uiteraard omslachtig en moest eruit gehaald worden. Ik ben eerst op zoek geweest naar een manier om de txt bestanden in te lezen, maar ik stuitte op allerlei problemen die waarschijnlijk te wijten zijn aan Word for Mac.

    Het volgende idee was om maar direct doc. bestanden in te lezen. Dit kan via een COM object, maar dat werkt alleen maar op een windows server, niet op een linux server.

    Toen vond ik een class in php die direct plain text uit doc bestanden kan halen. Hier moest ik alleen wel voor betalen. Ik doen dus, ding gedownload, bleek het gecodeerd zijn met Zend Optimizer. Voor Zend Optimizer moet je ook geld betalen. Dat is opzich geen probleem, maar de website is gehost bij XS4All en die hebben dat niet en er is ook geen mogelijk dat zij dat aanschaffen.

    Toen ging ik maar bezig om te kijken of ik dan RTF bestanden kan inlezen met PHP. Hierover kan ik alleen dingen vinden die gelijk de hele opmaak meenemen en direct omzetten in HTML, terwijl ik echt alleen maar de plain text nodig heb.

    Onderhand ben ik dus freakin radeloos, heb er veels te veel tijd aan besteed en het werkt nog niet.

    Heeft iemand misschien een suggestie of idee om dit op te lossen?
    SuperRembowoensdag 21 november 2007 @ 09:13
    quote:
    Op woensdag 21 november 2007 00:33 schreef Dzy het volgende:

    [..]

    Schrijf er een fucking scriptje voor? Waar heb je het voor nodig? Je kunt in elke willekeurige taal wel met een loopje naar de output of een file een regel wegschrijven.
    [ code verwijderd ]

    Of je doet het in javascript kun je hem gelijk copy pasten naar je bestand.
    Of je doet 14 x (Ctrl+A, Ctrl+C, Ctrl+V), dan heb je er 16384
    DaFrenkwoensdag 21 november 2007 @ 10:37
    quote:
    Op woensdag 21 november 2007 09:13 schreef SuperRembo het volgende:

    [..]

    Of je doet 14 x (Ctrl+A, Ctrl+C, Ctrl+V), dan heb je er 16384
    D'oh! Dat is wel heel stom dat ik daar niet aan gedacht heb!

    En idd.. een scripte was ook mogelijk geweest Nu voel ik me helemaal een
    Chandlerwoensdag 21 november 2007 @ 10:57
    Ik heb even een kort vraagje.

    Hoe kan ik uit een database het volgende halen met de volgende data

    1
    2
    3
    4
    tabel
    - id
    - link id
    - referer


    voorbeeld data
    1
    2
    3
    4
    5
    1 1 http://www.google.nl?q=3423982 etc
    2 1 http://www.fok.nl/listtopics/3423
    3 1 http://www.nu.nl/artiekeletc.php?q=3423&id=2&etc=0
    4 1 http://www.nu.nl/artiekeletc.php?q=3423&id=2&etc=1
    5 1 http://www.nu.nl/artiekeletc.php?q=3423&id=2&etc=2

    nu wil ik graag alleen de domeinnamen uit de database lezen... is dat mogelijk middels MYSQL alleen?
    Aquaatjewoensdag 21 november 2007 @ 11:06
    quote:
    Op woensdag 21 november 2007 10:57 schreef Chandler het volgende:
    Ik heb even een kort vraagje.

    Hoe kan ik uit een database het volgende halen met de volgende data
    [ code verwijderd ]

    voorbeeld data
    [ code verwijderd ]

    nu wil ik graag alleen de domeinnamen uit de database lezen... is dat mogelijk middels MYSQL alleen?
    Je kunt door middel van een query de referer uitlezen en vervolgens met behulp van een reguliere expressie het www.domein.tld stuk eruit proberen te halen.
    Chandlerwoensdag 21 november 2007 @ 11:22
    Correct, dat is geen probleem inderdaad maar aangezien ik veel dezelfde domeinnamen in deze tabel heb staan waar veel ? en & gebruikt worden hoopte ik dat dit middels MySQL zelf kon
    Aquaatjewoensdag 21 november 2007 @ 11:26
    Ik heb nog niet met expressies in MySQL zelf gewerkt, maar kijk hier eens: http://dev.mysql.com/doc/refman/5.0/en/regexp.html
    Chandlerwoensdag 21 november 2007 @ 11:27
    Daar zat ik reeds doorheen te snuffelen maar lijkt wel of het niet geheel mogelijk is tenzij je een expert met regex queries bent
    twiwoensdag 21 november 2007 @ 11:28
    Tsja, je kunt ofwel naderhand via een regular expression de domeinnaam eruitvissen, ofwel zorgen dat bij het invoeren van een record dit regexpen al plaatsvindt waarbij je de kale domeinnaam in een nieuwe column van je tabel zet. Dit laatste lijkt mij het gemakkelijkste en het beste voor de resources.
    Chandlerwoensdag 21 november 2007 @ 11:32
    Correct twi, maar ik heb te maken met meerdere profiles! maar dan idd zou ik kunnen werken met distinct om gelijke items er uit te vissen).

    Ik zal eens kijken wat de meest logische optie is.
    Chandlerwoensdag 21 november 2007 @ 11:45
    En dan nog een klein vraagje.

    Stel je hebt een array

    $x[] = array("x", 32);
    $x[] = array("y", 22);
    $x[] = array("z", 55);

    en ik wil alles sorteren op combinatie van het aantal hits? hoe doe ik dat en heb gezocht maar sort (ksort) kon mij niet een bevredigend antwoord geven
    Aquaatjewoensdag 21 november 2007 @ 11:46
    Ik heb eens gekeken naar de MySQL reguliere expressies en het lijkt mij dat je wel een expressie kunt schrijven om iets te zoeken, maar niet om de waarde weer te geven van die expressie precies. Dus dat je wel kunt vinden dat er waarden zijn (en welke precies) die voldoen aan de expressie, maar niet dat je het stuk wat overeenkomt er uit kunt halen zodat je bijvoorbeeld forum.fok.nl uit [PHP/(My)SQL] voor dummies - Deel 52 kunt halen.

    Gebaseerd op wat twi zegt kun je bijvoorbeeld voor eenvoudige gebruikersinteractie de gebruiker de volledige URL in laten voeren, en dan doe jij direct voor je invoer in de DB php de url en de parameters scheiden. Dit heeft als voordeel dat je alleen bij invoer een enkel item hoeft te splitsen i.p.v. bij het opvragen de hele lijst moet splitsen/doorzoeken. Het spreekt voor zich dat dat laatste veel meer tijd / resources kost.
    JortKwoensdag 21 november 2007 @ 11:46
    1
    2
    3
    <?php
    $jortk
    ->post("TVP");
    ?>
    Geqxonwoensdag 21 november 2007 @ 11:51
    1
    2
    3
    <?php
    $topic
    ->add(22942"14.gif""TVP");
    ?>
    Aquaatjewoensdag 21 november 2007 @ 11:54
    quote:
    Op woensdag 21 november 2007 11:45 schreef Chandler het volgende:
    En dan nog een klein vraagje.

    Stel je hebt een array

    $x[] = array("x", 32);
    $x[] = array("y", 22);
    $x[] = array("z", 55);

    en ik wil alles sorteren op combinatie van het aantal hits? hoe doe ik dat :D en heb gezocht maar sort (ksort) kon mij niet een bevredigend antwoord geven :{
    Ik neem aan dat je bedoelt dat X 32 hits heeft?
    1
    2
    3
    4
    5
    6
    7
    <?php
    $x 
    = array(
    "x" => 32,
    "y" => 22,
    "z" => 55
    );
    ?>

    of
    1
    2
    3
    4
    5
    <?php
    $x
    ["x"] = 32;
    $x["y"] = 22;
    $x["z"] = 55;
    ?>

    gebruiken zodat je een simpel array hebt. Gebruik vervolgens
    1
    2
    3
    <?php
    asort
    ($x);
    ?>
    om je array op basis van de getallen te sorteren. Ksort sorteert op keys.

    Jouw probleem met de array definitie die je plaatst is dat je een een array creert in een rij van je x-array. Wat jij krijgt is:
    1
    2
    3
    4
    5
    <?php
    $x
    []["x"] = 32;
    $x[]["y"] = 22;
    $x[]["z"] = 55;
    ?>
    twiwoensdag 21 november 2007 @ 11:58
    1
    2
    3
    <?php
    Parse error
    syntax errorunexpected 'tvp' in /topic/1097499on line 13711122728
    ?>
    Chandlerwoensdag 21 november 2007 @ 12:06
    quote:
    Op woensdag 21 november 2007 11:54 schreef Aquaatje het volgende:

    [..]

    Ik neem aan dat je bedoelt dat X 32 hits heeft?
    [ code verwijderd ]

    of
    [ code verwijderd ]

    gebruiken zodat je een simpel array hebt. Gebruik vervolgens
    [ code verwijderd ]

    om je array op basis van de getallen te sorteren. Ksort sorteert op keys.

    Jouw probleem met de array definitie die je plaatst is dat je een een array creert in een rij van je x-array. Wat jij krijgt is:
    [ code verwijderd ]
    Correct maar ik wil dus niet sorteren op de key maar op een value

    oftewel
    mijn array is bv

    $arr[1] = array(x, 6)
    $arr[2] = array(y, 36)
    $arr[3] = array(z, 16)

    dan wil ik graag alle resultaten gesorteerd hebben op het nummerieke veld (6, 36, 16)

    dan moet de uitkomst dus het volgende zijn.

    $arr[2] = array(y, 36)
    $arr[3] = array(z, 16)
    $arr[1] = array(x, 6)

    maar kon niet vinden hoe je op het nummerieke veld kon sorteren.
    Aquaatjewoensdag 21 november 2007 @ 12:11
    Waarom wil je een array in een array maken? Want elke $arr[] is ook weer een array. Op die manier krijg je het nooit gesorteerd.

    1
    2
    3
    <?php
    asort
    ($arr);
    ?>
    Dit sorteert je array op basis van de value van je array entry. LET OP: dit werkt alleen voor alfanumerieke sortering, niet bij complexe objecten (dus waarbij de value ook een array is of een ander object).
    1
    2
    3
    <?php
    ksort
    ($arr);
    ?>
    Dit sorteert je array op basis van de key van je array entry.

    Snap je het verschil tussen jouw array definitie en de mijne die ik eerder postte?
    Chandlerwoensdag 21 november 2007 @ 13:09
    Correct Aquaatje; ik heb idd een wijziging doorgevoerd, en arsort geeft nu de juiste waarden!!
    DaFrenkwoensdag 21 november 2007 @ 15:40
    -never mind-

    [ Bericht 93% gewijzigd door DaFrenk op 21-11-2007 16:53:35 ]
    PiRANiAwoensdag 21 november 2007 @ 16:06
    quote:
    Op woensdag 21 november 2007 11:58 schreef twi het volgende:

    [ code verwijderd ]
    lol
    Lightwoensdag 21 november 2007 @ 16:45
    quote:
    Op woensdag 21 november 2007 11:27 schreef Chandler het volgende:
    Daar zat ik reeds doorheen te snuffelen maar lijkt wel of het niet geheel mogelijk is tenzij je een expert met regex queries bent
    Wat is de bedoeling? Ik wil thuis best eens kijken
    Chandlerwoensdag 21 november 2007 @ 18:23
    quote:
    Op woensdag 21 november 2007 16:45 schreef Light het volgende:

    [..]

    Wat is de bedoeling? Ik wil thuis best eens kijken
    Eingelijk wil ik uit een referer tabel alle domeinen halen plus alle pagina's maar zonder commando's alla ? en & etc.. that's all
    Xcaliburwoensdag 21 november 2007 @ 19:04
    quote:
    Op woensdag 21 november 2007 09:10 schreef hornage het volgende:
    Deze tussenstap is uiteraard omslachtig en moest eruit gehaald worden. Ik ben eerst op zoek geweest naar een manier om de txt bestanden in te lezen, maar ik stuitte op allerlei problemen die waarschijnlijk te wijten zijn aan Word for Mac.
    Waarom kan je vanuit Word niet gewoon als .txt opslaan?
    Het enige wat ik me kan voorstellen is dat je een probleem met de regeleinden hebt, maar dat lijkt me wel op te lossen
    SuperRembowoensdag 21 november 2007 @ 19:49
    quote:
    Op woensdag 21 november 2007 18:23 schreef Chandler het volgende:

    [..]

    Eingelijk wil ik uit een referer tabel alle domeinen halen plus alle pagina's maar zonder commando's alla ? en & etc.. that's all :) :D
    Gewoon ff de MySQL manual doorbladeren... vaak kom je wat tegen wat handig uit komt:

    1
    2
    SELECT SUBSTRING_INDEX(link, '?', 1) linkbase
    FROM mytable

    En dan nog een keer de zelfde functie toepassen om ook het stuk achter het # weg te laten.
    DaFrenkwoensdag 21 november 2007 @ 20:17
    Mensen toevallig ervaring met Bigdump?

    Ik probeer iets van 80.000 records te 'dumpen', wat goed gaat totdat hij op een gegeven moment zegt:

    1Got a packet bigger than 'max_allowed_packet' bytes


    Het lijkt mis te gaan als bij record 45.001 moet wegschrijven. Google geeft me wel wat resultaten die het hebben over "mysql --max_allowed_packet=32M" maar dan moet je mySQL starten met die parameter. Is dat iets wat je op de server zelf moet aanpassen?
    Chandlerdonderdag 22 november 2007 @ 09:20
    zet je alle 'records' in apparte inserts of 1 grote insert? dat kan ook nog wel een schelen!
    DaFrenkdonderdag 22 november 2007 @ 10:30
    Allemaal aparte inserts, dus geen extended inserts, dat kan BigDump inderdaad niet splitsen.
    DaFrenkdonderdag 22 november 2007 @ 13:31
    Well, het bleek dat er een fout stond in die regel. Een record bevatte een \ die net voor de ' kwam te staan waardoor die regel verneukt werd.

    Eerst maar ff de database langslopen.

    En het is opgelost. Op 3 plekken stonden wat backslashes die de boel verpesten

    [ Bericht 22% gewijzigd door DaFrenk op 22-11-2007 13:55:34 ]
    Chandlerzondag 25 november 2007 @ 13:01
    Allemaal, ik heb jullie hulp nodig. Aangezien een van mijn websites laatst offline is geholpen door een grapjas die het leuk vond om steeds maar een bepaald bestand te downloaden wil ik nu een scriptje bouwen die de bandbreedte verbruik per IP gaat controlleren.

    Maar nu vraag ik mij af waarop ik het beste kan controlleren.

    1. Aantal hits op specifiek bestand in xx tijd
    2. Aantal hits op specifiek bestand met xxx bytes

    Of hoe denken jullie dat ik dit het beste kan controlleren
    JortKzondag 25 november 2007 @ 13:09
    quote:
    Op zondag 25 november 2007 13:01 schreef Chandler het volgende:
    Allemaal, ik heb jullie hulp nodig. Aangezien een van mijn websites laatst offline is geholpen door een grapjas die het leuk vond om steeds maar een bepaald bestand te downloaden wil ik nu een scriptje bouwen die de bandbreedte verbruik per IP gaat controlleren.

    Maar nu vraag ik mij af waarop ik het beste kan controlleren.

    1. Aantal hits op specifiek bestand in xx tijd
    2. Aantal hits op specifiek bestand met xxx bytes

    Of hoe denken jullie dat ik dit het beste kan controlleren
    Ik zou het sowieso niet mogelijk maken om meerdere bestanden tegelijkertijd te downloaden

    Verder zou ik kijken naar het aantal downloads van een bestand per ID per een x tijd
    Xcaliburzondag 25 november 2007 @ 15:17
    Niet echt een PHP vraag, maar misschien hebben jullie een idee

    Sinds vorige week staat mijn nieuwe site live, inclusief een errorpagina die mij netjes een mail stuurt met gegevens over de pagina die niet gevonden is. Nu krijg ik daar dus af en toe een mailtje van, vooral vanaf pagina's uit de oude site die nu niet meer bestaan. So far, so good.

    Ik krijg ook af en toe een reeks mailtjes van pagina's als /email, /horde_email/ email_readme, /drupal en dergelijke. Ik kan hier op Google niks over vinden, maar het voelt als hack-attempts

    Enig idee waar dit vandaan komt, en wat ik hier tegen kan doen?
    JortKzondag 25 november 2007 @ 15:21
    quote:
    Op zondag 25 november 2007 15:17 schreef Xcalibur het volgende:
    Niet echt een PHP vraag, maar misschien hebben jullie een idee

    Sinds vorige week staat mijn nieuwe site live, inclusief een errorpagina die mij netjes een mail stuurt met gegevens over de pagina die niet gevonden is. Nu krijg ik daar dus af en toe een mailtje van, vooral vanaf pagina's uit de oude site die nu niet meer bestaan. So far, so good.

    Ik krijg ook af en toe een reeks mailtjes van pagina's als /email, /horde_email/ email_readme, /drupal en dergelijke. Ik kan hier op Google niks over vinden, maar het voelt als hack-attempts

    Enig idee waar dit vandaan komt, en wat ik hier tegen kan doen?
    Waarschijnlijk bots die proberen die pagina's op te halen, om zo te kijken of er leaks inzitten zodat ze je site kunnen hacken
    Xcaliburzondag 25 november 2007 @ 15:27
    ja, zoiets vermoed ik ook.... nou is d'r niks te vinden, maar blij ben ik er ook niet mee
    Bovendien word ik gestoord van al die mailtjes

    Een referer hebben ze niet, is er een manier om erachter te komen vanaf welk IP-adres ze komen ofzo? Zodat ik die in ieder geval kan blocken?
    JortKzondag 25 november 2007 @ 15:36
    quote:
    Op zondag 25 november 2007 15:27 schreef Xcalibur het volgende:
    ja, zoiets vermoed ik ook.... nou is d'r niks te vinden, maar blij ben ik er ook niet mee
    Bovendien word ik gestoord van al die mailtjes

    Een referer hebben ze niet, is er een manier om erachter te komen vanaf welk IP-adres ze komen ofzo? Zodat ik die in ieder geval kan blocken?
    Kun je niet beter je script aanpassen zodat wanneer ze die pagina's bezoeken er geen mailtje gestuurd word?

    IP adressen van bots blokkeren lijkt (mij) onbegonnen werk namelijk
    Xcaliburzondag 25 november 2007 @ 15:37
    nou, tot nu toe zijn het steeds verschillende pagina's geweest, dus dat is net zo hopeloos waarschijnlijk
    JortKzondag 25 november 2007 @ 15:41
    quote:
    Op zondag 25 november 2007 15:37 schreef Xcalibur het volgende:
    nou, tot nu toe zijn het steeds verschillende pagina's geweest, dus dat is net zo hopeloos waarschijnlijk
    Dan errors welke komen van bezoekers zonder referrer niet mailen?
    Farenjizondag 25 november 2007 @ 16:18
    quote:
    Op zondag 25 november 2007 15:37 schreef Xcalibur het volgende:
    nou, tot nu toe zijn het steeds verschillende pagina's geweest, dus dat is net zo hopeloos waarschijnlijk
    Tegen die hack probes doe je totaal niks, onbegonnen werk en zonde van je tijd want last heb je er toch niet van, tenzij je elke keer een mailtje laat sturen
    Mailtje uitzetten is echt de beste optie dus. Je kan anders ook een statistiekenpakket of log parser gebruiken die kan filteren op error codes. Bijv awstats kan dat, gewoon ff googlen.
    Chandlerzondag 25 november 2007 @ 16:48
    quote:
    Op zondag 25 november 2007 13:09 schreef JortK het volgende:

    [..]

    Ik zou het sowieso niet mogelijk maken om meerdere bestanden tegelijkertijd te downloaden

    Verder zou ik kijken naar het aantal downloads van een bestand per ID per een x tijd
    Probleem is dat downloaden ook bekijken is

    En je je moet wel meerdere afbeeldingen kunnen bekijken/ophalen toch?
    JortKzondag 25 november 2007 @ 16:50
    quote:
    Op zondag 25 november 2007 16:48 schreef Chandler het volgende:

    [..]

    Probleem is dat downloaden ook bekijken is

    En je je moet wel meerdere afbeeldingen kunnen bekijken/ophalen toch?
    Dan moet je de combinatie maken denk ik

    Dus wanneer iemand in x tijd meer dan x bytes ophaalt is die waarschijnlijk niet goed bezig
    super-muffinzondag 25 november 2007 @ 19:54
    Wat is er niet goed aan deze regex?

    1
    2
    3
    <?php
    preg_match
    ('/^(.*?)\,[ ](the|a|de|dr\.|dj\.)$/'$Name$Match);
    ?>


    Ik krijg de error : 'Compilation failed: nothing to repeat at offset 5'.
    SuperRembozondag 25 november 2007 @ 20:30
    Ik denk dat de combinatie "*?" niet mag. * betekent 0 of meerdere keren, ? betekent 0 of 1 keer. Het vraagteken is dus overbodig.
    autocuezondag 25 november 2007 @ 23:12
    quote:
    Op zondag 25 november 2007 20:30 schreef SuperRembo het volgende:
    Ik denk dat de combinatie "*?" niet mag. * betekent 0 of meerdere keren, ? betekent 0 of 1 keer. Het vraagteken is dus overbodig.
    De *? staat voor ungreedy (of reluctant). De quantifier gevolgd door een vraagteken geeft dan aan dat die een geldige pattern moet vinden, maar het liefst een zo kort mogelijke. Om het even aan de hand van een voorbeeld te illustreren :
    1
    2
    3
    4
    5
    6
    // Greedy
    preg_match('#a(b|a)*a#', 'ababba'); // Matcht 'ababba'

    // Reluctant
    preg_match('#(a(b|a)*?a#', 'ababba'); // Matcht 'aba'
    preg_match('#(a(b|a)*?a#', 'abbbabba'); // Matcht 'abbba'


    Met betrekking tot de vraag, de pattern is volgens mij gewoon geldig. Is het misschien Replique die dingen raar escapet?
    Lightzondag 25 november 2007 @ 23:20
    quote:
    Op zondag 25 november 2007 23:12 schreef autocue het volgende:

    [..]

    De *? staat voor ungreedy (of reluctant). De quantifier gevolgd door een vraagteken geeft dan aan dat die een geldige pattern moet vinden, maar het liefst een zo kort mogelijke. Om het even aan de hand van een voorbeeld te illustreren :
    Je kunt een pattern ook ungreedy maken met de modifier U:
    1preg_match('#(a(b|a)*a#U', 'ababba'); // Matcht 'aba'
    Dat heeft over het algemeen mijn voorkeur.
    SuperRembomaandag 26 november 2007 @ 00:36
    quote:
    Op zondag 25 november 2007 23:12 schreef autocue het volgende:
    De *? staat voor ungreedy (of reluctant).
    Ja, natuurlijk. Was ik ff vergeten. Hij is bij deze regexp wel overbodig, want er staat niets in wat een verschil tussen greedy/ungreedy zou maken.
    quote:
    Is het misschien Replique die dingen raar escapet?
    Ik vroem me ook al af of er niet ergens een \ zou zijn weggevallen.
    hornagedinsdag 27 november 2007 @ 11:32
    quote:
    Op woensdag 21 november 2007 19:04 schreef Xcalibur het volgende:

    [..]

    Waarom kan je vanuit Word niet gewoon als .txt opslaan?
    Het enige wat ik me kan voorstellen is dat je een probleem met de regeleinden hebt, maar dat lijkt me wel op te lossen
    Zoals ik al noemde in mijn verhaal of in mijn vorige topic is dit wel mogelijk, alleen er komt een bepaalde encoding overheen die ervoor zorgt dat je meer problemen krijgt dan alleen maar andere line-breaks.

    Ik heb het trouwens onderhand draaiend. Ergens voor 6 dollar die word/rtf class kunnen laten decoden. Gelukkig maar.
    Als iemand nog geinteresseerd is om die class te hebben dan moet ie mij maar ff mailen of pm'en. Handige class om te hebben nl.

    Nu nog ff andere vraag. op http://www.pi-online.nl/ zie je op de homepage aan de rechterkant een kind of tracker idee staan. Een verticale rechtopstaande div. Ik wil gewoon dat ie altijd beeldvullend is, dus hoogte 100%. Ik heb daar al flink op lopen zoeken, want het schijnt nogal een bekend probleem te zijn.
    Ik heb het nu opgelost door die div gewoon een stevige hoogte te geven, maar nu kan je dus nog een stuk naar beneden scrollen zonder dat daar wat staat.

    Iemand misschien een oplossing hiervoor?

    Let trouwens niet op de site met frames. Ik kwam er ook pas ergens in het midden in toen dat allemaal al gemaakt was.
    Chandlerdinsdag 27 november 2007 @ 14:22
    Vraagje;

    Ik wil bestellingen van een bepaalde website opslaan op een nieuwe methode.

    Nu kwak ik de gehele bestelling in tekst (zoals deze per email verzonden wordt) in een database, maar nu wil ik bepaalde waarden anders gaan opslaan. En ik vroeg mij het volgende af.

    Kan ik een tabel zowel gebruiken voor nummerieke als tekstuele gegevens of is het handiger om deze tabellen te splitsen (nummeriek en teksten (text) in een appart tabel)

    Of zou ik dit tabel voor beide waarden kunnen gebruiken? (met 2 mogelijk te vullen velden 1 nummeriek, 1 tekst plus een veld om aan te geven welk veld gevuld is)
    JortKdinsdag 27 november 2007 @ 14:26
    quote:
    Op dinsdag 27 november 2007 14:22 schreef Chandler het volgende:
    Vraagje;

    Ik wil bestellingen van een bepaalde website opslaan op een nieuwe methode.

    Nu kwak ik de gehele bestelling in tekst (zoals deze per email verzonden wordt) in een database, maar nu wil ik bepaalde waarden anders gaan opslaan. En ik vroeg mij het volgende af.

    Kan ik een tabel zowel gebruiken voor nummerieke als tekstuele gegevens of is het handiger om deze tabellen te splitsen (nummeriek en teksten (text) in een appart tabel)

    Of zou ik dit tabel voor beide waarden kunnen gebruiken? (met 2 mogelijk te vullen velden 1 nummeriek, 1 tekst plus een veld om aan te geven welk veld gevuld is)
    Je kunt de boel toch gewoon in gescheiden kollomen gooien in je tabel
    Farenjidinsdag 27 november 2007 @ 14:30
    quote:
    Op dinsdag 27 november 2007 14:22 schreef Chandler het volgende:
    Vraagje;

    Ik wil bestellingen van een bepaalde website opslaan op een nieuwe methode.

    Nu kwak ik de gehele bestelling in tekst (zoals deze per email verzonden wordt) in een database, maar nu wil ik bepaalde waarden anders gaan opslaan. En ik vroeg mij het volgende af.

    Kan ik een tabel zowel gebruiken voor nummerieke als tekstuele gegevens of is het handiger om deze tabellen te splitsen (nummeriek en teksten (text) in een appart tabel)

    Of zou ik dit tabel voor beide waarden kunnen gebruiken? (met 2 mogelijk te vullen velden 1 nummeriek, 1 tekst plus een veld om aan te geven welk veld gevuld is)
    Waarom zou je dat willen splitsen? Zet het lekker in 1 tabel, zorg er alleen voor dat je database genormaliseerd is.
    Chandlerdinsdag 27 november 2007 @ 14:49
    Klopt jullie hebben gelijk, maar deze bestelling is bestelling anders, daar kan ik natuurlijk moeilijk de database op aanpassen! (per type bestelling) en daarom leek het mij handiger om bepaalde gegevens anders te verwerken!
    JortKdinsdag 27 november 2007 @ 15:01
    quote:
    Op dinsdag 27 november 2007 14:49 schreef Chandler het volgende:
    Klopt jullie hebben gelijk, maar deze bestelling is bestelling anders, daar kan ik natuurlijk moeilijk de database op aanpassen! (per type bestelling) en daarom leek het mij handiger om bepaalde gegevens anders te verwerken!
    Ik snap niet wat je nu helemaal bedoeld
    Xcaliburdinsdag 27 november 2007 @ 16:01
    je bent echt vrij onsamenhangend
    Chandlerdinsdag 27 november 2007 @ 16:19
    nu ik het terug lees idd

    Maar om even iets duidelijker te zijn:

    Ik sla nu mijn bestellingen op in Plain text in de database (plaintext bevat: alle produkten, kenmerken, klant gegevens etc, je moet het zien als een 'factuur')

    Nu wil ik in de toekomst deze bestellingen ook op een andere manieren benaderen dus leek het mij handig om bepaalde gegevens van de bestelling op te slaan in apparte tabellen bv;

    produkten, kenmerken, klantgegevens

    Aangezien ik deze nu in plaintext in de database heb zitten moet ik met regex de produkten, kenmerken en dergelijke zaken uit de tekst filteren, en zou het dus gemakkelijker zijn als ik in de nieuwe opzet, zonder al deze regexjes het zelfde weer kan genereren in bijvoorbeeld een nieuw type factuur of met nieuwe benamingen!

    Hopelijk is dit duidelijker!
    Farenjidinsdag 27 november 2007 @ 16:26
    Je moet goed kijken naar hoe je facturen in elkaar zitten en daar je datamodel op aanpassen. Als je bijv producten hebt met een willekeurig aantal kenmerken maak je een producten tabel met velden ID, klantID, naam etc, en bijv een product_kenmerken tabel met velden productID, naam, waarde. Daarnaast uiteraard een klanten tabel.
    Aquaatjedinsdag 27 november 2007 @ 17:09
    Maak inderdaad een duidelijk ontwerp van je systeem. Identificeer alle objecten en vertaal die in zinnige tabellen.

    Je hebt bijvoorbeeld een order. Een order heeft orderregels waarin de producten, het aantal en de prijs in staan. De order is gekocht door een klant. Dat soort dingen. Let wel op dat de gegevens die in een order staan niet mogen veranderen als je die later terug wilt kijken. Dus zet bijvoorbeeld de productprijs in de orderregel erbij voor het geval de prijs van het product verandert.

    Bouw daarnaast gewoon iets wat een factuur genereerd in bijv. HTML of PDF formaat. Als je dan iets wijzigt, is je factuur ook altijd meteen bijgewerkt.
    super-muffindinsdag 27 november 2007 @ 21:35
    quote:
    Op zondag 25 november 2007 23:12 schreef autocue het volgende:

    [..]

    De *? staat voor ungreedy (of reluctant). De quantifier gevolgd door een vraagteken geeft dan aan dat die een geldige pattern moet vinden, maar het liefst een zo kort mogelijke. Om het even aan de hand van een voorbeeld te illustreren :
    [ code verwijderd ]

    Met betrekking tot de vraag, de pattern is volgens mij gewoon geldig. Is het misschien Replique die dingen raar escapet?
    Ik heb het opgelost.

    1
    2
    3
    <?php
    preg_match
    ('/^(.*?)\, [ ](the|a|de|dr\.|dj\.)$/i'$Name$Match)
    ?>

    heb ik nu staan. Wat het probleem was weet ik niet precies, maar het werkt en kan ik verder met het projectje.
    LeeHarveyOswaldwoensdag 28 november 2007 @ 15:06
    Hum,

    Om mij niet bekende reden worden op mn server PHP foutmeldingen weer ge'echo'ed. Zie ik ineens dat een lege "get" hetvolgende geeft:

    Notice: Undefined index: titel in /var/www/vhosts/pestforum.nl/httpdocs/index.php on line 7

    Hoe dat te verhelpen?

    Dit gebeurt op redelijk wat plekken overigens. En die gets "moeten" leeg zijn, omdat dit is hoe de pagina wordt aangeroepen. Get leeg? Default pagina. Get gevuld? item ophalen wat wordt aangevraagd..
    Aquaatjewoensdag 28 november 2007 @ 15:12
    Controleer of een var ingesteld is met IsSet(). Bij een array kun je zo bijvoorbeeld zien of een index bestaat. Als ie bestaat gebruik je em, anders niet. Dan ben je van die notice af.
    LeeHarveyOswaldwoensdag 28 november 2007 @ 15:28
    werkt Thnx!
    LeeHarveyOswaldwoensdag 28 november 2007 @ 15:39
    Werkt toch niet helemaal. Ik heb nu onderstaand, maar hij vindt ze altijd leeg, ook al staat er wat in :P

    1
    2
    3
    4
    <?php
    if (isset($_GET['i']))  {$item $_GET['i'];}
    if (isset(
    $_GET['zoek']))  {$zoek $_GET['zoek'];}
    ?>
    PiRANiAwoensdag 28 november 2007 @ 16:08
    quote:
    Op woensdag 28 november 2007 15:39 schreef LeeHarveyOswald het volgende:
    Werkt toch niet helemaal. Ik heb nu onderstaand, maar hij vindt ze altijd leeg, ook al staat er wat in
    [ code verwijderd ]
    $_GET[$i]
    niet $_GET['$i']
    Chandlerwoensdag 28 november 2007 @ 18:35
    Je kunt nog beter dit doen; dan is de variabel zo ie zo gebruikt.

    1
    2
    3
    <?php
    $item 
    = (isSet($_GET['i']) ? $_GET['i'] : "");
    ?>


    uit het hoofd hé
    Chandlerwoensdag 28 november 2007 @ 19:36
    fuckie...
    Xcaliburdonderdag 29 november 2007 @ 10:13
    Ik heb een beetje een kip-ei probleem met het checken van een variabele...

    Ik controleer alle input met een set functies, die bepalen of een veld leeg mag zijn, alleen numeriek, etc. Ik gooi dus een $_POST variabele in die functie. Als deze variabele niet bestaat krijg ik dus een notice, maar ik check pas OF hij bestaat IN de functie....

    Nou kan ik wel een isset om de functie aanroep heenzetten, maar dat vind ik niet mooi
    Kan ik dit oplossen?
    hornagedonderdag 29 november 2007 @ 15:15
    Ik heb in delphi een aardig ingewikkelde encoding en decode functie staan.
    Nu moet ik in korte termijn ditzelfde kunnen in php.
    Herschrijven is een beetje teveel werk schat ik zo in, maar is het ook mogelijk om dit via een dll bestand te doen die php kan benaderen?

    Ik had al gezien dat dit met COM wel mogelijk, maar dan moet php op een windows server draaien en dat is het niet geval. FFI moet dan ook mogelijk zijn, maar ik snap eerlijk gezegd niet precies wat er op de flink verouderde site daarvan staat over hoe je het kan gebruiken.

    Iemand tips of ideeën?

    [ Bericht 0% gewijzigd door hornage op 29-11-2007 15:22:38 ]
    DaFrenkdonderdag 29 november 2007 @ 18:50
    Stel dat ik in de database een veld "media type" heb waarin zo'n 50 unieke types staan (zoals CD, LP enz.). Nu wil ik wanneer ik die types ga weergeven op de site i.p.v. tekst een afbeelding neerzetten. Dus als het type CD is dan moet hij /images/cd.gif weergeven. Hoe kan ik dit op een nette en efficiënte manier oplossen? 50 if-statements lijkt me een beetje onhandig.

    Zelf zat ik te denken aan een array met alle types en de bijbehorende afbeeldingen. Maar hoe maak ik zoiets aan en hoe haal ik dat er weer uit? Hij moet dus die array doorzoeken naar het media-type en vervolgens de afbeelding die erbij hoort terug geven zodat ik die kan echo'en.
    SuperRembodonderdag 29 november 2007 @ 18:58
    quote:
    Op donderdag 29 november 2007 10:13 schreef Xcalibur het volgende:
    Ik heb een beetje een kip-ei probleem met het checken van een variabele...

    Ik controleer alle input met een set functies, die bepalen of een veld leeg mag zijn, alleen numeriek, etc. Ik gooi dus een $_POST variabele in die functie. Als deze variabele niet bestaat krijg ik dus een notice, maar ik check pas OF hij bestaat IN de functie....

    Nou kan ik wel een isset om de functie aanroep heenzetten, maar dat vind ik niet mooi
    Kan ik dit oplossen?
    Je hoeft toch alleen de key aan die functie door te geven? $_POST is super-global, dus die heb je ook tot je beschikking binnen de functie.
    super-muffindonderdag 29 november 2007 @ 19:25
    quote:
    Op donderdag 29 november 2007 18:50 schreef DaFrenk het volgende:
    Stel dat ik in de database een veld &quot;media type&quot; heb waarin zo'n 50 unieke types staan (zoals CD, LP enz.). Nu wil ik wanneer ik die types ga weergeven op de site i.p.v. tekst een afbeelding neerzetten. Dus als het type CD is dan moet hij /images/cd.gif weergeven. Hoe kan ik dit op een nette en efficiënte manier oplossen? 50 if-statements lijkt me een beetje onhandig.

    Zelf zat ik te denken aan een array met alle types en de bijbehorende afbeeldingen. Maar hoe maak ik zoiets aan en hoe haal ik dat er weer uit? Hij moet dus die array doorzoeken naar het media-type en vervolgens de afbeelding die erbij hoort terug geven zodat ik die kan echo'en.
    over de 50 if: Dat kun je makkelijk met een switch

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <?php
    switch($typ)
    {
       case 
    'lp' :
         
    $img 'lp.gif';
         break;

       case 
    'cd' :
         
    $img 'cd.gif';
         break;

      default :
        
    $img 'default.gif';
        break;
    }
    $imgurl 'path/to/images/'.$img;
    ?>


    En het doorzoeken van een array is niet zo heel moeilijk. Als je de key weet is het een kwestie van $array['key'];
    super-muffindonderdag 29 november 2007 @ 19:34
    quote:
    Op woensdag 28 november 2007 18:35 schreef Chandler het volgende:
    Je kunt nog beter dit doen; dan is de variabel zo ie zo gebruikt.
    [ code verwijderd ]

    uit het hoofd hé
    Waarom die tweede s met een hoofdletter? Overigens vind ik het wel een beetje raar dat die functie geen is_set heet. Aangezien een hoop functies wel met is_ beginnen, zoals is_numeric, is_null enzovoorts.
    Chandlerdonderdag 29 november 2007 @ 19:38
    quote:
    Op donderdag 29 november 2007 19:25 schreef super-muffin het volgende:

    [..]

    over de 50 if: Dat kun je makkelijk met een switch
    [ code verwijderd ]

    En het doorzoeken van een array is niet zo heel moeilijk. Als je de key weet is het een kwestie van $array['key'];


    Je kunt beter een array aanmaken met bv het volgende

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    $arr 
    = array("cd" => "cd.gif""lp" => "lp.gif"etcetcetc);

    if (
    in_array("cd"$arr))
    {
        
    $img $arr["cd"];
    }
    else
    {
         
    $img "standaard.jpg";
    }
    ?>


    dit is maar een opzetje, maar scheelt heel veel IF's
    qu63donderdag 29 november 2007 @ 19:41
    quote:
    Op donderdag 29 november 2007 19:38 schreef Chandler het volgende:

    [..]



    Je kunt beter een array aanmaken met bv het volgende
    [ code verwijderd ]

    dit is maar een opzetje, maar scheelt heel veel IF's
    of een extra kolom maken in je database met daarin "type.gif" en die ook gewoon in je loop gooien
    super-muffindonderdag 29 november 2007 @ 19:49
    quote:
    Op donderdag 29 november 2007 19:38 schreef Chandler het volgende:

    [..]



    Je kunt beter een array aanmaken met bv het volgende
    [ code verwijderd ]

    dit is maar een opzetje, maar scheelt heel veel IF's

    Wat is daar makkelijker aan?

    En in een switch zitten helemaal geen if's
    DaFrenkdonderdag 29 november 2007 @ 20:14
    Bedankt! Ze klinken allebei veelbelovend! Ga eens wat proberen! In de database opnemen is geen optie in dit geval.
    SuperRembodonderdag 29 november 2007 @ 21:02
    quote:
    Op donderdag 29 november 2007 19:49 schreef super-muffin het volgende:

    Wat is daar makkelijker aan?
    De array met de mapping van type naar plaatje kan je in een config bestandje zetten. Dan kan je de mapping wijzigen zonder echt in de code te knoeien.
    DaFrenkdonderdag 29 november 2007 @ 21:13
    quote:
    Op donderdag 29 november 2007 19:38 schreef Chandler het volgende:

    [..]

    :N

    Je kunt beter een array aanmaken met bv het volgende
    [ code verwijderd ]

    dit is maar een opzetje, maar scheelt heel veel IF's
    Om hem dynamisch te maken moet ik dan zoiets doen?

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    $arr = array("cd" => "cd.gif", "lp" => "lp.gif", etcetcetc);

    if (in_array($row['MEDIA'] , $arr))
    {
        $img = $arr[$row['MEDIA']];
    }
    else
    {
         $img = "standaard.jpg";
    }
    ?>


    Dus "cd" vervangen door het dynamische $row?
    ralfiedonderdag 29 november 2007 @ 22:34
    1
    2
    3
    <?php
    $img 
    = ( file_exists$row['media'].'.gif' ) ? $row['media'] : 'default'  ) . '.gif';
    ?>


    Zoooo, hoef je alleen maar de plaatjes te uploaden van de media die je wil en klaar is DaFrenk. Niks geen gezeik met arrays, en simpel dingen toevoegen of verwijderen. Wel iets trager als je dit honderden keren gaat doen op elke pagina, maar het is wel lekker simpel. En daar hou ik van

    tevens tvp
    DaFrenkdonderdag 29 november 2007 @ 22:38
    quote:
    Op donderdag 29 november 2007 22:34 schreef ralfie het volgende:

    [ code verwijderd ]

    Zoooo, hoef je alleen maar de plaatjes te uploaden van de media die je wil en klaar is DaFrenk. Niks geen gezeik met arrays, en simpel dingen toevoegen of verwijderen. Wel iets trager als je dit honderden keren gaat doen op elke pagina, maar het is wel lekker simpel. En daar hou ik van

    tevens tvp
    Interessante oplossing! Inderdaad doodsimpel! Even kijken of dat compatible is met alle media types die ik heb.

    Bedankt!
    Chandlervrijdag 30 november 2007 @ 09:00
    @ralfie; maar dan zorg je weer voor onnodig harddisk gebruik. Zou eerder gaan voor een array ipv file_exists
    DaFrenkvrijdag 30 november 2007 @ 10:29
    Ik denk dat ik die methode van Ralfie ga gebruiken voor iets anders, namelijk het weergeven van een vlaggetje voor de land van herkomst. Aangezien er daarvan maar één op een pagina staat hoeft hij niet overdreven veel te controleren.

    Voor het media type ga ik toch eens kijken naar de array. Want het probleem is voornamelijk dat er wat speciale tekens in zitten. Zoals " (als in inch) en een : , al weet ik ook niet hoe een array daar mee om gaat. Maar om het in een bestandsnaam te gebruiken lijkt me sowieso niet goed gaan.
    Chandlervrijdag 30 november 2007 @ 11:01
    @DaFrenk, arrays zullen daar niet echt veel problemen mee hebben hoor

    Even iets anders van mijn kant, voor de SQL experts

    Ik heb een tabel met alle maal gegevens

    tabel:
    titel - naam - gegeven

    voorbeeld data
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    kees - jaar - 1980
    kees - maand - 2
    kees - dag  - 3
    kees - stad - groningen
    kees - land - NL
    erik - jaar - 1988
    erik - maand - 3
    erik - dag - 12
    erik - stad - Amsterdam
    erik - land - NL
    mark - jaar - 1977
    mark - maand - 12
    mark - dag - 22
    mark - stad - Antwerpen
    mark - land - BE

    nu wil ik met een query uit deze database alle plaatsnamen halen uit Nederland (NL)

    Ik heb getract met een left join query alle namen te pakken waar een property land in zit met de value NL en daarna met distinct de steden er uit te halen, maar dit werkte niet.

    voorbeeld:
    1
    2
    3
    4
    5
    SELECT distinct(database.value)
    FROM database
    LEFT JOIN database d ON d.naam = database.naam
    WHERE d.property = 'land' AND d.value = 'NL' AND database.property = 'stad'
    GROUP BY database.value


    maar helaas kreeg ik 0 resultaten wat doe ik fout?

    [ Bericht 1% gewijzigd door Chandler op 30-11-2007 11:01:28 (NL ipv nl) ]
    JortKvrijdag 30 november 2007 @ 11:11
    Je vraag is me een beetje onduidelijk Chandler, maar wellicht dat je hier wat aan hebt:

    1
    2
    3
    4
    SELECT database.value
    FROM database db1, database db2
    WHERE db1.naam = 'land' AND db2.naam = 'stad' AND db1.titel = db2.titel AND db1.naam = 'NL'
    GROUP BY database.value 


    Die distinct is trouwens overbodig als je dezelfde waarde al in je GROUP BY hebt staan ;)

    En ik ga ervanuit dat database.value gelijk is aan db2.gegeven :)
    Chandlervrijdag 30 november 2007 @ 11:33
    Jort, dat werkte niet.

    Ik heb net weer een LEFT JOIN geprobeerd maar kwam weer heel wat buitenlandse woonplaatsen tegen

    1
    2
    3
    4
    5
    SELECT db1.value
    FROM db1
    LEFT JOIN db1 D on D.naam = db1.naam
    WHERE D.property = 'land' AND D.value = 'nl' AND db1.property = 'woonplaats'
    GROUP by db1.value


    Aquaatjevrijdag 30 november 2007 @ 11:36
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT DISTINCT(gegeven)
    FROM gegevens
    WHERE naam = 'stad'
    AND titel IN (
    SELECT DISTINCT(titel)
    FROM gegevens
    WHERE naam = 'land' AND gegeven = 'NL'
    )

    Zoiets?
    JortKvrijdag 30 november 2007 @ 11:39
    quote:
    Op vrijdag 30 november 2007 11:33 schreef Chandler het volgende:
    Jort, dat werkte niet.

    Ik heb net weer een LEFT JOIN geprobeerd maar kwam weer heel wat buitenlandse woonplaatsen tegen
    [ code verwijderd ]

    Je moet geen left join hebben maar je moet dezelfde tabel twee keer aan elkaar joinen en in de WHERE zeggen dat je van de ene alleen het land wil zien, en van de anders alleen de stad
    Chandlervrijdag 30 november 2007 @ 13:24
    quote:
    Op vrijdag 30 november 2007 11:36 schreef Aquaatje het volgende:

    [ code verwijderd ]

    Zoiets?
    Ik kan helaas geen select in een query gebruiken *(geen query in queries)*
    quote:
    Op vrijdag 30 november 2007 11:39 schreef JortK het volgende:
    Je moet geen left join hebben maar je moet dezelfde tabel twee keer aan elkaar joinen en in de WHERE zeggen dat je van de ene alleen het land wil zien, en van de anders alleen de stad
    Dat heb ik dus geprobeerd, maar het stomme is dat ik dan nog buitenlandse plaatsen krijg
    twivrijdag 30 november 2007 @ 13:29
    Het is je vraag niet, maar waarom gebruik je in hemelsnaam zo'n constructie voor je database-tabel, in plaats van gewoon de naam en een aantal extra kolommen voor elk gegeven?

    Of is dit slechts een fictieve tabel om je probleem te benadrukken?
    Aquaatjevrijdag 30 november 2007 @ 13:53
    quote:
    Op vrijdag 30 november 2007 13:24 schreef Chandler het volgende:
    Ik kan helaas geen select in een query gebruiken *(geen query in queries)*
    Wat voor oud brak mormel gebruik je als server dat je geen nesting kunt toepassen? o|O

    1
    2
    3
    SELECT DISTINCT(b.gegeven)
    FROM gegevens a LEFT JOIN gegevens b ON a.titel = b.titel
    WHERE a.naam = 'land' AND a.gegeven = 'NL' AND b.naam = 'stad'

    Deze dan?
    Xcaliburvrijdag 30 november 2007 @ 18:52
    quote:
    Op donderdag 29 november 2007 18:58 schreef SuperRembo het volgende:
    Je hoeft toch alleen de key aan die functie door te geven? $_POST is super-global, dus die heb je ook tot je beschikking binnen de functie.
    Hmm... ik gebruik feitelijk niet de $_POST array, maar een opgeschoonde array, maar het idee is goed
    Die kan ik natuurlijk ook gewoon in m'n functie gebruiken, en de key als los argument meegeven...

    Ik ga d'r mee aan de slag!
    Chandlervrijdag 30 november 2007 @ 20:59
    quote:
    Op vrijdag 30 november 2007 13:53 schreef Aquaatje het volgende:

    [..]

    Wat voor oud brak mormel gebruik je als server dat je geen nesting kunt toepassen?
    [ code verwijderd ]

    Deze dan?
    Opzet is inderdaad goed, maar krijg ook brussel ed steden terug stom database opzet waar ik helaas niets aan kan veranderen

    Maar tnx, ik ga het maar even omslachtig doen met 2 queries!
    Aquaatjezaterdag 1 december 2007 @ 01:02
    quote:
    Op vrijdag 30 november 2007 20:59 schreef Chandler het volgende:

    [..]

    Opzet is inderdaad goed, maar krijg ook brussel ed steden terug stom database opzet waar ik helaas niets aan kan veranderen

    Maar tnx, ik ga het maar even omslachtig doen met 2 queries!
    Het is mogelijk dat je niet nederlandse steden terug krijgt als je titel bij meerdere landen hoort.

    kees - land - NL
    kees - land - BE
    kees - plaats - Amsterdam
    kees - plaats - Brussel

    Als je dan mijn query toepast krijg je inderdaad zowel Amsterdam als Brussel terug, want er is geen zichtbaar verschil tussen beide 'kees' entries. Dan moet je echt een tabel maken met daarin 'land' en 'plaats' gekoppeld en het niet op deze vreemde manier doen. Of je tabelstructuur aanpassen?
    Chandlerzaterdag 1 december 2007 @ 09:22
    Aquaatje, dat is juist het probleem; er staan geen dubbele waardes (zoals jij hebt beschreven) in deze database opzet al gaf de eigenaar van de database ook al aan dat het uitlezen van bepaalde waarden niet erg simpel is.
    Farenjizaterdag 1 december 2007 @ 09:29
    Is de data in de db wel ok?
    Lightzaterdag 1 december 2007 @ 09:34
    quote:
    Op vrijdag 30 november 2007 11:01 schreef Chandler het volgende:

    nu wil ik met een query uit deze database alle plaatsnamen halen uit Nederland (NL)

    Ik heb getract met een left join query alle namen te pakken waar een property land in zit met de value NL en daarna met distinct de steden er uit te halen, maar dit werkte niet.

    voorbeeld:
    [ code verwijderd ]

    maar helaas kreeg ik 0 resultaten wat doe ik fout?
    Haal die Group By er eens uit?
    Chandlerzaterdag 1 december 2007 @ 10:03
    quote:
    Op zaterdag 1 december 2007 09:29 schreef Farenji het volgende:
    Is de data in de db wel ok?
    Zekers, er werken meer dan 100 sites met deze database structuur!

    @Light, dat levert ook niets op. Maar volgens mij wist je dat al
    Lightzaterdag 1 december 2007 @ 10:07
    quote:
    Op zaterdag 1 december 2007 10:03 schreef Chandler het volgende:

    [..]

    Zekers, er werken meer dan 100 sites met deze database structuur!

    @Light, dat levert ook niets op. Maar volgens mij wist je dat al
    Nee, ik had het niet getest.
    SuperRembozaterdag 1 december 2007 @ 10:46
    1
    2
    3
    4
    5
    6
    SELECT DISTINCT(d1.value) AS stad
    FROM database d1
    INNER JOIN database d2 ON d2.naam = d1.naam
    WHERE d1.property = 'stad' 
       AND d2.property = 'land' 
       AND d2.value = 'NL'

    Deze query zou echt moeten werken. Dus met een INNER JOIN, niet met een LEFT JOIN. Als dit geen resultaten oplevert dan klopt er iets niet aan de namen van de property's of value. Met de voorbeelddata die je eerder gaf moet dit "groningen" en "Amsterdam" geven. Met een LEFT JOIN krijg je alle steden terug (en dan is die hele join dus zinloos).
    Chandlerzaterdag 1 december 2007 @ 11:36
    Hey Sr,

    Bedankt voor je query, maar deze geeft dezefde resultaten als met een innerjoin. Ben idd ook bang dat de database eigenaar niet de juiste waarden in de database.

    Ik zie touwens de fout in het database systeem

    Aangezien er ook NL voor kan komen bij andere waarden (zoals spreektaal) wordt NL daar ook op gevalideerd en komt deze ook naar boven als zijnde een nederlandse plaats

    Is het mogelijk om de d2.property en d2.value uit 1 regel te halen? want nu wordt het uit meerdere rijen gehaald (bv 1e rij de property en 3e rij de value?)
    SuperRembozaterdag 1 december 2007 @ 12:32
    quote:
    Op zaterdag 1 december 2007 11:36 schreef Chandler het volgende:
    Ik zie touwens de fout in het database systeem

    Aangezien er ook NL voor kan komen bij andere waarden (zoals spreektaal) wordt NL daar ook op gevalideerd en komt deze ook naar boven als zijnde een nederlandse plaats
    Dat kan het probleem niet zijn want je gebruikt d2.property = 'land' AND d2.value = 'NL', dus spreektaal NL voldoet daar niet aan.
    quote:
    Is het mogelijk om de d2.property en d2.value uit 1 regel te halen? want nu wordt het uit meerdere rijen gehaald (bv 1e rij de property en 3e rij de value?)
    d2.property = 'land' AND d2.value = 'NL' die staan dus op dezelfde regel.

    Wat is eigenlijk de key van deze tabel, naam+property of naam+property+value?

    [ Bericht 0% gewijzigd door SuperRembo op 01-12-2007 12:39:12 ]
    Chandlerzaterdag 1 december 2007 @ 14:39
    1
    2
    3
    4
    5
    6
    CREATE TABLE `db1` (
      `naam` varchar(20) collate latin1_general_ci NOT NULL,
      `property` varchar(20) collate latin1_general_ci NOT NULL,
      `value` varchar(255) collate latin1_general_ci NOT NULL
      PRIMARY KEY  (`naam`,`property`,`value`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

    Dit is de tabel in kwestie ;)
    SuperRembozaterdag 1 december 2007 @ 15:49
    Ok, dan kunnen er per naam dus meerdere regels met property = 'land' zijn.

    1
    2
    3
    4
    5
    SELECT naam, Count(*) n
    FROM db1
    WHERE property = 'land'
    GROUP BY naam
    HAVING Count(*) > 1


    Als deze query resultaten oplevert dan ligt daar je probleem: meerdere landen per persoon.

    [ Bericht 0% gewijzigd door SuperRembo op 01-12-2007 16:17:52 ]
    Chandlerzaterdag 1 december 2007 @ 15:56
    idd 13 resultaten wat erg irritant zeg
    Schepseltjezaterdag 1 december 2007 @ 16:35
    Hallo

    ik zoek het volgende.. maar kan het niet vinden..

    Ik heb 2 datums, die wil ik van elkaar aftrekken zodat je kunt zien hoeveel jaren, maanden, weken, dagen, uren, minuten en seconden er tussenzitten

    dit zou heel simpel zijn wanneer elke maand exact 30 dagen had, maar aangezien het nogal een verschil maakt vanaf welke datum je begint te rekenen, is dit nogal een lastige opgave..

    bestaat hier een kant en klare functie voor? ik heb er verschillende geprobeerd, maar geen enkele lijkt goed te werken..

    de nerds op tweakers lijken er na 5 pagina's ook niet uit te komen..
    WyriHaximuszaterdag 1 december 2007 @ 18:29
    quote:
    Op zaterdag 1 december 2007 16:35 schreef Schepseltje het volgende:
    Hallo

    ik zoek het volgende.. maar kan het niet vinden..

    Ik heb 2 datums, die wil ik van elkaar aftrekken zodat je kunt zien hoeveel jaren, maanden, weken, dagen, uren, minuten en seconden er tussenzitten

    dit zou heel simpel zijn wanneer elke maand exact 30 dagen had, maar aangezien het nogal een verschil maakt vanaf welke datum je begint te rekenen, is dit nogal een lastige opgave..

    bestaat hier een kant en klare functie voor? ik heb er verschillende geprobeerd, maar geen enkele lijkt goed te werken..

    de nerds op tweakers lijken er na 5 pagina's ook niet uit te komen..
    Wat nou als je er per secconde door heen loopt en steeds als je een grens (dag/maand) over gaat stel je een tellertje bij?
    Schepseltjezaterdag 1 december 2007 @ 18:47
    quote:
    Op zaterdag 1 december 2007 18:29 schreef WyriHaximus het volgende:

    [..]

    Wat nou als je er per secconde door heen loopt en steeds als je een grens (dag/maand) over gaat stel je een tellertje bij?
    ja maar hoeveel seconden heeft een maand? februari heeft er minder dan december
    Farenjizaterdag 1 december 2007 @ 19:11
    quote:
    Op zaterdag 1 december 2007 18:47 schreef Schepseltje het volgende:

    [..]

    ja maar hoeveel seconden heeft een maand? februari heeft er minder dan december
    Dat hoef je niet te weten, je zet de startdatum om naar een timestamp, telt er 1 bij op en zet de timestamp weer om naar een datum. Hier zijn functies voor in php. En dit doe je net zo lang tot de timestamp groter of gelijk is als de timestamp van de einddatum. Elke keer check je of de dag-, maand- of het jaargetal is veranderd tov de vorige datum en dit hou je bij.

    Overigens is per seconde door de range loopen wel erg inefficient, je kan beter per 23*60*60 - 1 secondes loopen - een dag is nl nooit korter dan 23 uur en dus zal er nooit meer dan 1 dag verschil zijn.
    Schepseltjezaterdag 1 december 2007 @ 20:15
    Ik heb het nu zo gedaan.. lijkt te werken

    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
    <?php
    function datediff($date1,$date2)
    {
        
    $timediff =intval$date1-$date2 ); 
        if (
    $timediff<0) { $timediff $timediff * -1$t=$date1$date1=$date2$date2=$t; } // als het verschil negatief is, maak het positief

        
    $years 0;
        
    $months 0;
        
    $days=intval($timediff/86400); $remain=$timediff%86400;
        
    $hours=intval($remain/3600); $remain=$remain%3600;
        
    $mins=intval($remain/60);
        
    $secs=$remain%60;
        
        for (;;)
        {
            
    $no_of_days_in_month=date("t",mktime(0,0,0,date("m",$date1),0,date("Y",$date1))); // dagen in de maand
            
    if ($months>11) { $months 0$years++;  }
            if (
    $no_of_days_in_month<=$days
            {        
                
    $days=$days-$no_of_days_in_month;
                
    $date1 $date1 $no_of_days_in_month*86400;
                
    $months++;
            }
            else { break; }
        }

        if (
    $years>0)     { $output .= "$years jaar, "; }
        if (
    $months>0)     { if ($months==1)     { $output .= "1 maand, "; } else     { $output .= "$months maanden, "; } }
        if (
    $days>0)     { if ($days==1)     { $output .= "1 dag, "; } else         { $output .= "$days dagen, "; } }    
        if (
    $hours>0)     { if ($hours==1)     { $output .= "1 uur, "; } else         { $output .= "$hours uren, "; } }
        if (
    $mins>0)     { if ($mins==1)     { $output .= "1 minuut, "; } else     { $output .= "$mins minuten, "; } }    
        if (
    $secs>0)    { if ($secs==1)     { $output .= "1 seconde, "; } else     { $output .= "$secs seconden, "; } }        
        
        return 
    substr($output,0,-2);
    }
    ?>


    [ Bericht 8% gewijzigd door Schepseltje op 02-12-2007 00:20:57 ]
    WyriHaximuszaterdag 1 december 2007 @ 20:16
    quote:
    Op zaterdag 1 december 2007 19:11 schreef Farenji het volgende:

    [..]

    Dat hoef je niet te weten, je zet de startdatum om naar een timestamp, telt er 1 bij op en zet de timestamp weer om naar een datum. Hier zijn functies voor in php. En dit doe je net zo lang tot de timestamp groter of gelijk is als de timestamp van de einddatum. Elke keer check je of de dag-, maand- of het jaargetal is veranderd tov de vorige datum en dit hou je bij.

    Overigens is per seconde door de range loopen wel erg inefficient, je kan beter per 23*60*60 - 1 secondes loopen - een dag is nl nooit korter dan 23 uur en dus zal er nooit meer dan 1 dag verschil zijn.
    Precies, en als je het op de dag af weet is het laatste stukkie een makkie .Ben lekker wakker vandaag .
    Lightzaterdag 1 december 2007 @ 21:40
    quote:
    Op zaterdag 1 december 2007 16:35 schreef Schepseltje het volgende:
    Hallo

    ik zoek het volgende.. maar kan het niet vinden..

    Ik heb 2 datums, die wil ik van elkaar aftrekken zodat je kunt zien hoeveel jaren, maanden, weken, dagen, uren, minuten en seconden er tussenzitten

    dit zou heel simpel zijn wanneer elke maand exact 30 dagen had, maar aangezien het nogal een verschil maakt vanaf welke datum je begint te rekenen, is dit nogal een lastige opgave..

    bestaat hier een kant en klare functie voor? ik heb er verschillende geprobeerd, maar geen enkele lijkt goed te werken..

    de nerds op tweakers lijken er na 5 pagina's ook niet uit te komen..
    Als je die data in timestamps hebt dan kun je die toch gewoon van elkaar aftrekken? Dan heb je het verschil tussen de data, in seconden. Da's wel om te rekenen naar minuten-uren-dagen, lijkt me
    WyriHaximuszaterdag 1 december 2007 @ 21:54
    quote:
    Op zaterdag 1 december 2007 21:40 schreef Light het volgende:

    [..]

    Als je die data in timestamps hebt dan kun je die toch gewoon van elkaar aftrekken? Dan heb je het verschil tussen de data, in seconden. Da's wel om te rekenen naar minuten-uren-dagen, lijkt me
    Als je zoals hij zegt er van uit gaat dat er 30 dagen in een maand zitten en 365 dagen in een jaar is dat een makkie. Alleen wil je dit precies doen dan word het in eens een stuk moeilijker, en dat is nou net wat hij wil .
    SuperRembozaterdag 1 december 2007 @ 22:01
    quote:
    Op zaterdag 1 december 2007 21:40 schreef Light het volgende:

    [..]

    Als je die data in timestamps hebt dan kun je die toch gewoon van elkaar aftrekken? Dan heb je het verschil tussen de data, in seconden. Da's wel om te rekenen naar minuten-uren-dagen, lijkt me
    Tot dagen wel, maar hij wil het verder omrekenen naar maanden en jaren. Zie ook 't GoT topic.

    Als je het verschil in jaren, maanden, dagen, uren etc wil hebben dan zal je bij de jaren moeten beginnen, daarna het aantal resterende maanden etc. Ik vraag me af of je het helemaal waterdicht kan krijgen.
    Schepseltjezaterdag 1 december 2007 @ 22:06
    quote:
    Op zaterdag 1 december 2007 22:01 schreef SuperRembo het volgende:

    [..]

    Tot dagen wel, maar hij wil het verder omrekenen naar maanden en jaren. Zie ook 't GoT topic.

    Als je het verschil in jaren, maanden, dagen, uren etc wil hebben dan zal je bij de jaren moeten beginnen, daarna het aantal resterende maanden etc. Ik vraag me af of je het helemaal waterdicht kan krijgen.
    ik zou zeggen probeer mijn code eens.. lijkt waterdicht

    als ik voor begindatum 0 invul (01-01-1970) dan geeft ie

    jaar: 37
    maanden: 11
    dagen: 0
    uren: 22
    minuten: 4
    seconden: 50

    als er ook maar 1 foutje in zit dan moet dat over een periode van 37 jaar wel opvallen
    WyriHaximuszaterdag 1 december 2007 @ 22:09
    quote:
    Op zaterdag 1 december 2007 22:06 schreef Schepseltje het volgende:

    [..]

    ik zou zeggen probeer mijn code eens.. lijkt waterdicht

    als ik voor begindatum 0 invul (01-01-1970) dan geeft ie

    jaar: 37
    maanden: 11
    dagen: 0
    uren: 22
    minuten: 4
    seconden: 50

    als er ook maar 1 foutje in zit dan moet dat over een periode van 37 jaar wel opvallen
    Geeft het geen problemen als je met schrikkeljaren aan de gang gaat?
    Schepseltjezaterdag 1 december 2007 @ 22:10
    quote:
    Op zaterdag 1 december 2007 22:09 schreef WyriHaximus het volgende:

    [..]

    Geeft het geen problemen als je met schrikkeljaren aan de gang gaat?
    nee want hij berekent voor elke maand het aantal dagen gebaseerd op maand en jaar, dus in dat geval rekent hij voor februari 29 dagen
    WyriHaximuszaterdag 1 december 2007 @ 22:15
    quote:
    Op zaterdag 1 december 2007 22:10 schreef Schepseltje het volgende:

    [..]

    nee want hij berekent voor elke maand het aantal dagen gebaseerd op maand en jaar, dus in dat geval rekent hij voor februari 29 dagen
    Mooi stukje code om ff te bewaren dus .
    Schepseltjezaterdag 1 december 2007 @ 22:15
    quote:
    Op zaterdag 1 december 2007 22:15 schreef WyriHaximus het volgende:

    [..]

    Mooi stukje code om ff te bewaren dus .
    ja leuk als je bv iemands exacte leeftijd wil berekenen ofzo
    WyriHaximuszaterdag 1 december 2007 @ 22:18
    quote:
    Op zaterdag 1 december 2007 22:15 schreef Schepseltje het volgende:

    [..]

    ja leuk als je bv iemands exacte leeftijd wil berekenen ofzo
    Ja of wilt weten hoelang het duur voordat je kunt stoppen met werken of wanneer je 50 jaar getrouwt bent. Of what ever zijn zoveel dingen waar dit handig voor is .
    SuperRembozaterdag 1 december 2007 @ 22:28
    quote:
    Op zaterdag 1 december 2007 22:06 schreef Schepseltje het volgende:
    lijkt waterdicht
    Wat ik daarmee bedoelde was een geval als dit:

    02/02/2003 - 01/03/2004 is dat
    1 jaar (02/02/2003 - 02/02/2004) + 28 dagen (02/02/2004 - 01/03/2004)
    of
    1 jaar (01/03/2003 - 01/03/2004) + 27 dagen (02/02/2003 - 01/03/2003)
    Schepseltjezaterdag 1 december 2007 @ 22:41
    quote:
    Op zaterdag 1 december 2007 22:28 schreef SuperRembo het volgende:

    [..]

    Wat ik daarmee bedoelde was een geval als dit:

    02/02/2003 - 01/03/2004 is dat
    1 jaar (02/02/2003 - 02/02/2004) + 28 dagen (02/02/2004 - 01/03/2004)
    of
    1 jaar (01/03/2003 - 01/03/2004) + 27 dagen (02/02/2003 - 01/03/2003)
    bij 02/02/2003 - 01/03/2004 zegt ie

    jaar: 1
    maanden: 0
    dagen: 27
    uren: 0
    minuten: 0
    seconden: 0
    Schepseltjezaterdag 1 december 2007 @ 23:14
    ik heb hier een webdemo staan..

    http://4aal.nl/datums.php

    als iemand nog een fout ziet hoor ik het wel..
    SuperRembozaterdag 1 december 2007 @ 23:33
    quote:
    Op zaterdag 1 december 2007 23:14 schreef Schepseltje het volgende:
    als iemand nog een fout ziet hoor ik het wel..
    Nou de oplossing met loop is ranzig/lomp. En de 'if ($months>11) { $months = 0; $years++; }' check zou na '$month++' moeten staan.
    Schepseltjezaterdag 1 december 2007 @ 23:38
    wat is er ranzig aan die loop? op php.net staat ie ongeveer ook zo

    1
    2
    3
    4
    5
    6
    7
    8
    $i = 1;
    for (; ; ) {
        if ($i > 10) {
            break;
        }
        echo $i;
        $i++;
    }


    die volgorde van months maakt volgens mij niet uit voor het resultaat

    -edit- ik zie trouwens wel dat de "tot" datum gaat tot 2057, ik gok dat dat hierdoor komt..

    [ Bericht 6% gewijzigd door Schepseltje op 02-12-2007 00:18:49 ]
    SuperRembozondag 2 december 2007 @ 00:38
    Die loop is ranzig omdat als de datums 10 jaar uit elkaar liggen je minsten 8*12=48 keer voor niets de loop doorloopt en dus 48*3=144 keer date() voor niets gebruikt. Beetje jammer.

    Ik zou 't zo aanpakken.

    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
    function datediff($date1, $date2)
    {
       if ($date1 > $date2) return false;
       
       $year1 = date("Y", $date1);
       $month1 = date("n", $date1);
       $day1 = date("j", $date1);
       $year2 = date("Y", $date2);
       $month2 = date("n", $date2);
       $day2 = date("j", $date2);

       $years = $year2 - $year1;
       $months = $month2 - $month1;
       $days = $day2 - $day1;
       
       if ($days < 0)
       {
          --$months;
          $days += date("t", mktime(0, 0, 0, $month2 + 1, 0, $year2));
       }
       if ($months < 0)
       {
          --$years;
          $months += 12;
       }
       
       return array("years" => $years, "months" => $months, "days" => $days);
    }

    Misschien nog niet helemaal bug-vrij, maar ik denk dat 't een goede basis is voor een elegante oplossing. Er zit nog geen ondersteuning voor tijd in, maar die is er zo aan toe te voegen.
    qu63zondag 2 december 2007 @ 00:47
    datediff-script:
    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
    <?php
    /*
    Plugin Name: DateDiff
    Version: 1.0
    Plugin URI: http://maseko.com/project/wp-plugins/wp-datediff/ />Description: Calculate the difference between two dates like Microsoft Excel's datedif.
    Author: maseko
    Author URI:
    http://maseko.com/ />

    License information
    Copyright 2005
    Released under the GPL license
    http://www.gnu.org/licenses/gpl.txt

        This file is a plugin for WordPress
        WordPress is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
        the Free Software Foundation; either version 2 of the License, or
        (at your option) any later version.

        This program is distributed in the hope that it will be useful,
        but WITHOUT ANY WARRANTY; without even the implied warranty of
        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        GNU General Public License for more details.
    */

        
    function datediff($start_date,$end_date="now",$unit="D")
            {
                
    $unit = strtoupper($unit);
                
    $start=strtotime($start_date);
                if (
    $start === -1) {
                    print(
    "invalid start date");
                }
                
                
    $end=strtotime($end_date);            
                if (
    $end === -1) {
                    print(
    "invalid end date");
                }
                
                if (
    $start > $end) {
                    
    $temp = $start;
                    
    $start = $end;
                    
    $end = $temp;
                }
                
                
    $diff = $end-$start;
                
                
    $day1 = date("j", $start);
                
    $mon1 = date("n", $start);
                
    $year1 = date("Y", $start);
                
    $day2 = date("j", $end);
                
    $mon2 = date("n", $end);
                
    $year2 = date("Y", $end);
                
                switch(
    $unit) {
                    case
    "D":
                        echo
    intval($diff/(24*60*60));
                        break;
                    case
    "M":
                        if(
    $day1>$day2) {
                            
    $mdiff = (($year2-$year1)*12)+($mon2-$mon1-1);
                        } else {
                            
    $mdiff = (($year2-$year1)*12)+($mon2-$mon1);
                        }
                        echo
    $mdiff;
                        break;
                    case
    "Y":
                        if((
    $mon1>$mon2) || (($mon1==$mon2) &amp;&amp; ($day1>$day2))){
                            
    $ydiff = $year2-$year1-1;
                        } else {
                            
    $ydiff = $year2-$year1;
                        }
                        echo
    $ydiff;
                        break;
                    case
    "YM":
                        if(
    $day1>$day2) {
                            if(
    $mon1>=$mon2) {
                                
    $ymdiff = 12+($mon2-$mon1-1);
                            } else {
                                
    $ymdiff = $mon2-$mon1-1;
                            }
                        } else {
                            if(
    $mon1>$mon2) {
                                
    $ymdiff = 12+($mon2-$mon1);
                            } else {
                                
    $ymdiff = $mon2-$mon1;
                            }
                        }
                        echo
    $ymdiff;
                        break;
                    case
    "YD":
                        if((
    $mon1>$mon2) || (($mon1==$mon2) &amp;&amp;($day1>$day2))) {
                            
    $yddiff = intval(($end - mktime(0, 0, 0, $mon1, $day1, $year2-1))/(24*60*60));                        
                        } else {
                            
    $yddiff = intval(($end - mktime(0, 0, 0, $mon1, $day1, $year2))/(24*60*60));
                        }
                        echo
    $yddiff;
                        break;
                    case
    "MD":
                        if(
    $day1>$day2) {
                            
    $mddiff = intval(($end - mktime(0, 0, 0, $mon2-1, $day1, $year2))/(24*60*60));                        
                        } else {
                            
    $mddiff = intval(($end - mktime(0, 0, 0, $mon2, $day1, $year2))/(24*60*60));
                        }
                        echo
    $mddiff;
                        break;
                    default:
                     print(
    "{Datedif Error: Unrecognized \$unit parameter. Valid values are 'Y', 'M', 'D', 'YM'. Default is 'D'.}");
                    
                }

            }
    ?>

    op je website te gebruiken als
    1
    2
    3
    <?php
    $now
    = date("Y-m-d"); $td = "2006-9-24"; $tde = "2007-12-21"; echo " Over ";datediff("now","$tde","M");echo " maanden en ";datediff("now", "$tde", "MD");echo " dagen ben ik klaar! (ongeveer dan..)"
    ?>

    ouyput is dan:
    Over 0 maanden en 19 dagen ben ik klaar! (ongeveer dan..)
    Schepseltjezondag 2 december 2007 @ 00:52
    quote:
    Op zondag 2 december 2007 00:38 schreef SuperRembo het volgende:
    Die loop is ranzig omdat als de datums 10 jaar uit elkaar liggen je minsten 8*12=48 keer voor niets de loop doorloopt en dus 48*3=144 keer date() voor niets gebruikt. Beetje jammer.

    Ik zou 't zo aanpakken.
    [ code verwijderd ]

    Misschien nog niet helemaal bug-vrij, maar ik denk dat 't een goede basis is voor een elegante oplossing. Er zit nog geen ondersteuning voor tijd in, maar die is er zo aan toe te voegen.
    nee, elke loop is voor een maand, en bij elke maand moet hij opnieuw kijken hoeveel dagen die maand heeft
    Chandlermaandag 3 december 2007 @ 15:58
    Vraagje, of iemand hier een bestaande routine voor weet.

    Stel je hebt een grote lap tekst met spaties en tekens. Nu wil ik graag dat iedere regel wordt gecontrolleerd op het aantal spaties en stel alle regels beginnen minimaal 4 spaties vanaf links dan wil ik deze spaties verwijderen.

    Hopelijk begrijpt iemand mij
    JortKmaandag 3 december 2007 @ 16:20
    quote:
    Op maandag 3 december 2007 15:58 schreef Chandler het volgende:
    Vraagje, of iemand hier een bestaande routine voor weet.

    Stel je hebt een grote lap tekst met spaties en tekens. Nu wil ik graag dat iedere regel wordt gecontrolleerd op het aantal spaties en stel alle regels beginnen minimaal 4 spaties vanaf links dan wil ik deze spaties verwijderen.

    Hopelijk begrijpt iemand mij :P
    1
    2
    3
    <?php
    ltrim
    ()
    ?>


    Of trim() :?
    DaFrenkmaandag 3 december 2007 @ 16:53
    Grmbl.. hoe krijg ik PHP zover dat hij geldbedragen als "7.50" schrijft en niet als "7.5"? Dus dat hij wel die 0 toevoegt?
    Lightmaandag 3 december 2007 @ 16:59
    quote:
    Op maandag 3 december 2007 16:53 schreef DaFrenk het volgende:
    Grmbl.. hoe krijg ik PHP zover dat hij geldbedragen als "7.50" schrijft en niet als "7.5"? Dus dat hij wel die 0 toevoegt?
    1
    2
    3
    <?php
    printf
    ('%2f'$bedrag);
    ?>
    JortKmaandag 3 december 2007 @ 17:04
    quote:
    Op maandag 3 december 2007 16:53 schreef DaFrenk het volgende:
    Grmbl.. hoe krijg ik PHP zover dat hij geldbedragen als "7.50" schrijft en niet als "7.5"? Dus dat hij wel die 0 toevoegt?
    number_format();
    DaFrenkmaandag 3 december 2007 @ 17:07
    Oké! Bedankt.. welke van de twee moet ik nu gebruiken?
    Lightmaandag 3 december 2007 @ 17:14
    Ow, die van mij was niet helemaal goed
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    $money1
    = 68.75;
    $money2 = 54.35;
    $money = $money1 + $money2;
    // echo $money will output "123.1";
    $formatted = sprintf("%01.2f", $money);
    // echo $formatted will output "123.10"
    ?>


    [ Bericht 69% gewijzigd door Light op 03-12-2007 20:46:01 (Tag fix) ]
    JortKmaandag 3 december 2007 @ 17:16
    quote:
    Op maandag 3 december 2007 17:07 schreef DaFrenk het volgende:
    Oké! Bedankt.. welke van de twee moet ik nu gebruiken?
    Probeer een van de twee eens
    WyriHaximusmaandag 3 december 2007 @ 17:19
    quote:
    Op maandag 3 december 2007 17:16 schreef JortK het volgende:

    [..]

    Probeer een van de twee eens
    http://nl2.php.net/number_format werkt het makkelijkst ja
    DaFrenkmaandag 3 december 2007 @ 17:21
    number_format() is in mijn geval het handigst! Bedankt allebei!
    twimaandag 3 december 2007 @ 18:45
    Hoe noemen jullie de wat gedetailleerdere cms-pagina's eigenlijk? En bouwen jullie alle functionaliteit in 1 bestand?

    Ik ben bezig om het wiel opnieuw uit te vinden door een template voor een nieuwssysteem te maken welke ik in de toekomst eenvoudig in een site kan bouwen wanneer een klant het wil, en m'n cms related bestandsnamen wil ik zo duidelijk mogelijk krijgen.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    news.item.insert.php
    news.item.edit.php
    news.item.delete.php

    news.category.insert.php
    news.category.edit.php
    news.category.delete.php

    etc.

    Maar misschien iis het wel netter om dit met behulp van switch cases te doen waardoor je per item maar 1 bestand hebt:
    1
    2
    news.item.php
    news.category.php

    Maar dan zul je voor sommige cms-functionaliteiten wel enorm grote bestanden krijgen.

    Is er literatuur of zijn er bepaalde richtlijnen en/of aangrijpingspunten hierover?
    Farenjimaandag 3 december 2007 @ 21:01
    Ik zet elke class in een eigen bestand. Als je het op de eerste manier doet (per functie een bestand) krijg je veel te veel versnippering, naast de methodes insert, edit en delete zal je wsch veel meer functies hebben en dan zit je voor je het weet met 80 miljoen bestanden. Een bestand met alle methodes en properties van een class bij elkaar is veel praktischer, grote bestanden zijn geen probleem als je een goede IDE hebt.
    PiRANiAmaandag 3 december 2007 @ 21:26
    ik snap eigenlijk nog steeds niet wat classes zijn, wat ze doen en waar ze goed voor zijn...

    ik heb ze in 3 jaar nog nooit gebruikt iig...

    wie legt het me uit?
    JortKmaandag 3 december 2007 @ 21:32
    quote:
    Op maandag 3 december 2007 21:26 schreef PiRANiA het volgende:
    ik snap eigenlijk nog steeds niet wat classes zijn, wat ze doen en waar ze goed voor zijn...

    ik heb ze in 3 jaar nog nooit gebruikt iig...

    wie legt het me uit?
    http://nl2.php.net/class is een hele goede om mee te beginnen
    WyriHaximusmaandag 3 december 2007 @ 21:35
    quote:
    Op maandag 3 december 2007 21:32 schreef JortK het volgende:

    [..]

    http://nl2.php.net/class is een hele goede om mee te beginnen
    Daarnaast zijn deze ook erg handig:
    http://nl3.php.net/oop (Voor PHP4)
    http://nl3.php.net/oop5 (Voor PHP5)
    twimaandag 3 december 2007 @ 23:47
    Ik denk dat ik me daar maar eens flink in ga verdiepen, want dat aanklooien wat ik nu doe werkt wel, maar is gewoon veel te omslachtig inderdaad.
    Tuvai.netdinsdag 4 december 2007 @ 09:03
    Ik ben ook pas laat met OOP begonnen in PHP, omdat ik het ook nooit echt nodig had. Pas wanneer ik met ASP/VB.NET ging werken en dus meer object-oriënted ging werken had ik er pas de interesse voor. Kan in ieder geval een hoop werk schelen als je veelgebruikte functies bij elkaar in een class stopt en die bij elk(e) website/project kunt gebruiken. En natuurlijk om een beetje met de tijd mee te gaan.
    Chandlerdinsdag 4 december 2007 @ 13:07
    quote:
    Op maandag 3 december 2007 16:20 schreef JortK het volgende:

    [..]
    [ code verwijderd ]

    Of trim() :?
    Ik doelde eingelijk meer op een functie dat van het volgende voorbeeld

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
            $this->language = array("ad"    => "Andorra",
                                    "ae"    => "United Arab Emirates",
                                    "af"    => "Afghanistan",
                                    "ag"    => "Antigua and Barbuda",
                                    "ai"    => "Anguilla",
                                    "al"    => "Albania",
                                    "am"    => "Armenia",
                                    "an"    => "Netherlands Antilles",
                                    "ao"    => "Angola",
                                    "aq"    => "Antarctica",


    dit maakt

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $this->language = array("ad"    => "Andorra",
                            "ae"    => "United Arab Emirates",
                            "af"    => "Afghanistan",
                            "ag"    => "Antigua and Barbuda",
                            "ai"    => "Anguilla",
                            "al"    => "Albania",
                            "am"    => "Armenia",
                            "an"    => "Netherlands Antilles",
                            "ao"    => "Angola",
                            "aq"    => "Antarctica",


    Zie het verschil in spaties ;)
    Aquaatjedinsdag 4 december 2007 @ 15:04
    Het makkelijkste is om een bestand te openen en dan regel voor regel in te lezen en te evalueren. Tel het aantal spatie-karakters aan het begin van de regel en verwijder deze indien nodig. Schrijf vervolgens de output terug naar dezelfde regel. Ik neem tenminste aan dat het gaat om een bestand via php automatisch te verwerken en niet in een editor o.i.d.? Er zijn zat editors waar je dat met wat simpele shortcuts kunt doen.
    markiemarkdinsdag 4 december 2007 @ 16:02
    Hooii lieve vrienden! Heb in mijn mysql database een aantal teksten staan. Deze zijn in vershchillende talen. Het probleem is dat deze de pure teksten zijn dus inclusief alle haakjes en streepjes, niet omgezet naar &..; code. Als ik deze weergeef in mijn browser komen er in Firefox blokjes met vraagtekentjes te staan en in internet explorer kleine vierkantjes. Hoe kan ik dit oplossen. De codering in de database is utf-8- unicode.
    Hoe kan ik dit oplossen?
    JortKdinsdag 4 december 2007 @ 16:04
    quote:
    Op dinsdag 4 december 2007 16:02 schreef markiemark het volgende:
    Hooii lieve vrienden! Heb in mijn mysql database een aantal teksten staan. Deze zijn in vershchillende talen. Het probleem is dat deze de pure teksten zijn dus inclusief alle haakjes en streepjes, niet omgezet naar &..; code. Als ik deze weergeef in mijn browser komen er in Firefox blokjes met vraagtekentjes te staan en in internet explorer kleine vierkantjes. Hoe kan ik dit oplossen. De codering in de database is utf-8- unicode.
    Hoe kan ik dit oplossen?
    htmlentities?
    markiemarkdinsdag 4 december 2007 @ 16:06
    quote:
    Op dinsdag 4 december 2007 16:04 schreef JortK het volgende:

    [..]

    htmlentities?
    moet daar dan nog iets achter? Zie http://nl2.php.net/manual/en/function.htmlentities.php hier dat er de nodige aanvullingen kunnen zijn..
    JortKdinsdag 4 december 2007 @ 16:07
    quote:
    Op dinsdag 4 december 2007 16:06 schreef markiemark het volgende:

    [..]

    moet daar dan nog iets achter? Zie http://nl2.php.net/manual/en/function.htmlentities.php hier dat er de nodige aanvullingen kunnen zijn..
    Probeer eerst maar gewoon eens

    1
    2
    3
    <?php
    htmlentities
    ($string);
    ?>
    markiemarkdinsdag 4 december 2007 @ 16:09
    quote:
    Op dinsdag 4 december 2007 16:07 schreef JortK het volgende:

    [..]

    Probeer eerst maar gewoon eens
    [ code verwijderd ]
    Er zit ook html in de database.. Die wordt dan ook omgezet naar tekst.. en das niet de bedoeling..
    Xcaliburdinsdag 4 december 2007 @ 16:52
    Je HTML pagina ook als UTF-8 coderen helpt niet?
    Chandlerdinsdag 4 december 2007 @ 21:21
    Tnx Aquaatje, ik zal even een routine schrijven.

    Iets anders. Voor mijn statistieken script sla ik nu continue de 'zoekwoorden' appart op, is dit handig of is het handiger om gewoon de zoek zinnen op te slaan?

    Anyone?
    HuHudinsdag 4 december 2007 @ 21:32
    Ligt er een beetje aan wat je vervolgens met die zoekwoorden wil gaan doen. Wil je kijken wel woord afzonderlijk het meeste voor komt, dan kun je ze apart opslaan. Maar wil je ook relaties tussen zoekwoorden weten, dan moet je weer andere dingen bijhouden.
    Farenjidinsdag 4 december 2007 @ 21:48
    quote:
    Op dinsdag 4 december 2007 16:02 schreef markiemark het volgende:
    Hooii lieve vrienden! Heb in mijn mysql database een aantal teksten staan. Deze zijn in vershchillende talen. Het probleem is dat deze de pure teksten zijn dus inclusief alle haakjes en streepjes, niet omgezet naar &amp;amp;amp;..; code. Als ik deze weergeef in mijn browser komen er in Firefox blokjes met vraagtekentjes te staan en in internet explorer kleine vierkantjes. Hoe kan ik dit oplossen. De codering in de database is utf-8- unicode.
    Hoe kan ik dit oplossen?
    Als je met utf-8 wil werken moet *alles* utf-8 zijn, niet alleen je database. Dus zorgen dat je pagina ook in utf-8 is (meta content-type tag goed zetten en vooral ook zorgen dat utf-8 als content-type in de page headers wordt meegestuurd) en in php zorgen dat de mbstring extentie is geinstalleerd en alleen de utf-8 veilige functies gebruiken. Alle standaard string functies zoals strlen etc raken in de war van utf-8 en geven verkeerde resultaten als je niet expliciet instelt dat de utf-8 versie gebruikt moet worden, dus bijv door mb_strlen te gebruiken ipv strlen.
    markiemarkwoensdag 5 december 2007 @ 11:03
    quote:
    Op dinsdag 4 december 2007 21:48 schreef Farenji het volgende:

    [..]

    Als je met utf-8 wil werken moet *alles* utf-8 zijn, niet alleen je database. Dus zorgen dat je pagina ook in utf-8 is (meta content-type tag goed zetten en vooral ook zorgen dat utf-8 als content-type in de page headers wordt meegestuurd) en in php zorgen dat de mbstring extentie is geinstalleerd en alleen de utf-8 veilige functies gebruiken. Alle standaard string functies zoals strlen etc raken in de war van utf-8 en geven verkeerde resultaten als je niet expliciet instelt dat de utf-8 versie gebruikt moet worden, dus bijv door mb_strlen te gebruiken ipv strlen.
    Dat is dus eigenlijk niet te doen.. met htmlentities() werkt het ook niet omdat dan de html code ook wordt omgezet.. hoe kan ik er voor zorgen dat de tekens wel om worden gezet, maar de html niet?
    JortKwoensdag 5 december 2007 @ 11:30
    quote:
    Op woensdag 5 december 2007 11:03 schreef markiemark het volgende:

    [..]

    Dat is dus eigenlijk niet te doen.. met htmlentities() werkt het ook niet omdat dan de html code ook wordt omgezet.. hoe kan ik er voor zorgen dat de tekens wel om worden gezet, maar de html niet?
    Dat wordt volgens mij een lastig verhaal
    Tuvai.netwoensdag 5 december 2007 @ 11:44
    Gooi anders eens alles om naar ISO-8859-1 / ISO-8859-15, ik heb deze altijd aangehouden en nooit problemen gehad m.b.t. speciale karakters.
    Chandlerwoensdag 5 december 2007 @ 12:15
    quote:
    Op dinsdag 4 december 2007 21:32 schreef HuHu het volgende:
    Ligt er een beetje aan wat je vervolgens met die zoekwoorden wil gaan doen. Wil je kijken wel woord afzonderlijk het meeste voor komt, dan kun je ze apart opslaan. Maar wil je ook relaties tussen zoekwoorden weten, dan moet je weer andere dingen bijhouden.
    Tja, dat is en blijft de vraag hé.

    Maar zou jij relaties leggen? of juist niet?
    JortKwoensdag 5 december 2007 @ 12:45
    quote:
    Op woensdag 5 december 2007 12:15 schreef Chandler het volgende:

    [..]

    Tja, dat is en blijft de vraag hé.

    Maar zou jij relaties leggen? of juist niet?
    Ik ben altijd ervoor om je database relationeel te houden.

    Zo heb je later ook de mogelijkheid om makkelijker zaken 1:n te maken zonder te veel te hoeven kloten
    Chandlerwoensdag 5 december 2007 @ 13:35
    quote:
    Op dinsdag 4 december 2007 21:21 schreef Chandler het volgende:
    Tnx Aquaatje, ik zal even een routine schrijven.
    En hier istie dan, als iemand er nog nut voor ziet

    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
    <?php
        
    function checkSpaces($in)
        {
            
    $inNew explode("\n"$in);
            
            
    $inItems count($inNew);
            
    $inMin   1000;
            
            for (
    $x 0$x $inItems$x++)
            {
                for (
    $y 0$y strlen($inNew[$x]); $y++)
                {
                    if (
    substr($inNew[$x], $y1) != " ")
                    {
                        
    $inMin $y;
                        break;
                    }
                }
            }
            
            return 
    $inMin;
        }
        
        function 
    removeSpaces($in$remove)
        {
            
    $inNew explode("\n"$in);

            
    $inItems count($inNew);
            
            for (
    $x 0$x $inItems$x++)
            {
                
    $inNew[$x] = substr($inNew[$x], $removestrlen($inNew[$x]) - $remove);
            }
            
            return 
    implode("\n"$inNew);
        }
        


    $str "    hello world
        moi
           hoi
             lol
                test
             test
           test
        tes"
    ;
        

    <
    h2>Original</h2>
    <
    pre>


    echo 
    checkSpaces($str);

    echo 
    "\r\n" $str;

    </
    pre>
    <
    h2>Altered</h2>
    <
    pre>

    echo 
    removeSpaces($strcheckSpaces($str));

    </
    pre>
    ?>


    als het sneller kan wil ik dit ook wel horen

    [ Bericht 42% gewijzigd door Chandler op 05-12-2007 13:58:44 ]
    autocuewoensdag 5 december 2007 @ 14:13
    quote:
    Op woensdag 5 december 2007 13:35 schreef Chandler het volgende:

    [..]

    En hier istie dan, als iemand er nog nut voor ziet
    [ code verwijderd ]

    als het sneller kan wil ik dit ook wel horen
    Het kan in ieder geval ietsje korter . Qua snelheid zou de volgende het denk ik moeten winnen, maar niet omdat het écht efficienter is.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
    function ltrimSpaceColumns($in) {
        if(
    preg_match_all('|^ +|m'$in$matches)) {
            
    $min 0x7fffffff;
            foreach(
    $matches[0] as $match) {
                if((
    $newMin strlen($match)) < $min) {
                    
    $min $newMin;
                }
            }
            if(
    $min 0) {
                
    $in preg_replace('|^ {'.$min.'}|m'''$in);
            }
        }
        return 
    $in;
    }
    ?>

    Als het overigens relatief vaak voorkomt dat een stuk tekst geen 'spatie kolom' heeft, dan zou jouw aanpak een stuk sneller kunnen worden (en zijn dan deze) wanneer je stopt met zoeken bij het vinden van een regel met $inMin == 0.

    [ Bericht 27% gewijzigd door autocue op 05-12-2007 14:20:12 ]
    Geqxonwoensdag 5 december 2007 @ 21:59
    Een enorm simpele vraag...

    Ik ben bezig een query op te bouwen zodat ik een tekstueele representatie krijg van de laatste 5 acties van elke tabel / tabellengroep. Een voorbeeld:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT CONCAT('New client: ',c.Name) AS Description, c.DateAdded AS Date
    FROM client AS c
    WHERE c.DateAdded != 0
    ORDER BY c.DateAdded DESC
    LIMIT ".$max." 

    SELECT CONCAT('Updated client: ',c.Name) AS Description, c.DateUpdated AS Date
    FROM client AS c
    WHERE c.DateUpdated != 0
    ORDER BY c.DateUpdated DESC
    LIMIT ".$max." 


    Hoe krijg ik dit in PHP mogelijk? Ik wil dus alle 15 queries in één keer runnen en alle records in hetzelfde resultset krijgen.

    Ik kan natuurlijk in een loop gaan werken, maar ik vind het het mooist om zo veel als mogelijk in de query te doen, en dat in één keer in een array te stoppen. Of kan dit niet?
    Farenjiwoensdag 5 december 2007 @ 23:11
    Maak er 1 query van:

    1
    2
    3
    4
    5
    6
    7
    8
    SELECT 
    CONCAT('New client: ',c1.Name) AS DescriptionNew, c1.DateAdded,
    CONCAT('Updated client: ',c2.Name) AS DescriptionUpdated, c2.DateUpdated,
    CONCAT('Bladiebla client: ',c3.Name) AS DescriptionBladiebla, c3.DateBladiebla
    FROM client AS c1, client AS c2, client AS c3
    WHERE c1.DateAdded != 0 AND c2.DateUpdated != 0 AND c3.DateBladiebla != 0
    ORDER BY c.DateAdded DESC, c2.DateUpdated DESC, c3.DateBladiebla DESC
    LIMIT $max
    Geqxonwoensdag 5 december 2007 @ 23:17
    Dat is mogelijk, echter zijn het vijftien queries, met ieder weer één a twéé joins. Dat word te veel rotzooi, nog minder mooi dan alle queries in een array en ze langs te gaan.
    SuperRembowoensdag 5 december 2007 @ 23:25
    quote:
    Op woensdag 5 december 2007 21:59 schreef Geqxon het volgende:
    Een enorm simpele vraag...
    Zoiets?

    1
    2
    3
    4
    5
    SELECT c.Name, c.DateAdded, c.DateUpdated
    FROM client AS c
    WHERE c.DateAdded != 0 OR c.DateUpdated != 0
    ORDER BY (CASE c.DateUpdated WHEN 0 THEN c.DateAdded ELSE c.DateAdded END) DESC
    LIMIT ".$max." 


    Warom zijn die datum niet gewoon NULL als er geen datum in staat? (Dan kan je ook gewoon IFNULL gebruiken in plaats van die CASE).
    Zijn er ook clients die niet toegevoegd zijn (DateAdded = 0)? :?
    Is het niet handiger om de DateUpdated bij het toevoegen gelijk te maken aan DateAdded? (Dat sorteert makkelijker en sneller)
    Geqxonwoensdag 5 december 2007 @ 23:30
    quote:
    Op woensdag 5 december 2007 23:25 schreef SuperRembo het volgende:

    [..]

    Zoiets?
    [ code verwijderd ]

    Warom zijn die datum niet gewoon NULL als er geen datum in staat? (Dan kan je ook gewoon IFNULL gebruiken in plaats van die CASE).
    Zijn er ook clients die niet toegevoegd zijn (DateAdded = 0)?
    Is het niet handiger om de DateUpdated bij het toevoegen gelijk te maken aan DateAdded? (Dat sorteert makkelijker en sneller)
    Er zijn clients zonder aanmaakdatum, dit is uit een oude systeemmigratie. Om deze uit het logboek te vermijden staat er deze CASE bij.

    DateUpdated en DateAdded zijn twee verschillende eigenschappen, en wil ik ook zo in het logboek terug zien. Added voor het toevoegen van het record, updated voor het wijzigen van het record. Wanneer ik deze samen voeg kan ik niet én de laatste vijf toegevoegde clients én de laatste vijf gewijzigde clients tonen. Correct me if I'm wrong.
    Farenjiwoensdag 5 december 2007 @ 23:31
    Ongetest:
    zorg dat in elke query de kolomnamen hetzelfde zijn en zet alle queries onderaan in 1 string, gescheiden door puntkomma.Voor deze string uit. Als het goed is heb je dan alles in 1 recordset.
    SuperRembodonderdag 6 december 2007 @ 00:12
    quote:
    Op woensdag 5 december 2007 23:31 schreef Farenji het volgende:
    Ongetest:
    zorg dat in elke query de kolomnamen hetzelfde zijn en zet alle queries onderaan in 1 string, gescheiden door puntkomma.Voor deze string uit. Als het goed is heb je dan alles in 1 recordset.
    Dan moet je gewoon een union / union all gebruiken.
    wobbeldonderdag 6 december 2007 @ 00:14
    Zucht, ik krijg de laatste tijd steeds een 75 jarige man in de winkel die allerlei dingen vraagt over PHP ... werk in een computer winkel, ben geen PHP helpdesk

    Kan ik hem niet naar dit topic doorverwijzen?

    Hoeft ie bij ons ook de balie niet meer onder te kwijlen, wat ie nu al 2x heeft gedaan
    Geqxondonderdag 6 december 2007 @ 00:15
    quote:
    Op woensdag 5 december 2007 23:31 schreef Farenji het volgende:
    Ongetest:
    zorg dat in elke query de kolomnamen hetzelfde zijn en zet alle queries onderaan in 1 string, gescheiden door puntkomma.Voor deze string uit. Als het goed is heb je dan alles in 1 recordset.
    quote:
    Op donderdag 6 december 2007 00:12 schreef SuperRembo het volgende:

    [..]

    Dan moet je gewoon een union / union all gebruiken.
    Top! Union was exact wat ik zocht. Dank u.

    En ja, in de resultset gebruik ik altijd dezelfde kolomnamen: Description en Date.
    Lightdonderdag 6 december 2007 @ 00:31
    quote:
    Op woensdag 5 december 2007 21:59 schreef Geqxon het volgende:

    Ik kan natuurlijk in een loop gaan werken, maar ik vind het het mooist om zo veel als mogelijk in de query te doen, en dat in één keer in een array te stoppen. Of kan dit niet?
    Als je zowel de laatste 5 toevoegingen en de laatste 5 wijzigingen wilt zien dan heb je minimaal 2 queries nodig, omdat je niet kunt sorteren op 2 dingen. Als je een toevoeging ook als een wijziging beschouwt (en bij toevoegen dus wijzigdatum en toevoegdatum gelijk maakt) dan kun je met 1 query toe.

    Hoe je bij 15 queries komt is me niet helemaal duidelijk.
    Geqxondonderdag 6 december 2007 @ 00:45
    quote:
    Op donderdag 6 december 2007 00:31 schreef Light het volgende:

    [..]

    Als je zowel de laatste 5 toevoegingen en de laatste 5 wijzigingen wilt zien dan heb je minimaal 2 queries nodig, omdat je niet kunt sorteren op 2 dingen. Als je een toevoeging ook als een wijziging beschouwt (en bij toevoegen dus wijzigdatum en toevoegdatum gelijk maakt) dan kun je met 1 query toe.

    Hoe je bij 15 queries komt is me niet helemaal duidelijk.
    Het totaalproduct, mocht dat het duidelijker maken. Het product van drie (in de applicatie vijftien) verschillende queries:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    +-----------------------------------+------------+
    | Description                       | Date       |
    +-----------------------------------+------------+
    | Added client x to company y       | 05-12-2007 |
    | Added client a to company y       | 04-12-2007 |
    | Added client d to company y       | 03-12-2007 |
    | Added client c to company y       | 02-12-2007 |
    | Added client b to company z       | 02-12-2007 |
    | Added company y                   | 01-12-2007 |
    | Added company ...                 | 30-10-2007 |
    | Added company ...                 | 30-10-2007 |
    | Added company ...                 | 11-07-2007 |
    | Added company ...                 | 05-03-2007 |
    | Changed information on company y  | 02-12-2007 |
    +-----------------------------------+------------+


    Dus de laatste vijf van elke soort actie. Met de union kan ik het nu eventueel alles door elkaar gooien en op de kolom Date sorteren, al heb ik dat liever niet.

    Dit is overigens puur als extra zodat de eindgebruiker bij een foutieve invoer kan kijken waar hij de klant per ongeluk aan toegevoegd heeft. (Nogmaals: Als voorbeeld, dit is namelijk wel afgehandeld in de applicatie zelf).
    broodmonkehdonderdag 6 december 2007 @ 10:53
    Misschien een domme vraag :

    Ik wil met een query een soort van rapport opbouwen met gegevens die in een formulier zijn ingevuld. Nu is het zo dat als er een optie niet geselecteerd wordt deze niet in de query moet worden meegenomen. Dit is de query:

    1
    2
    3
    4
    <?php
    $query 
    mysql_query("SELECT * FROM vrijwilligers_gegevens WHERE YEAR(datum) = YEAR('$jaar') AND geslacht = '$geslacht'
    AND nationaliteit = '$nationaliteit' AND YEAR(geboortedatum) = YEAR('$geboortedatum')"
    );
    ?>


    dus als bijv. geslacht niet is ingevuld moet de query dus alle geslachten uit de database selecteren. Er komen nog meer opties in , dus het liefst heb ik alles in 1 query.
    Tuvai.netdonderdag 6 december 2007 @ 10:58
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    if(isset($year)){
       
    $query_where.=" AND year(datum)='".mysql_real_escape_string($year)."'";
    }
    if(isset(
    $geslacht)){
       
    $query_where.=" AND geslacht='".mysql_real_escape_string($geslacht)."'";
    }
    $query=mysql_query("SELECT * FROM vrijwilligers_gegevens WHERE bla=bla".$query_where);
    ?>


    [ Bericht 26% gewijzigd door Tuvai.net op 06-12-2007 14:03:25 ]
    Farenjidonderdag 6 december 2007 @ 11:03
    Darkomendonderdag 6 december 2007 @ 11:12
    Chandlerdonderdag 6 december 2007 @ 12:43
    quote:
    Op woensdag 5 december 2007 14:13 schreef autocue het volgende:

    [..]

    Het kan in ieder geval ietsje korter . Qua snelheid zou de volgende het denk ik moeten winnen, maar niet omdat het écht efficienter is.
    [ code verwijderd ]

    Als het overigens relatief vaak voorkomt dat een stuk tekst geen 'spatie kolom' heeft, dan zou jouw aanpak een stuk sneller kunnen worden (en zijn dan deze) wanneer je stopt met zoeken bij het vinden van een regel met $inMin == 0.
    Klopt, die van mij had nog iets beter gekund
    WyriHaximusdonderdag 6 december 2007 @ 13:04
    quote:
    Op donderdag 6 december 2007 11:03 schreef Farenji het volgende:
    [ link | afbeelding ]
    die is en blijft goed !
    broodmonkehdonderdag 6 december 2007 @ 13:37
    quote:
    Op donderdag 6 december 2007 10:58 schreef Tuvai.net het volgende:

    [ code verwijderd ]
    bedankt
    Chandlerdonderdag 6 december 2007 @ 20:17
    quote:
    Op woensdag 5 december 2007 14:13 schreef autocue het volgende:

    [..]

    Het kan in ieder geval ietsje korter :P. Qua snelheid zou de volgende het denk ik moeten winnen, maar niet omdat het écht efficienter is.
    [ code verwijderd ]

    Als het overigens relatief vaak voorkomt dat een stuk tekst geen 'spatie kolom' heeft, dan zou jouw aanpak een stuk sneller kunnen worden (en zijn dan deze) wanneer je stopt met zoeken bij het vinden van een regel met $inMin == 0.
    Vraagje; hoe zou je kunnen controlleren of een regel leeg is? in de zin van er zit een enter in je code

    (voorbeeld)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    $str = "    hello world
        moi
           hoi
             lol
                test
             test
           test
        tes

        hello world
        moi
           hoi
             lol
                test
             test
           test
        tes";


    Nu zie je opeens een 'lege' regel.. die moet je dus overslaan? maar hoe kan ik die afvangen? :D

    ";
    HuHudonderdag 6 december 2007 @ 20:47
    Matchen op een dubbele \n, dus \n\n.
    Farenjidonderdag 6 december 2007 @ 20:56
    quote:
    Op donderdag 6 december 2007 20:47 schreef HuHu het volgende:
    Matchen op een dubbele \n, dus \n\n.
    Wat dan als er alleen een spatie op een regel staat, dan matcht ie al niet meer maar het is wel een lege regel.

    Gewoon per regel testen met de regexp /^\s*\n$/
    markiemarkdonderdag 6 december 2007 @ 22:46
    quote:
    Op woensdag 5 december 2007 11:30 schreef JortK het volgende:

    [..]

    Dat wordt volgens mij een lastig verhaal
    Ik heb uit mijn css een regeltje bovenaan weggehaald waar iets over utf-8 stond.. Dat heb ik er uit gehaald. Nu zie ik geen problemen meer.

    Het rare is dat hij hem soms wel goed weer geeft, en soms met rare vraagtekentjes (FF) of blokjes (IE). Er veranderd ondertussen niks in de database of in de html..
    autocuevrijdag 7 december 2007 @ 00:41
    quote:
    Op donderdag 6 december 2007 20:17 schreef Chandler het volgende:

    [..]

    Vraagje; hoe zou je kunnen controlleren of een regel leeg is? in de zin van er zit een enter in je code

    (voorbeeld)
    [ code verwijderd ]

    Nu zie je opeens een 'lege' regel.. die moet je dus overslaan? maar hoe kan ik die afvangen?

    ";
    Door (bijvoorbeeld ) te forceren dat de matches waarbij de lengte van de whitespace gecheckt wordt niet enkel whitespace is. Er zal dus een niet whitespace karakter moeten volgen na de spaties, dus alleen de regex zal aangepast moeten worden en er moet verwezen worden naar een andere matching groep (namelijk die voor de spaties). Zoals volgt ongeveer .
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
    function ltrimSpaceColumns($in) {
        if(
    preg_match_all('|^( *)\S|m'$in$matches)) {
            
    $min 0x7fffffff;
            while((
    $pair each($matches[1])) && $min 0) {
                if((
    $newMin strlen($pair[1])) < $min) {
                    
    $min $newMin;
                }
            }
            if(
    $min 0) {
                
    $in preg_replace('|^ {'.$min.'}|m'''$in);
            }
        }
        return 
    $in;
    }
    ?>
    Chandlervrijdag 7 december 2007 @ 09:21
    quote:
    Op vrijdag 7 december 2007 00:41 schreef autocue het volgende:

    [..]

    Door (bijvoorbeeld ) te forceren dat de matches waarbij de lengte van de whitespace gecheckt wordt niet enkel whitespace is. Er zal dus een niet whitespace karakter moeten volgen na de spaties, dus alleen de regex zal aangepast moeten worden en er moet verwezen worden naar een andere matching groep (namelijk die voor de spaties). Zoals volgt ongeveer .
    [ code verwijderd ]
    Werkt idd helemaal perfect, nu heb ik nog 1 andere vraag.

    Voor een site van mij wil ik scripts toevoegen en deze net zoals op FOK met code highlight aan gebruikers laten zien. Echter copy en plak ik ook wel eens functies waarbij dus geen <?php en ?> voor en na staan. Deze wil ik dus graag toevoegen maar dat gaat steeds fout m.b.t. een controle.

    Nu vraag ik niet om code; maar meer om het idee, hoe kan ik het beste checken of deze aan het begin/end staan.
    $start = "<?php";
    $end = "?>";

    Nu doe ik substr($str, 0, strlen($start)) en controlleer het met $start (!=) en doe het zelfde met end, maar dan op het eind. Echter krijg ik toch steeds een dubbele <?php etc als ik de code opsla!

    Anyone?
    Spike1506vrijdag 7 december 2007 @ 09:47
    * Spike1506 mompelt iets over regular-expressions.
    Chandlervrijdag 7 december 2007 @ 10:37
    * Chandler verstopt zich, snapt amper een bal van regex...
    Farenjivrijdag 7 december 2007 @ 11:05
    quote:
    Op vrijdag 7 december 2007 10:37 schreef Chandler het volgende:
    * Chandler verstopt zich, snapt amper een bal van regex...
    Daar zou ik dan maar eens wat aan doen, een programmeur kan niet zonder.
    Er zijn zat tutorials te vinden.
    JortKvrijdag 7 december 2007 @ 11:49
    quote:
    Op vrijdag 7 december 2007 11:05 schreef Farenji het volgende:

    [..]

    Daar zou ik dan maar eens wat aan doen, een programmeur kan niet zonder.
    Er zijn zat tutorials te vinden.
    Post eens wat goede dan
    Farenjivrijdag 7 december 2007 @ 12:22
    Hier staan wel goede tussen
    Tuvai.netvrijdag 7 december 2007 @ 12:24
    http://weblogtoolscollection.com/regex/regex.php

    Deze heb ik toendertijds veel van geleerd. En regular expressions vind ik inderdaad een van de moeilijkere dingetjes op gebied van programmeren.
    Lightvrijdag 7 december 2007 @ 19:32
    quote:
    Op vrijdag 7 december 2007 12:24 schreef Tuvai.net het volgende:

    En regular expressions vind ik inderdaad een van de moeilijkere dingetjes op gebied van programmeren.
    Het is ook een van de leukere dingen, vind ik
    Farenjivrijdag 7 december 2007 @ 20:02
    PiRANiAzaterdag 8 december 2007 @ 10:28
    quote:
    Op vrijdag 7 december 2007 20:02 schreef Farenji het volgende:
    [ afbeelding ]
    geniaal
    sabanzondag 9 december 2007 @ 12:26
    Hoe genereer ik dit met PHP?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" width="300">
      <tr>
        <td width="100">data</td>
        <td width="100">data</td>
        <td width="100">data</td>
      </tr>
      <tr>
        <td width="100">data</td>
        <td width="100">data</td>
        <td width="100">data</td>
      </tr>
      <tr>
        <td width="100">data</td>
        <td width="100">data</td>
        <td width="100">data</td>
      </tr>
    </table>

    Dus een tabel, 3 bij 3, ieder cel gevuld met data.
    Moet ik perse in ieder cel mysql_result(); plaatsen, of is het te 'automatiseren' ?

    Iets met mysql_fetch_array?
    twizondag 9 december 2007 @ 12:33
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    $query
    = 'SELECT veld1, veld2, veld3 FROM .....';

    $result = mysql_query($query, .......);
    ...

    echo
    '<table>';

    while (list(
    $veld1, $veld2, $veld3) = mysql_fetch_array($result)) {
      echo
    '<tr><td>'.$veld1.'</td><td>'.$veld2.'</td>'.$veld3.'</td></tr>';
    }

    echo
    '</table>';
    ?>
    Volgorde van de list correspondeert met de volgorde van de items die je ophaalt in de query.

    Als je heel veel items hebt is het overzichtelijker om het op te vangen in een array

    1
    2
    3
    <?php
    ...($arraynaam = mysql_fetch_array($result)...
    ?>

    en dan achteraf de variabelen toe te kennen:
    1
    2
    3
    <?php
    $veld1
    = $arraynaam['veld1'];
    ?>

    etc.
    sabanzondag 9 december 2007 @ 12:38
    Het punt is, vooraf is niet bekend hoeveel cellen ik nodig heb.
    Ik wil maximaal 3 cellen naast elkaar, maar onder elkaar kunnen het er 4 zijn (4x3 cellen), of kunnen het er 6 zijn (6x3 cellen).
    twizondag 9 december 2007 @ 12:40
    Als elke rij in de tabel ook een rij in de database is, dan loopt deze code gewoon netjes alle rijen langs totdat hij er geen meer vindt.
    sabanzondag 9 december 2007 @ 12:43
    quote:
    Op zondag 9 december 2007 12:40 schreef twi het volgende:
    Als elke rij in de tabel ook een rij in de database is, dan loopt deze code gewoon netjes alle rijen langs totdat hij er geen meer vindt.
    Zal het straks direct uitproberen, bedankt!
    Echter is het niet helemaal wat ik wil, het is iets uitgebreider, namelijk;

    Table_name
    veld1: id
    veld2: info

    veld1: id
    veld2: info

    veld1: id
    veld2: info

    veld1: id
    veld2: info

    Ieder cel moet veld1 en veld2 bevatten.
    twizondag 9 december 2007 @ 12:52
    Dan doe je in de while loop:
    1
    2
    3
    <?php
    echo '<tr><td>Veld 1<br />Veld2</td><td>'.$veld1.'<br />'.$veld2.'</td></tr>';
    ?>

    Je kunt natuurlijk zelf kiezen hoe je de data wilt presenteren. Het gegeven dat deze while loop elke rij resultaten doorloopt is het belangrijkste.

    Overigens, hoewel mijn code ongetwijfeld nog veel netter te maken is, zou ik al dat cellpadding en border gebeuren in jouw <table> tag vervangen door CSS in een extern bestand.
    sabanzondag 9 december 2007 @ 13:02
    Hij klopt niet helemaal, hij maakt er dit van:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <table>
    <tr>
    <td>40001<br />1,99<br />179,00</td>
    <td>40001<br />1,99<br />179,00</td>
    </tr>
    <tr>
    <td>40002<br />2,49<br />239,00</td>
    <td>40002<br />2,49<br />239,00</td>
    </tr>
    </table>
    twizondag 9 december 2007 @ 13:09
    In de eerste td moet je dan ook de titel zetten die je aan het veld geeft (ID, Prijs of wat de omschrijving van het veld ernaast ook is), niet nog een keer de variabele

    Overigens zou ik zelf, afhankelijk van welke data je wilt presenteren, dit niet zo gauw doen met behulp van <br />'s in <td>'s, maar gewoon op de eerstgenoemde manier. Veel overzichtelijker voor de gebruiker.

    1
    2
    3
    4
    5
    6
    -------------------------------
    ID    Prijs      Omschrijving
    -------------------------------
    1     9,95       Omschrijving 1
    2     8,95       Omschrijving 2
    3    12,95       Omschrijving 3

    in plaats van:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    -------------------------------
    ID: 1
    Prijs: 9,95
    Omschrijving: Omschrijving 1
    -------------------------------
    ID: 2
    Prijs: 8,95
    Omschrijving: Omschrijving 2
    -------------------------------
    ID: 3
    Prijs: 12,95
    Omschrijving: Omschrijving 3
    -------------------------------


    [ Bericht 26% gewijzigd door twi op 09-12-2007 13:14:54 ]
    sabanzondag 9 december 2007 @ 13:14
    quote:
    Op zondag 9 december 2007 13:09 schreef twi het volgende:
    In de eerste td moet je dan ook de titel zetten die je aan het veld geeft (ID, Prijs) of wat de omschrijving van het veld ernaast ook is), niet nog een keer de variabele :)
    Dan zal het als nog niet werken, dan krijg ik alles onderelkaar, dus per TR krijg ik dan 1 TD.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <table>
    <tr>
    <td>40001<br />1,99</td>
    </tr>
    <tr>
    <td>40002<br />2,49</td>
    </tr>
    <tr>
    <td>40003<br />2,79</td>
    </tr>
    <tr>
    <td>40004<br />2,99</td>
    </tr>
    </table>


    Terwijl ik wil dat per TR minstens(max) 3 TD's moet bevatten, dus';

    1
    2
    3
    4
    5
    6
    7
    8
    <table>
    <tr>
    <td>40001<br />1,99</td> <td>40002<br />2,49</td> <td>40003<br />2,79</td>
    </tr>
    <tr>
    <td>40004<br />2,99</td> <td></td> <td></td>
    </tr>
    </table>
    twizondag 9 december 2007 @ 13:24
    Dan moet je een loopje schrijven wat na elke 3 items een </tr><tr> toevoegt zodat er een nieuwe regel begint. En bovendien lege <td>'s of een colspan toevoegt wanneer je niet genoeg velden hebt om de tabel compleet te maken:

    1
    2
    3
    4
    5
    6
    7
     ------------
    | x | x | x |
    |------------
    | x | x | x |
    |------------
    | x |   |   |
     ------------

    Een - voor mijn gevoel - nette manier om dat te doen heb ik nog niet gevonden. Die methode (m.b.v. modulus operator) heb ik zelf destijds vervangen door gewoon een <div> ervan te maken en die op float:left te zetten en een breedte van 1/3 van de container te geve. Dan worden ze gewoon zolang ze passen links gestapeld. Passen ze niet, verdwijnen ze naar de volgende regel. Maar dat is niet echt netjes met tabulaire data, natuurlijk.

    [ Bericht 11% gewijzigd door twi op 09-12-2007 13:51:02 ]
    JeRazondag 9 december 2007 @ 23:01
    Als je een for-loopje voor de <td>'s schrijft heeft de variabele die je in de for-loop gebruikt als teller ná de for-loop (die je kunt breaken) een waarde die je kunt gebruiken om de overige <td>'s te genereren
    Geqxonmaandag 10 december 2007 @ 21:45
    In de hoop dat hier iemand wat meer van regular expression weet.... dit is wat mij so far gelukt is:

    1[\\.-]


    Dus dat er op die positie een . (punt) of een - (dash) mag staan. Maar ik wil ook dat hij op deze positie spaties accepteert? Een white-space character pakt hij helaas niet. :)
    autocuemaandag 10 december 2007 @ 22:35
    quote:
    Op maandag 10 december 2007 21:45 schreef Geqxon het volgende:
    In de hoop dat hier iemand wat meer van regular expression weet.... dit is wat mij so far gelukt is:
    [ code verwijderd ]

    Dus dat er op die positie een . (punt) of een - (dash) mag staan. Maar ik wil ook dat hij op deze positie spaties accepteert? Een white-space character pakt hij helaas niet.
    Met dat ie een white-space character niet pakt, bedoel je dan dat je [.- ] hebt geprobeerd?
    Probeer anders [. -] of [.\- ] .
    SuperRembomaandag 10 december 2007 @ 23:26
    quote:
    Op maandag 10 december 2007 21:45 schreef Geqxon het volgende:
    In de hoop dat hier iemand wat meer van regular expression weet.... dit is wat mij so far gelukt is:
    [ code verwijderd ]

    Dus dat er op die positie een . (punt) of een - (dash) mag staan. Maar ik wil ook dat hij op deze positie spaties accepteert? Een white-space character pakt hij helaas niet. :)
    Volgens mij werkt het zo wel

    1[\\. -]


    Je moet wel de dash aan het eind van de set laten staan.
    Geqxonmaandag 10 december 2007 @ 23:48
    Dat werkt prima, de spatie tussen de dot en de dash. Dank u allen, zo simpel had ik het niet verwacht.

    Regular expression zijn nog best easy peasy, al ga ik wel aan een boek denken. Ik heb mijn regexxen nu vrij loosely based, maar dat kan veel strakker. Leuk!
    Xcaliburdinsdag 11 december 2007 @ 09:04
    Regexen zijn tof
    slacker_nldinsdag 11 december 2007 @ 13:49
    Heb een specifieke mysql vraag.

    Ik moet een DB dumpen, en daaruit wil ik alleen maar tables met een bepaalde prefix hebben, laten we zeggen XXX.

    Is het mogelijk om tegen mysqldump te zeggen, dump DB x, en pak dan alleen de tables XXXsomethingsomething?

    Anders moet ik namelijk eerst door die database de tables eruit plukken, dan die ergens in een var knallen en dan die var tegen mysqldump aanleggen. Zit zelf beetje te hopen dat het direct met mysqldump kan. Maar ik kom de optie niet zo snel tegen. Iemand met de wijsheid in pacht?
    Geqxondinsdag 11 december 2007 @ 14:00
    Heb je al eens wildcats geprobeerd? % ?
    slacker_nldinsdag 11 december 2007 @ 14:08
    quote:
    Op dinsdag 11 december 2007 14:00 schreef Geqxon het volgende:
    Heb je al eens wildcats geprobeerd? % ?
    1
    2
    3
    4
    5
    6
    mysqldump -u user -p -B mydb --no-data --tables XXX%
    # arghh...
    mysqldump: Couldn't find table: "PPD%"

    mysqldump -u user -p -B mydb --no-data --where='tables LIKE "XXX%"'
    # dumpt gewoon de hele DB
    Geqxondinsdag 11 december 2007 @ 14:19
    Lastig. Het enige wat ik hiernaast vinden kon was een query in de trant van:

    1select table_name from information_schema.tables where table_schema='www-dbname' and table_name like 'test%';


    maar goed, die had je al.
    Farenjidinsdag 11 december 2007 @ 14:20
    Ik zou hier een simpel perl scriptje voor schrijven...
    slacker_nldinsdag 11 december 2007 @ 14:27
    quote:
    Op dinsdag 11 december 2007 14:20 schreef Farenji het volgende:
    Ik zou hier een simpel perl scriptje voor schrijven...
    Heb het in de shell gedaan:

    get_tables.sql:

    1
    2
    use mydb;
    show tables;


    En dan dit uitvoeren:

    1
    2
    mysql -u user -p < get_tables.sql | sed  -e 's/|//g' | grep "^XXX" | \
    xargs echo mysqldump -u root -p mydb --no-data --tables
    Geqxondinsdag 11 december 2007 @ 14:31
    Perl is inderdaad een goeie, daar acht ik ook al aan. Je moet dan alleen wel op een linux systeem werken.
    slacker_nldinsdag 11 december 2007 @ 16:56
    quote:
    Op dinsdag 11 december 2007 14:31 schreef Geqxon het volgende:
    Perl is inderdaad een goeie, daar acht ik ook al aan. Je moet dan alleen wel op een linux systeem werken.
    ActiveState perl is er voor windows bakken
    DaFrenkwoensdag 12 december 2007 @ 13:09
    Grmbl, heb zelf proberen te zoeken maar of ik kijk er enorm overheen of ik zoek verkeerd. Ik wil graag de unieke waardes die in een veld staan uit de database halen. Bijvoorbeeld, ik heb een tabel met producten en daarin staat een veld 'media' waarin allerlei verschillende media-types in staan, CD, LP, 7", Book enz.

    Nu zoek ik dus een query die alle unieke waardes (er zijn dus media types die vaker voorkomen) uit dat veld haalt zodat ik voor elk van die unieke waarde een stuk code kan uitvoeren (in dit geval een invoerveld voor een bepaalde waarde toe te kennen aan dat media type die ik opsla in een andere tabel).

    Ik hoop dat dat een beetje duidelijk is
    Tuvai.netwoensdag 12 december 2007 @ 13:23
    select distinct?
    DaFrenkwoensdag 12 december 2007 @ 13:25
    Ja! Super.. d'oh!
    markiemarkwoensdag 12 december 2007 @ 13:30
    Waar kan ik mijn database ontwerp het beste in visualiseren? Heb hem wel op papier, maar dat staat zo lullig in mijn stage verslag. Ik ken Visio, maar dat vind ik niet zo heel handig.. Zijn daar geen eenvoudige tooltjes voor?
    JortKwoensdag 12 december 2007 @ 13:41
    quote:
    Op woensdag 12 december 2007 13:30 schreef markiemark het volgende:
    Waar kan ik mijn database ontwerp het beste in visualiseren? Heb hem wel op papier, maar dat staat zo lullig in mijn stage verslag. Ik ken Visio, maar dat vind ik niet zo heel handig.. Zijn daar geen eenvoudige tooltjes voor?
    Ik gebruik daar altijd Powerpoint voor, dan maak ik een printscreen van die sheet en die plak ik in word
    markiemarkwoensdag 12 december 2007 @ 13:46
    quote:
    Op woensdag 12 december 2007 13:41 schreef JortK het volgende:

    [..]

    Ik gebruik daar altijd Powerpoint voor, dan maak ik een printscreen van die sheet en die plak ik in word
    hehe ok.. die van mij is aardig uitgebreid, een tabelletje of 30. als ik een lijntje trek vanuit de ene tabel naar de andere, blijft deze dan gelinkt wanneer ik een tabel versleep?
    DaFrenkwoensdag 12 december 2007 @ 15:50
    Je kan ook Access gebruiken, daar kan je via de relatie-manager ook een duidelijk beeld scheppen van je database. Of eventueel een simpel "mindmap" programma, daar kan je ook lijntjes trekken van en naar "wolkjes".
    markiemarkwoensdag 12 december 2007 @ 16:37
    quote:
    Op woensdag 12 december 2007 15:50 schreef DaFrenk het volgende:
    Je kan ook Access gebruiken, daar kan je via de relatie-manager ook een duidelijk beeld scheppen van je database. Of eventueel een simpel "mindmap" programma, daar kan je ook lijntjes trekken van en naar "wolkjes".
    Hmmz kan ik inderdaad ook nog wel eens proberen..
    Maartelwoensdag 12 december 2007 @ 22:15
    Goedenavond, ik ben als n00b aan het klungelen met dit scriptje... nu heb ik de database en alle tabellen aangemaakt, maar ik loop vast op deze instructies:

    # Add a user to the mm2_users table
    # Add a crontab for recenttracker.php.

    van de eerste weet ik niet hoe ik het moet doen, van de 2e weet ik niet eens wat een crontab is

    Iemand die het toevallig leuk vindt om me wat verder op weg te helpen?
    WyriHaximuswoensdag 12 december 2007 @ 22:52
    quote:
    Op woensdag 12 december 2007 22:15 schreef Maartel het volgende:
    Goedenavond, ik ben als n00b aan het klungelen met dit scriptje... nu heb ik de database en alle tabellen aangemaakt, maar ik loop vast op deze instructies:

    # Add a user to the mm2_users table
    # Add a crontab for recenttracker.php.

    van de eerste weet ik niet hoe ik het moet doen, van de 2e weet ik niet eens wat een crontab is

    Iemand die het toevallig leuk vindt om me wat verder op weg te helpen?
    Contab is de *nix versie van geplande taken in windows. Als je de bak zelf host zal ik de docs eens gaan lezen en anders ff met je hosting mailen .
    Farenjidonderdag 13 december 2007 @ 00:45
    quote:
    Op woensdag 12 december 2007 22:15 schreef Maartel het volgende:
    Goedenavond, ik ben als n00b aan het klungelen met dit scriptje... nu heb ik de database en alle tabellen aangemaakt, maar ik loop vast op deze instructies:

    # Add a user to the mm2_users table
    Start een mysql console en tik in "grant all on mm2_users.* to <username>@localhost identified by '<password>';"

    Ipv <username> tik je natuurlijk de username (zonder de < en >) en ipv <password> tik je een zelfgekozen password (dat je wel moet onthouden, dat zal je wsch ergens in de config van het script moeten invullen.)
    quote:
    # Add a crontab for recenttracker.php.
    Crontab is het mechanisme onder unix/linux om periodiek / om de zoveel tijd een bepaald commando uit te voeren.
    Start een shell en tik in "man crontab", lees die info goed door, en tik daarna in de shell "crontab -e" en maak dan de benodigde wijzigingen. Je moetdus "recenttracker.php" uitvoeren; dit is een php script dus dat wordt alleen door je webserver uitgevoerd. Als commando in je crontab (zie de manual!) wordt dat dan iets als "wget http://hostnaam.van.je.server/pad/recenttracker.php".

    Succes!
    Maarteldonderdag 13 december 2007 @ 18:13
    quote:
    Op donderdag 13 december 2007 00:45 schreef Farenji het volgende:

    [..]

    Start een mysql console en tik in "grant all on mm2_users.* to <username>@localhost identified by '<password>';"

    Ipv <username> tik je natuurlijk de username (zonder de < en >) en ipv <password> tik je een zelfgekozen password (dat je wel moet onthouden, dat zal je wsch ergens in de config van het script moeten invullen.)
    dan krijg ik
    1044 - Access denied for user: 'blabla@localhost' to database 'mm2_users'
    quote:
    Crontab is het mechanisme onder unix/linux om periodiek / om de zoveel tijd een bepaald commando uit te voeren.
    Start een shell en tik in "man crontab", lees die info goed door, en tik daarna in de shell "crontab -e" en maak dan de benodigde wijzigingen. Je moetdus "recenttracker.php" uitvoeren; dit is een php script dus dat wordt alleen door je webserver uitgevoerd. Als commando in je crontab (zie de manual!) wordt dat dan iets als "wget http://hostnaam.van.je.server/pad/recenttracker.php".

    Succes!
    hoe start ik een 'shell'? ik weet nog net hoe ik een tabel moest openen in mijn PhpMyAdmin, maar ik weet niet wat een shell is
    Farenjidonderdag 13 december 2007 @ 19:51
    quote:
    Op donderdag 13 december 2007 18:13 schreef Maartel het volgende:

    [..]

    dan krijg ik
    1044 - Access denied for user: 'blabla@localhost' to database 'mm2_users'

    [..]

    hoe start ik een 'shell'? ik weet nog net hoe ik een tabel moest openen in mijn PhpMyAdmin, maar ik weet niet wat een shell is
    Wat voor hosting heb je? Heb je wel shell access? Anders kun je de crontab meestal vergeten, tenzij je een webinterface hebt waar je dat kan instellen.
    Wat betreft die user, misschien heb je maar 1 user en kun je geen extra users aanmaken. In dat geval zal je die user moeten gebruiken voor het script.
    Maarteldonderdag 13 december 2007 @ 20:13
    quote:
    Op donderdag 13 december 2007 19:51 schreef Farenji het volgende:

    [..]

    Wat voor hosting heb je? Heb je wel shell access? Anders kun je de crontab meestal vergeten, tenzij je een webinterface hebt waar je dat kan instellen.
    Wat betreft die user, misschien heb je maar 1 user en kun je geen extra users aanmaken. In dat geval zal je die user moeten gebruiken voor het script.
    http://www.flexwebhosting.nl/hosting.html
    en dan de goedkoopste.. er staat wel iets cron-achtigs bij..
    Waaronder zou ik die shellaccess moeten vinden? ook in PhpMyAdmin?
    Farenjidonderdag 13 december 2007 @ 20:58
    quote:
    Op donderdag 13 december 2007 20:13 schreef Maartel het volgende:

    [..]

    http://www.flexwebhosting.nl/hosting.html
    en dan de goedkoopste.. er staat wel iets cron-achtigs bij..
    Waaronder zou ik die shellaccess moeten vinden? ook in PhpMyAdmin?
    Shell access is via een ssh client inloggen op de server, via de command line dus. Maar inderdaad zit er blijkbaar cronjobs mogelijkheden bij je account, vraag even aan je provider hoe dat werkt; waarschijnlijk is er ergens een control panel voor.
    markiemarkdonderdag 13 december 2007 @ 23:19
    quote:
    Op donderdag 13 december 2007 20:58 schreef Farenji het volgende:

    [..]

    Shell access is via een ssh client inloggen op de server, via de command line dus. Maar inderdaad zit er blijkbaar cronjobs mogelijkheden bij je account, vraag even aan je provider hoe dat werkt; waarschijnlijk is er ergens een control panel voor.
    ik heb ook wel eens een site gemaakt op een server van flexweb. deze bieden geen shell aan..
    colourAggavrijdag 14 december 2007 @ 01:11
    Mocht iemand nog interesse hebben dan heb ik even de source voor een random webicon online gezet. Ik zal in de toekomst hier wel even wat meer linken naar scripts/classes/tutorials die ik online zet. Beschouw het niet als spam (ik zie het als leermateriaal) en als dat wel zo is hoor ik dat wel.

    Random Webicon http://liebmi.ch/laboratorium/webicon/
    Een zeer simpel random webicon script.
    WyriHaximusvrijdag 14 december 2007 @ 11:42
    quote:
    Op vrijdag 14 december 2007 01:11 schreef colourAgga het volgende:
    Mocht iemand nog interesse hebben dan heb ik even de source voor een random webicon online gezet. Ik zal in de toekomst hier wel even wat meer linken naar scripts/classes/tutorials die ik online zet. Beschouw het niet als spam (ik zie het als leermateriaal) en als dat wel zo is hoor ik dat wel.

    Random Webicon http://liebmi.ch/laboratorium/webicon/
    Een zeer simpel random webicon script.
    Zolang het bij PHP related dingen blijft en het niet storend is zal het geen probleem zijn. En zelfs goed zijn voor de beginnen mensen die willen weten hoe ze dingen kunnen doen .
    SuperRembovrijdag 14 december 2007 @ 22:08
    quote:
    Op vrijdag 14 december 2007 01:11 schreef colourAgga het volgende:
    Random Webicon http://liebmi.ch/laboratorium/webicon/
    Een zeer simpel random webicon script.
    Ondanks dat het een simpel voorbeeld is, of juist omdat het een voorbeeld is, heb ik er wel wat op aan te merken.
  • Ondanks de if (...opendir(...)) zal het script een fout geven als het openen van de directory niet lukt.
  • Waarom shuffle je de hele array met files als je maar 1 random file wil hebben?
  • Je gebruikt GD om het plaatje te lezen en naar de client te schrijven, dat is niet erg efficient. fopen en passthu is veel efficienter. Of nog efficienter: gebruik een simpele redirect (werkt alleen niet als je een random icon op een statische pagina wil).

    ...en ik haat hungarian prefixes!
  • Schepseltjevrijdag 14 december 2007 @ 22:51
    RHCPeterzaterdag 15 december 2007 @ 16:17
    Ik zit met een probleempje

    Het heeft met IE en FF te maken. Bij IE geeft hij het wel goed weer maar bij FF niet.

    Kijk maar eens met beide op www.redhotchilipeppers.eu met IE en FF Nee geen spam.
    Bij IE zie je het menu wel goed en bij FF niet

    Ik zal je ff de index-code geven en de CSS gedeeltes
    Index.php:
    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
    <!-- Begin van de container -->
    <div id="container">

    <!-- Begin Header -->
    <div id="header">
       <?php
          include ("header.php")
       ?>
    </div>
    <!-- Einde Header -->

    <!-- Begin navigatie -->
    <div id="navigatie">
       <?php
          if($_GET['navigatie'])  // Hier neemt hij de pagina mee in de URL
          {
             include($_GET['navigatie'].'.php');  // Hier include hij de pagina die in de URL is meegenomen
          }
          else
          {
             $navigatie = "navigatie";
             include("navigatiemenu.php");   // Hier wordt main.php geinclude
          }
       ?>
    </div>
    <!-- Einde navigatie -->

    <!-- Begin content -->
    <div id="content">
       <?php
          if($_GET['page'])  // Hier neemt hij de pagina mee in de URL
          {
             include($_GET['page'].'.php');  // Hier include hij de pagina die in de URL is meegenomen
          }
          else
          {
             $page = "main";
             include("main.php");   // Hier wordt main.php geinclude
          }
       ?>
    </div>
    <!-- Einde content -->


    CSS:
    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
    #header {
       color : #333;
       background-color: #FFFFFF;
       background-image:url(images/header4.jpg);
       width: 898px;
       border: 1pxsolid #FF0000;
       height: 138px;
       float: left;
       margin : 0 0 2px 0;
    }

    #navigatie {
       color : #333;
       margin : 0 2px 2px 0;
       height : 25px;
       width : 898px;
       float: inherit;
       background-color: #000000;
       padding-left: 5px;
       padding-top: 5px;
    }

    #content {
       float: left;
       color: #999999;
       font-family:Verdana, Arial, Helvetica, sans-serif;
       font-size:12px;
       border : 1px solid #c00000;
       margin : 0 0 2px 0;
       height :475px;
       width : 898px;
       display : inline;
       background-color: #000000;
       overflow:auto;
       padding-left: 5px;
       padding-top: 10px;
       scrollbar-arrow-color: #918e8e;
       scrollbar-face-color: #c00000;
       scrollbar-highlight-color: #FFFFFF;
       scrollbar-3dlight-color: #0A439A;
       scrollbar-shadow-color: #445C95;
       scrollbar-darkshadow-color: #0A439A;
       scrollbar-track-color: #d6d6e3;


    Ik heb vast iets verkeerds maar ik heb geen idee wat. Misschien iets met dat float: inherit??

    Ik hoop dat jullie mij kunnen helpen
    Lightzaterdag 15 december 2007 @ 16:28
    Best kans dat het gaat werken als je eerst wat foutjes in je html-code gaat oplossen.

    En over welk menu je het hebt is me niet helemaal duidelijk, ik zie geen menu in Safari op die pagina.
    RHCPeterzaterdag 15 december 2007 @ 16:30
    Ok ga ik daar ff mee bezig
    thnx
    RHCPeterzaterdag 15 december 2007 @ 16:49
    Ok
    quote:
    Line 48, Column 68: document type does not allow element "link" here.
    …et" type="text/css" href="menu/halfmoontabs.css"/>✉
    The element named above was found in a context where it is not allowed. This could mean that you have incorrectly nested elements -- such as a "style" element in the "body" section instead of inside "head" -- or two elements that overlap (which is not allowed).

    One common cause for this error is the use of XHTML syntax in HTML documents. Due to HTML's rules of implicitly closed elements, this error can create cascading effects. For instance, using XHTML's "self-closing" tags for "meta" and "link" in the "head" section of a HTML document may cause the parser to infer the end of the "head" section and the beginning of the "body" section (where "link" and "meta" are not allowed; hence the reported error).
    Wat moet ik nou doen daarmee? Ik ben dus echt wel een dummy en ik wil het allemaal leren maar dit snap ik niet zo goed eerlijk gezegd

    …et" type="text/css" href="menu/halfmoontabs.css"/> <<--- die > zou niet mogen op één of andere manier
    HuHuzaterdag 15 december 2007 @ 16:52
    Een <link> tag mag alleen binnen de <head> staan en nergens anders.
    RHCPeterzaterdag 15 december 2007 @ 16:57
    Ok dat is nu idd weg

    Nu ff naar de andere fouten. Zijn er nu 17. Best pittig. Hoop dat ik jullie nog meer mag vragen mocht ik er niet uitkomen
    Geqxonzaterdag 15 december 2007 @ 17:28
    Om je op weg te helpen:

    1<img src="http://www.redhotchilipeppers.eu/images/peppers.jpg" />


    1<img src="http://www.redhotchilipeppers.eu/images/peppers.jpg" alt="The Red Hot Chillipeppers" />


    Dat is de tekst die je krijgt te zien als de pagina niet wilt laden / als je een alternative browser hebt.
    Geqxonzaterdag 15 december 2007 @ 17:39
    En omdat ik zo aardig ben:

    RHCP.txt

    Let goed op de tabs, en waar welke type tags horen. Je hebt de HTML tag, daarbinnen de header en de body, binnen de header weer de meta-tag, title, css en javascript....
    Lightzaterdag 15 december 2007 @ 17:48
    quote:
    Op zaterdag 15 december 2007 16:57 schreef RHCPeter het volgende:
    Ok dat is nu idd weg

    Nu ff naar de andere fouten. Zijn er nu 17. Best pittig. Hoop dat ik jullie nog meer mag vragen mocht ik er niet uitkomen
    Een bestand hoort 1 head en 1 body te hebben. En niet halverwege de body nog weer een head. Die CSS-linkjes vanaf regel 33 kun je beter naar boven halen.
    RHCPeterzaterdag 15 december 2007 @ 19:00
    Mjah morgen weer een dag. Heb nu nog 13 fouten. Maar het menu is nog niet terug bij FF.

    Krijg het nu niet voor elkaar
    RHCPeterzaterdag 15 december 2007 @ 19:02
    quote:
    Op zaterdag 15 december 2007 17:48 schreef Light het volgende:

    [..]

    Een bestand hoort 1 head en 1 body te hebben. En niet halverwege de body nog weer een head. Die CSS-linkjes vanaf regel 33 kun je beter naar boven halen.
    Die snap ik niet? Hoezo naar boven halen?

    Mocht iemand weten waarom het menu niet zichtbaar is bij safari en bij FF alleen het bovenste witte racdje hoor ik het echt heeeeeeeeel graag H
    SuperRembozaterdag 15 december 2007 @ 20:18
    quote:
    Op zaterdag 15 december 2007 19:02 schreef RHCPeter het volgende:
    [..]
    Die snap ik niet? Hoezo naar boven halen?
    Al je referenties naar css files in de <head> zetten, bovenin dus.
    quote:
    Mocht iemand weten waarom het menu niet zichtbaar is bij safari en bij FF alleen het bovenste witte racdje hoor ik het echt heeeeeeeeel graag H
    Volgens mij heb je geen idee hoe floats werken en gebruik je ze waar ze helemaal niet nodig zijn. Het heeft iig weinig met php te maken, maar alles met [CSS] voor dummies - Deel 7.
    Geqxonzaterdag 15 december 2007 @ 22:36
    quote:
    Op zaterdag 15 december 2007 19:00 schreef RHCPeter het volgende:
    Mjah morgen weer een dag. Heb nu nog 13 fouten. Maar het menu is nog niet terug bij FF.

    Krijg het nu niet voor elkaar
    Bij de link die ik je gaf is je website compleet XHTML compatible:

    W3 validator

    Daarnaast zie je ook wat SuperRembo bedoeld. Tussen de <head> en </head> tags laad je alle .css en .js bestanden in. Daarna komt de <body> tag, je content, en dat sluit je weer af met een </body>.
    colourAggazaterdag 15 december 2007 @ 22:51
    Zowieso is al je HTML gaar. Tabellen dienen niet voor opmaak gebruikt te worden. Een titel dient een hx tag te zijn. Je navigatie is een pagina lijst, maak daar dan ook een lijst van zonder er een div omheen.

    Divjes gebruik je alleen als je geen enkel ander element kan vinden dat semantisch correct is om te gebruiken.

    Verder zou het ook misschien handig zijn om alle browser defaults uit te zetten. Zie: http://www.liebmi.ch/laboratorium/bus/handboek/standaarden.html halverwege de pagina voor meer uitleg plus een standaard stylesheet voor leesbaarheid etc.

    Als je gaat XHTML'en, doe het dan ook goed.

    Je hebt meerdere head tags, je hebt link tags buiten je head. Kortom, het is een zooi. Misschien leuk om de rest van dat handboekje ook te lezen, is een algemene inleiding.
    Geqxonzaterdag 15 december 2007 @ 23:55
    "Semantisch correct" is de grootste bullshit die ik ooit gehoord heb.
    colourAggazondag 16 december 2007 @ 00:45
    quote:
    Op zaterdag 15 december 2007 23:55 schreef Geqxon het volgende:
    "Semantisch correct" is de grootste bullshit die ik ooit gehoord heb.
    Nee, je gebruikt de elementen waarvoor ze bedoeld zijn. Zo kunnen mensen die software gebruiken om alsnog je website te kunnen lezen zoals screenreaders er van uit gaan dat die software de site ook goed interpreteert. In het echte leven gebruik je nou eenmaal ook niet je aansteker om op te koken terwijl het best zal gaan.

    Verder als google ziet dat iets een lijstje is geeft het er een andere waarde aan dan als iets in een div staat. Verder nog gaat het verhaal als we gaan kijken naar hoeveel extra code je verbruikt als je overal divjes omheen zet plus de effecten die dat heeft op rendering engines die de div eromheen als leidraad gaan gebruiken terwijl je dat misschien helemaal niet wil.

    Van mij hoef je je er niet aan te houden maar als webdeveloper heb je de morele 'plicht' om toegankelijkheid hoog in het vaandel te houden, dat betekent dus ook de dingen gebruiken waarvoor ze bedoeld zijn Verder lopen er nog enkele rechtszaken in de Verenigde Staten over sites die niet semantisch en niet genoeg toegankelijk waren voor mensen met screenreaders. Effectief ontzeggen zij namelijk de toegang tot hun site aan mensen die minder valide zijn
    quote:
    If we call ourselves professionals, we owe it to our clients, their clients, and ourselves, to do our job properly. A chef must care about health, a builder must care about safety, and we must care about accessibility.
    bron

    Op een hele andere noot heb ik de source van een simpele template klasse online gezet, lang niks zoals Smarty maar dit is gewoon om beginners te helpen met waar ze moeten beginnen als je met templates aan de slag gaat:
    http://liebmi.ch/laboratorium/template-klasse/

    [ Bericht 3% gewijzigd door colourAgga op 16-12-2007 00:52:33 ]
    Geqxonzondag 16 december 2007 @ 02:31
    colourAgga, we hebben het hier over een beginnende developer, met een website die geen miljoenen hits per dag zal genereren. In dit geval is het voldoende als de website het doet onder IE6, FireFox en Safari. Of er dan een DIV of een ander element staat doet er dan niet toe. Om dan gelijk over semantiek te blaten....

    Op een grote grafische websites omkom je hoe dan ook niet aan het gebruik van veel DIV blokken voor de opmaak.

    Overigens is het een goed verhaal wat je post, al vind ik het wel wat hypocriet als ik het homepage icoon naast je username aan klik...
    colourAggazondag 16 december 2007 @ 11:47
    Als je die opmerking maakt over http://liebmi.ch/ dan vraag ik me toch af wat er zo hypocriet aan is Alle pagina's die daaronder vallen hebben maar 1 div op de pagina en dat is diegene om de adsense codeblokken te omvatten daar is momenteel geen betere tag voor. Dus ik vraag me af wat daar hypocriet aan zou zijn? Ze validaten en ik schrijf er zelfs over op mijn weblog :p

    Of is het hypocriet omdat die hele pagina maar twee plaatjes bevat? Ook zeer grafische sites zijn trouwens voor een groot gedeelte op te vullen met background images, etc. Een gallery bijvoorbeeld is een lijst van plaatjes en dus een ul, een tabbed navigatie is ook een ul (tot HTML5 dan hebben we nl). Ik geef natuurlijk ook gewoon toe dat er vaak situaties zijn waarin een div de beste keuze is! Ik geef ook toe dat je bij een sidebar op dit moment nog het beste een div kan gebruiken.

    Als je het hebt over het niet valideren van de pagina's daar dan moet ik je teleurstellen. Zelfs iemand zoals ik kiest er soms bewust voor om de standaarden niet na te leven voor het betere. Het is beter om je javascript onderaan de pagina in te laden omdat gebruikers dan niet lang hoeven te wachten als google weer eens niet reageert (een browser hangt op het laden van javascript, hij wacht dan totdat het binnen is omdat het eventueel gebruikt wordt om de pagina op te maken). Elke pagina met google adsense erop valideert niet als XHTML .

    Wat ik dan weer niet snap is dat mensen vaak een container div gebruiken als ze XHTML'en. Dan style je toch gewoon de html en body tags? Dat soort dingetjes vind ik persoonlijk wat suf

    Trouwens is dat mijn site niet valideert niet van invloed op sites die ik maak in opdracht. Mijn eigen site is een playground met de nieuwste technieken. Klantensites worden 99 uit de 100 keer in HTML 4.01 gemaakt. Mijn eigen site is in XHTML omdat ik dan lekker kan frutselen met MathML en SVG. Als het probleem oplevert wil ik er best een HTML 4.01 doctype overheen leggen, dan valideert ie wel

    [ Bericht 14% gewijzigd door colourAgga op 16-12-2007 12:08:37 ]
    Geqxonzondag 16 december 2007 @ 12:43
    Wat mij opvalt is dat je website inderdaad correct geschreven is, maar waar ik dan over val is dat het menu onder Safari niet correct werkt, en dat je een document.write in een XHTML pagina gebruikt.

    Het tweede is zo erg nog niet, maar het eerste is waar ik zelf wel over val. Je bent erg druk bezig geweest om de website semantisch correct te maken, maar als je volgens mijn standaard ontwikkeld had: Er voor zorgen dat de website het onder IE6, FireFox en Safari het goed doet, dan was je website nu voor een groter publiek toegankelijker gemaakt.

    Edit: Om maar te zwijgen van IE6 compatibility. Wat ondermeer fout gaat is dat je een alfatransparante PNG voor je body-background hebt gebruikt, terwijl dit prima een GIF had kunnen zijn. Daarnaast wordt zo te zien ook hier het menu niet correct getoond.

    [ Bericht 10% gewijzigd door Geqxon op 16-12-2007 12:48:50 ]
    Tuvai.netzondag 16 december 2007 @ 12:43
    quote:
    Op zaterdag 15 december 2007 23:55 schreef Geqxon het volgende:
    "Semantisch correct" is de grootste bullshit die ik ooit gehoord heb.
    ;')
    Geqxonzondag 16 december 2007 @ 12:52
    quote:
    Op zondag 16 december 2007 12:43 schreef Tuvai.net het volgende:

    [..]

    ;')
    Ik mag hopen dat mijn punt duidelijk is. Dat een website semantisch correct is biedt geen meerwaarde als de website in IE6 amper te openen is, en in Safari slecht gerendered wordt.

    Het is jammer dat IE6 erg ouderwets is, maar veel mensen gebruiken het, en mede daardoor is het vaak niet mogelijk een perfecte website te maken.
    colourAggazondag 16 december 2007 @ 13:53
    Welke versie van safari gebruik jij dan? In 2.0.4 werkt het in ieder geval

    Verder ben ik bezig met de Google Ads ook XHTML 1.1 te maken, dat gaat via javascript en die javascript werkt weer alleen als er ook een application/xhtml+xml header wordt meegegeven, dat slikt IE overall niet en dat is tragisch. Dat is ook de reden dat ik wanneer je met IE kijkt andere headers moet sturen.

    Ik ben er nog mee aan het verfijnen en verwacht dat ik vanavond de site werkend heb in alle grote rendering engines (Webkit, Gecko en IE). Je kijkt nu feitelijk naar een template die nog niet helemaal af is. Wel bedankt dat je even IE6 aankaart. Ik zal daar even mee aan de slag en hoop dat ik dan vanavond eentje heb die wel naar believen werkt.

    Overigens is IE6 en retour. Sinds Microsoft IE7 ook vrij heeft gegeven voor de illegale windows versies neemt het marktaandeel snel toe
    JeRazondag 16 december 2007 @ 13:56
    Soms loont het om een website aan te passen naar de fouten in sommige browsers. Maar ik juich semantisch correcte en validerende websites erg toe, temeer omdat hoe meer mensen dit doen des te groter de kans wordt dat browsers dit goed gaan ondersteunen en wat strikter worden in het parsen van de DOM tree.

    Het afdoen van semantisch correctheid met 'bullshit' doet mij dan ook alleen getuigen van een gebrek aan inzicht - browsers kunnen op dergelijke sites veel beter de mogelijkheden benutten voor het weergeven (ook middels audio) en besturen van die sites.
    SuperRembozondag 16 december 2007 @ 14:20
    quote:
    Op zondag 16 december 2007 13:56 schreef JeRa het volgende:
    Het afdoen van semantisch correctheid met 'bullshit' doet mij dan ook alleen getuigen van een gebrek aan inzicht
    Inderdaad, XHTML is veel grotere bullshit dan semantisch correcte html
    colourAggazondag 16 december 2007 @ 16:04
    In ieder geval, laten we weer verder gaan met PHP want daar is dit topic voor.

    Mensen nog gekeken naar die simpele template klasse? Kan die nog simpeler dan dit?
    super-muffinzondag 16 december 2007 @ 16:09
    Ik zou wel een voorbeeld template zien.
    De class zelf zegt mij niet zo veel, het gebruik er van zegt meer.

    En mag ik vragen waarom jij geen access control modifiers (public/protected/private) gebruikt?
    SuperRembozondag 16 december 2007 @ 17:02
    quote:
    Op zondag 16 december 2007 16:04 schreef colourAgga het volgende:
    In ieder geval, laten we weer verder gaan met PHP want daar is dit topic voor.

    Mensen nog gekeken naar die simpele template klasse? Kan die nog simpeler dan dit?
    1    function replace( $str_Needle, $str_Replacement, $bool_File = false )


    Dit vind ik een voorbeeld van bad coding practice. De parameter $bool_File geeft aan of de parameter $str_Replacement een replacement string bevat of de naam van een bestand dat je als replacement gebruikt. Waarom maak je daar niet gewoon 2 functies van, dat levert echt veel beter leesbare code op.
    Dat ik een hekel heb aan hungarian prefixes had ik al eerder gezegd.

    En kan het nog simpeler? Ja, Smarty gebruiken!
    qu63zondag 16 december 2007 @ 17:06
    Wat zijn hungarian prefixes
    Farenjizondag 16 december 2007 @ 17:15
    Prefixes in de variable names waar je aan zou moeten kunnen zien wat voor type waarde er in de variable zit (object, boolean, string, int etc). Vrij gevaarlijk bij loosely typed languages zoals php omdat dat type nooit vaststaat.
    qu63zondag 16 december 2007 @ 17:34
    quote:
    Op zondag 16 december 2007 17:15 schreef Farenji het volgende:
    Prefixes in de variable names waar je aan zou moeten kunnen zien wat voor type waarde er in de variable zit (object, boolean, string, int etc). Vrij gevaarlijk bij loosely typed languages zoals php omdat dat type nooit vaststaat.
    dus in str_Needle is str de 'hungarian prefix'
    Farenjizondag 16 december 2007 @ 17:42
    quote:
    Op zondag 16 december 2007 17:34 schreef qu63 het volgende:

    [..]

    dus in str_Needle is str de 'hungarian prefix'
    Ja.
    qu63zondag 16 december 2007 @ 18:27
    quote:
    Op zondag 16 december 2007 17:42 schreef Farenji het volgende:

    [..]

    Ja.
    en dat is stom omdat str_Needle ook iets anders kan zijn dan een string?
    HuHuzondag 16 december 2007 @ 18:29
    quote:
    Op zondag 16 december 2007 18:27 schreef qu63 het volgende:

    [..]

    en dat is stom omdat str_Needle ook iets anders kan zijn dan een string?
    Klopt. In PHP kun je sowieso niet eisen dat iets van een bepaald type is. Een integer meegeven als een string gevraagd wordt (of andersom) wordt gewoon toegestaan. Daarnaast is het stom, omdat je nu heel lastig van type kunt veranderen. Als je besluit dat iets van een int naar een double gaat, dan kun je alle verwijzingen naar die variabele gaan aanpassen.

    Kortom: niet doen.
    super-muffinzondag 16 december 2007 @ 18:44
    Ik heb een keer een PHP boek gelezen waar ze ook classes zo een naam gaven : 'clsFooBar';

    PHP 5 Super Boek was dat geloof ik.
    Geqxonzondag 16 december 2007 @ 20:34
    Of "iNumber"
    Lightzondag 16 december 2007 @ 21:50
    quote:
    Op zondag 16 december 2007 13:53 schreef colourAgga het volgende:
    Welke versie van safari gebruik jij dan? In 2.0.4 werkt het in ieder geval
    Safari 2 is wat achterhaald ondertussen. En in 3.0.4 werkt het menu niet goed, de >> die voor de tekst komen, zorgen ervoor dat de tekst naar de volgende regel gaat. Zonder dat het vakje groter wordt overigens. Maar dat had je zelf vast ook al wel gezien.
    Lightzondag 16 december 2007 @ 21:55
    quote:
    Op zondag 16 december 2007 17:15 schreef Farenji het volgende:
    Prefixes in de variable names waar je aan zou moeten kunnen zien wat voor type waarde er in de variable zit (object, boolean, string, int etc). Vrij gevaarlijk bij loosely typed languages zoals php omdat dat type nooit vaststaat.
    Nooit is ook niet helmaal meer waar in php5. Je kunt bij functies wel type hinting gebruiken voor objecten en arrays. Niet voor dingen als int of string.
    Geqxonmaandag 17 december 2007 @ 00:13
    Weet iemand hoe ik alle 7 dagen van een bepaald weeknummer en jaartal kan verkrijgen?

    Ik gebruik op het moment het volgende stukje code:

    1
    2
    3
    4
    // Gegeven: $week (1-53), $year (1990 - 2100), $day (monday-sunday)
    $lastdaylastyear = mktime(0,0,0,12,31,$year-1);
    $lastdaylastweek = strtotime('+' . $week-1 . 'weeks', $lastdaylastyear);
    return strtotime("next " . $day, $lastdaylastweek) ;


    Het punt is echter dat deze natuurlijk niet werkt tijdens de jaarwisseling. Iemand? :)
    colourAggamaandag 17 december 2007 @ 15:27
    Type prefixes gebruik ik meestal omdat er normaal nog een verificatie klasse overheen gaat om te checken wat voor iets een variabele is met een hoop is_string en is_int. Is ook nog iets wat is blijven hangen bij mij van andere talen etc. etc. Kunnen jullie denk ik beter overheen kijken
    quote:
    Op zondag 16 december 2007 18:27 schreef qu63 het volgende:

    [..]

    en dat is stom omdat str_Needle ook iets anders kan zijn dan een string?
    Ik gebruik meestal:
    1
    2
    3
    4
    <?php
    $obj_Template
    ->replace'hoi''test' );
    $obj_Template->replace'test''hoi' );
    ?>

    En stop daar dus geen arrays in (ook al zou het kunnen).

    Iemand vroeg nog om een voorbeeld template. Klik hier. Verder is dit ding nog niet met access control modifiers. Die zal ik er even inzetten.

    Ik zal de hungarian prefixes er ook wel uithalen, is iets wat ik normaal gesproken voornamelijk voor mezelf gebruik omdat ik dan duidelijk maak wat ik opsla in een variabele Zelf ben ik het er niet mee eens dat het bad coding practice is. Het is pas bad coding practice als je er een gevoel van veiligheid aan gaat verbinden. Dat gaat in PHP namelijk niet op. Ik zet ze er alleen in zodat ik meteen weet wat er in een bepaalde variabele hoort te zitten.

    En de hele code aanvallen als je van int naar double gaat is ook niet zo lastig met een regular expression in VIM.

    Overigens heb ik dat template ding even gerecode met alle opmerkingen van hierboven meegenomen.

    [ Bericht 4% gewijzigd door colourAgga op 17-12-2007 15:38:08 ]
    Mordrethmaandag 17 december 2007 @ 16:06
    quote:
    Op maandag 17 december 2007 00:13 schreef Geqxon het volgende:
    Weet iemand hoe ik alle 7 dagen van een bepaald weeknummer en jaartal kan verkrijgen?

    Ik gebruik op het moment het volgende stukje code:
    [ code verwijderd ]

    Het punt is echter dat deze natuurlijk niet werkt tijdens de jaarwisseling. Iemand?
    Deze is simpel aan te passen :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <?php
    function WeekCheck($date , $gid = ""){
        # huidige dag
        $currentDay = date ("w", $date);
       
        # om te beginnen wil ik de eerste dag van de week eruit halen (maandag)
        $monday = date("d", $date) - ($currentDay - 1);
        
        # maken van een array met daarin dagen en data van de huidige week (m tm f)
        for ($i=0; $i < 5; $i++){
            $day = mktime(0,0,0,date("m", $date),($monday + $i),date("y", $date));
            $week[$i] = date("d-m-Y", $day); 
        }
        
        return $week;
    }
    ?>
    SuperRembomaandag 17 december 2007 @ 18:26
    quote:
    Op maandag 17 december 2007 15:27 schreef colourAgga het volgende:
    Ik zal de hungarian prefixes er ook wel uithalen, is iets wat ik normaal gesproken voornamelijk voor mezelf gebruik omdat ik dan duidelijk maak wat ik opsla in een variabele Zelf ben ik het er niet mee eens dat het bad coding practice is. Het is pas bad coding practice als je er een gevoel van veiligheid aan gaat verbinden.
    Mijn opmerking over bad coding practice ging neit over hungarian prefixes maar over de method replace() waarbij de betekenis van de 2e parameter sterk af hangt van de 3e parameter: de content zelf of de naam van een bestand waar de content in staat.

    Waarom gebruik je eigenlijk "if( $clean == true )"? Wat is er mis met "if( $clean )"? Klopt je clean() functie wel?
    colourAggamaandag 17 december 2007 @ 21:44
    De replacement is of een tekst of de tekst uit een bestand. In dat geval wordt de replacement dus het bestand. Ik snap wat je bedoelt en hij zou ook in een losse functie kunnen. Ik vind hem daar lekkerder staan.

    De clean() functie doet het, niets meer en niets minder dan newlines en dubbele spaties strippen Omdat ik een $clean == true duidelijker vindt dan een ( $clean ). Persoonlijke voorkeur die bij iedereen anders is. Heel veel mensen zouden ook directory of configuration afkorten. Dingen die ik persoonlijk ook nooit doe.
    Lightdinsdag 18 december 2007 @ 10:46
    quote:
    Op maandag 17 december 2007 21:44 schreef colourAgga het volgende:

    De clean() functie doet het, niets meer en niets minder dan newlines en dubbele spaties strippen Omdat ik een $clean == true duidelijker vindt dan een ( $clean ). Persoonlijke voorkeur die bij iedereen anders is.
    Yep, we zijn allemaal anders. En da's maar goed ook. Bij vergelijken met een constante zou ik trouwens true == $clean schrijven, dan gaat php vanzelf zeuren als je een = vergeet. Het voorkomt vaag gedrag.
    Farenjidinsdag 18 december 2007 @ 10:58
    quote:
    Op dinsdag 18 december 2007 10:46 schreef Light het volgende:

    [..]

    Yep, we zijn allemaal anders. En da's maar goed ook. Bij vergelijken met een constante zou ik trouwens true == $clean schrijven, dan gaat php vanzelf zeuren als je een = vergeet. Het voorkomt vaag gedrag.
    Das wel een goede tip. Ik ben zelf overigens gewend geraakt aan perl ranzigheid als "doSomething() unless $test;" of nog erger: "$test or doSomething();"
    Geqxondinsdag 18 december 2007 @ 11:38
    Vies programmeren

    Net zoals ik soms als debugging ergens " if (isset($thisvarisprobarlyneverused)) " doe, wat prima ging, tot mijn collega voor de grap eens een variabele met exact deze naam had geinit. Lul
    SuperRembodinsdag 18 december 2007 @ 13:27
    quote:
    Op maandag 17 december 2007 21:44 schreef colourAgga het volgende:
    De clean() functie doet het, niets meer en niets minder dan newlines en dubbele spaties strippen
    Als er tussen 2 woorden eerst een regeleinde of 2 spaties staan dan staan ze daarna opeens aan elkaar vast. Lijkt me niet handig.
    quote:
    Omdat ik een $clean == true duidelijker vindt dan een ( $clean ). Persoonlijke voorkeur die bij iedereen anders is.
    Overbodig en dus lelijk vind ik
    Lightdinsdag 18 december 2007 @ 13:28
    quote:
    Op dinsdag 18 december 2007 10:58 schreef Farenji het volgende:

    [..]

    Das wel een goede tip. Ik ben zelf overigens gewend geraakt aan perl ranzigheid als "doSomething() unless $test;" of nog erger: "$test or doSomething();"
    Dat kan in php ook, doSomething() or die()
    Zelfde constructie, zelfde idee.
    colourAggadinsdag 18 december 2007 @ 14:10
    Ik gebruik eigenlijk ook wel regelmatig false == $var. Vind ik er eigenlijk stiekem zelfs mooier eruit zien maar ik had het expres niet gedaan omdat het script dan weer 'onlogisch' is voor iemand die net PHP kijkt
    SuperRembodinsdag 18 december 2007 @ 14:48
    Maak er dan true == (false == $var) van
    Xcaliburdinsdag 18 december 2007 @ 15:22
    quote:
    Op dinsdag 18 december 2007 14:48 schreef SuperRembo het volgende:
    Maak er dan true == (false == $var) van
    Daar zou je dan weer wel een functie voor kunnen schrijven
    true_false_var() ofzo, duidelijk wat die doet toch?
    colourAggadinsdag 18 december 2007 @ 16:46
    Ik ben serieus eens in legacy code een functie: stripSlashesDoublequotesSinglequotesSemicolonsBracketsPointsPipesNumbers(). Tegen.