FOK!forum / Digital Corner / [PHP/(My)SQL] voor dummies - deel 59
SuperRembomaandag 12 mei 2008 @ 16:20

cd niet bijgeleverd

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

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


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
  • JortKmaandag 12 mei 2008 @ 16:23
    Ik zal de ontbrekende delen even in de OP zetten
    qu63maandag 12 mei 2008 @ 16:24
    quote:
    Op maandag 12 mei 2008 16:23 schreef JortK het volgende:
    Ik zal de ontbrekende delen even in de OP zetten
    doe dat
    JortKmaandag 12 mei 2008 @ 16:26
    OP aangepast inclusief deel 59
    Ruudmaandag 12 mei 2008 @ 16:59
    tvphp
    wipes66maandag 12 mei 2008 @ 18:30
    quote:
    Op maandag 12 mei 2008 16:15 schreef SuperRembo het volgende:
    Waarom tel je eerst het totaal aantal records? Dat is overbodig, je kunt gewoon een (absurd) groot getal voor het maximaal aantal records dat er verwijderd mag worden.
    Ja dat kan maar die query wordt best vaak uitgevoerd, en ging er van uit dat

    1
    2
    3
    <?php
    $num_records 
    $db->result('SELECT COUNT(id) FROM stat_info');
    ?>


    een stuk sneller is dan

    1
    2
    3
    <?php
    $db
    ->query('DELETE FROM stat_info ORDER BY date DESC LIMIT ?,?',array($limit,$num_records));
    ?>


    vandaar :)
    Lightmaandag 12 mei 2008 @ 18:52
    quote:
    Op maandag 12 mei 2008 18:30 schreef wipes66 het volgende:

    [..]

    Ja dat kan maar die query wordt best vaak uitgevoerd, en ging er van uit dat
    [ code verwijderd ]

    een stuk sneller is dan
    [ code verwijderd ]

    vandaar
    Het kan ook wel handig zijn om niet te sorteren op datum maar op id. Hoewel dat niet zo heel veel uit zal maken als je een index op datum hebt. Alles wordt neem ik aan toegevoegd met steeds oplopende id's

    En als je heel vaak een query doet om statistieken weg te gooien dan kun je je ook afvragen of het niet handiger is om dat anders aan te pakken. Is het bijvoorbeeld nodig om altijd de laatste 50.000 dingen te bewaren, of is een tijdsbeperking bij het bewaren zinvoller?
    Xcaliburmaandag 12 mei 2008 @ 18:57
    Hee, zitten we ineens in een nieuw topic

    Wat betreft bovenstaande queries.... waarom probeer je ze niet gewoon in een kopie van de database?
    Lijkt me een stuk gemakkelijker dan hier allerlei scenario's te bedenken waarop het fout zou kunnen gaan....
    qu63maandag 12 mei 2008 @ 19:18
    Hoe kan ik alle info die een client/browser doorstuurd opvangen?

    Heb een website gevonden die foto's automatisch van mn telefoon upload naar flickr en naar een ftp-website. Alleen wil ik dat laten linken naar een php-script die er meteen een thumbnail van maakt, tags toevoegd en in een database gooit. Alleen weet ik niet hoe het dus versturud wordt. Iemand tips? Of is het gewoon een kwestie van alle $_POST[]'s uitlezen?
    Xcaliburmaandag 12 mei 2008 @ 20:27
    Lijkt me dat die data (en met name de foto) via een multipart POST verstuurd wordt.
    Dus als je je $_POST array doorloopt zou je een heel eind moeten zijn?
    qu63maandag 12 mei 2008 @ 20:32
    quote:
    Op maandag 12 mei 2008 20:27 schreef Xcalibur het volgende:
    Lijkt me dat die data (en met name de foto) via een multipart POST verstuurd wordt.
    Dus als je je $_POST array doorloopt zou je een heel eind moeten zijn?
    mja, alleen kom ik er net achter dat die site het via het ftp-protocol doetm dus valt er niks uit te lezen
    Xcaliburmaandag 12 mei 2008 @ 20:35
    Kan je het script niet naar jouw pagina laten posten, waarna jij het weer doorpost naar Flickr?
    qu63maandag 12 mei 2008 @ 20:41
    quote:
    Op maandag 12 mei 2008 20:35 schreef Xcalibur het volgende:
    Kan je het script niet naar jouw pagina laten posten, waarna jij het weer doorpost naar Flickr?
    Dat was iets wat ik ook al aan het bekijken was ja
    't gaat mij vooral om de geo-tags die toegevoegd worden, en wil het liefst alles zelf beheren

    Alleen nu nog een script wat alle denkbare info er uit poept in een log
    SuperRembomaandag 12 mei 2008 @ 21:13
    quote:
    Op maandag 12 mei 2008 18:57 schreef Xcalibur het volgende:
    Hee, zitten we ineens in een nieuw topic

    Wat betreft bovenstaande queries.... waarom probeer je ze niet gewoon in een kopie van de database?
    Lijkt me een stuk gemakkelijker dan hier allerlei scenario's te bedenken waarop het fout zou kunnen gaan....
    Het is juist heel nuttig om allerlei scenario's te bedenken waarop iets fout kan gaan. Er zijn allerlei dingen die je in een test-omgeving niet of nauwelijks tegen komt, maar die je in een live-omgeving (waar veel meer tegelijk gebeurt, waar gebruikers rare dingen doen) wel voor kunnen komen.
    qu63maandag 12 mei 2008 @ 21:37
    quote:
    Op maandag 12 mei 2008 20:41 schreef qu63 het volgende:

    [..]

    Dat was iets wat ik ook al aan het bekijken was ja
    't gaat mij vooral om de geo-tags die toegevoegd worden, en wil het liefst alles zelf beheren

    Alleen nu nog een script wat alle denkbare info er uit poept in een log
    ok, project opgeheven

    ik ga wel kijken of ik mijn site toe kan voegen aan Shozu
    Lightmaandag 12 mei 2008 @ 21:59
    quote:
    Op maandag 12 mei 2008 20:41 schreef qu63 het volgende:

    [..]

    Dat was iets wat ik ook al aan het bekijken was ja
    't gaat mij vooral om de geo-tags die toegevoegd worden, en wil het liefst alles zelf beheren

    Alleen nu nog een script wat alle denkbare info er uit poept in een log
    Dan kan $_REQUEST handig zijn. En vergeet $_FILES niet als je bestanden gaat uploaden.
    (En ja, ik heb gelezen dat je het project inmiddels alweer gestopt hebt.)
    qu63maandag 12 mei 2008 @ 22:29
    quote:
    Op maandag 12 mei 2008 21:59 schreef Light het volgende:

    [..]

    Dan kan $_REQUEST handig zijn. En vergeet $_FILES niet als je bestanden gaat uploaden.
    (En ja, ik heb gelezen dat je het project inmiddels alweer gestopt hebt.)
    hoe bedoel je dat dan?
    print_r($_REQUEST) oid?

    ik heb het project voor nu even stop gezet, als ik denk dat ik het weet ga ik weer verder
    Lightmaandag 12 mei 2008 @ 22:45
    quote:
    Op maandag 12 mei 2008 22:29 schreef qu63 het volgende:

    [..]

    hoe bedoel je dat dan?
    print_r($_REQUEST) oid?

    ik heb het project voor nu even stop gezet, als ik denk dat ik het weet ga ik weer verder
    Bijvoorbeeld. Je kunt dat dan ook naar een bestand schrijven, heb je iets om makkelijker terug te zoeken. Een pc is vast makkelijker om dingen te lezen dan een telefoonschermpje van 10 regels met 20 tekens.
    qu63maandag 12 mei 2008 @ 22:48
    quote:
    Op maandag 12 mei 2008 22:45 schreef Light het volgende:

    [..]

    Bijvoorbeeld. Je kunt dat dan ook naar een bestand schrijven, heb je iets om makkelijker terug te zoeken. Een pc is vast makkelijker om dingen te lezen dan een telefoonschermpje van 10 regels met 20 tekens.
    dat klopt ja, en het is zelfs zo dat ik er op mn telefoon niks van zie omdat het programma het post. Alleen weet ik nog steeds niet hoe die verbinding nou aangegaan wordt. Of mn telefoon eerst controleerd of ik aangemeld ben, en daarna pas dingen gaat versturen. Als dat zo is moet ik wel heel veel moeite gaan doen
    wipes66maandag 12 mei 2008 @ 22:52
    ik heb net een functie gemaakt die de "Did you mean ..." suggestie van google af haalt.

    Misschien dat iemand er iets aan heeft?

    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
    <?php
        
    function google_suggestion($str) {
            
            if (
    strlen(trim($str)) < 3) return false;
            
            
    $url 'http://www.google.com/search?hl=eng&q='.urlencode($str).'+-60349032&btnG=Zoeken&lr=';
            
    $html file_get_contents($url);
            
            if (
    $html == false) return false;
            
            if (
    eregi("Did you mean",$html) && eregi("spell\=1\" class\=p\>([^-60349032]+)",$html,$regs)) {
                if (isset(
    $regs[1])) {
                    if (
    strlen(trim($regs[1])) < 3) return false;
                    return 
    trim(strip_tags($regs[1]));
                }
            } elseif (!
    eregi("Did you mean",$html)) {
                
                
    preg_match_all('@(<b>([^<]+)</b>)@Uis'$html$a);
                
                if (isset(
    $a[2])) {
                    
    $words = array();
                    
    $top '';
                    
    $top_count 0;
                    foreach(
    $a[2] as $word) {
                        if (!isset(
    $words[$word])) $words[$word] = 1;
                        else 
    $words[$word]++;
                        if (
    $words[$word] > $top_count) {
                            
    $top_count $words[$word];
                            
    $top $word;
                        }
                    }
                    
    $compair_str strtolower(str_replace(array('"',"'"),'',$str));
                    if (
    $top !== $str && strtolower($top) != $compair_str && $top_count && $top != '...') return $top;
                }
                
            }
            return 
    false;
        }
    ?>


    ik vraag me alleen af of google hier moeilijk om doet
    SuperRembomaandag 12 mei 2008 @ 22:54
    quote:
    Op maandag 12 mei 2008 19:18 schreef qu63 het volgende:
    Heb een website gevonden die foto's automatisch van mn telefoon upload naar flickr en naar een ftp-website.
    Hoe automatisch is automatisch? Ga je naar een pagina en worden dan meteen al de foto's van je telefoon getrokken (lijkt me niet prettig)? Wat meot je doen voordat 't ge-upload wordt?
    qu63maandag 12 mei 2008 @ 23:00
    quote:
    Op maandag 12 mei 2008 22:54 schreef SuperRembo het volgende:

    [..]

    Hoe automatisch is automatisch? Ga je naar een pagina en worden dan meteen al de foto's van je telefoon getrokken (lijkt me niet prettig)? Wat meot je doen voordat 't ge-upload wordt?
    het is software op mn telefoon, ik moet dus wel eerst een foto selecteren, en dan op send drukken. Ik hoop dus dat ik het via een php-script kan laten lopen die dan alle data er uit filtert (een proxy dus, alleen wordt er niks doorgestuurd naar een andere website). Zo heb ik wel mijn weblog kunnen updaten via mms-berichten, dus ik hoop dat het nu ook werkt..
    qu63maandag 12 mei 2008 @ 23:16
    Deze code heb ik nu, eens kijken of dat genoeg is..
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    $handle 
    fopen("log.txt"'a');
    $arr = array();
    $arr $_REQUEST;
    $result "";
    foreach (
    $arr as $k => $v)
        {
            
    $result .= "$k => $v<br>\n\r";
        }
    fwrite($handle$result);
    fclose($handle);
    ?>
    qu63maandag 12 mei 2008 @ 23:23
    quote:
    Op maandag 12 mei 2008 23:16 schreef qu63 het volgende:
    Deze code heb ik nu, eens kijken of dat genoeg is..
    [ code verwijderd ]
    log blijft leeg, en helaas geeft de software op mn telefoon dus een foutmelding..

    de software zal denk ik dus eerst een reactie terug willen voordat er iets verstuurd wordt

    maar dan zou er toch íets in mn log moeten staan
    Lightdinsdag 13 mei 2008 @ 00:24
    quote:
    Op maandag 12 mei 2008 22:52 schreef wipes66 het volgende:
    ik heb net een functie gemaakt die de "Did you mean ..." suggestie van google af haalt.

    Misschien dat iemand er iets aan heeft?
    [ code verwijderd ]

    ik vraag me alleen af of google hier moeilijk om doet
    Geen idee, maar ik weet wel dat ereg/eregi niet de meest efficiente functie is. Als je zoekt naar een vaste string heb je meer aan strpos of strstr, en als je met reguliere expressies gaat werken heb je meer aan preg_match. Die is meestal sneller.
    wipes66dinsdag 13 mei 2008 @ 01:51
    quote:
    Op maandag 12 mei 2008 23:23 schreef qu63 het volgende:

    [..]

    log blijft leeg, en helaas geeft de software op mn telefoon dus een foutmelding..

    de software zal denk ik dus eerst een reactie terug willen voordat er iets verstuurd wordt

    maar dan zou er toch íets in mn log moeten staan
    probeer het eens met getallheaders()
    DionysuZdinsdag 13 mei 2008 @ 15:34
    Is er een class of iets dergelijks dat ik kan gebruiken om uit een PDF een pagina te halen en die als een plaatje te renderen?
    slacker_nldinsdag 13 mei 2008 @ 18:30
    quote:
    Op maandag 12 mei 2008 23:16 schreef qu63 het volgende:
    Deze code heb ik nu, eens kijken of dat genoeg is..
    [ code verwijderd ]
    Kan veul sneller:

    $array = array(1,2,3,4);
    $result = print_r($array, 1);
    print $result . "\n"

    Kan je daarna $result weer printen..

    En volgens mij kan je $arr = $_REQUEST wel laten, aangezien $_REQUEST ook aan array is, en zou je dus gewoon kunnen loopen door $_REQUEST... Maar goed, je probleem is er niet mee opgelost.
    qu63dinsdag 13 mei 2008 @ 19:31
    quote:
    Op dinsdag 13 mei 2008 18:30 schreef slacker_nl het volgende:

    [..]

    Kan veul sneller:

    $array = array(1,2,3,4);
    $result = print_r($array, 1);
    print $result . "\n"

    Kan je daarna $result weer printen..

    En volgens mij kan je $arr = $_REQUEST wel laten, aangezien $_REQUEST ook aan array is, en zou je dus gewoon kunnen loopen door $_REQUEST... Maar goed, je probleem is er niet mee opgelost.
    het gaat mij nu in eerste instantie niet om snelheid, maar meer om haalbaarheid/werkzaamheid
    Chandlerdinsdag 13 mei 2008 @ 19:41
    TVP
    DionysuZdinsdag 13 mei 2008 @ 19:59
    quote:
    Op dinsdag 13 mei 2008 15:34 schreef DionysuZ het volgende:
    Is er een class of iets dergelijks dat ik kan gebruiken om uit een PDF een pagina te halen en die als een plaatje te renderen?
    heb de oplossing al gevonden door ghostscript command line te gebruiken vanuit php.
    Xcaliburdinsdag 13 mei 2008 @ 21:15
    heeft iemand ervaring met Smarty?

    Ik probeer een plugin te maken die weer een andere plugin gebruikt. Maar die kan ik niet aanroepen... tips?
    Farenjidinsdag 13 mei 2008 @ 21:21
    quote:
    Op dinsdag 13 mei 2008 21:15 schreef Xcalibur het volgende:
    heeft iemand ervaring met Smarty?

    Ik probeer een plugin te maken die weer een andere plugin gebruikt. Maar die kan ik niet aanroepen... tips?
    Ik heb wel een tip: iets meer info zou wel helpen.
    Wat probeer je precies te maken, welke plugin wordt er gebruikt, wat bedoel je met "kan ik niet aanroepen", krijg je foutmeldingen, zo ja: welke, etc etc.
    Schepseltjedinsdag 13 mei 2008 @ 22:02
    -argh, lange ij in de titel, kan iemand dat even aanpassen-

    Ik heb een tabel met personen en bedrijven, voorzien van een langitude en longitude, is het mogelijk om de reistijd uit te rekenen tussen twee willekeurige personen of bedrijven?
    Ik heb het al voor elkaar om de afstand uit te rekenen via de haversine formule, alleen de reistijd is natuurlijk een ander verhaal.

    Mijn idee was om een script te maken die de locaties naar google maps stuurt en vervolgens de reistijd eruit trekt en opslaat.. alleen ik weet niet zeker of dit mag, of dat er beter alternatieven zijn
    Een andere mogelijkheid is een licensie nemen op postcode.nl, maar deze lui vragen belachelijke bedragen dus dat is geen optie..

    zijn er nog andere 'nettere' mogelijkheden?
    Farenjidinsdag 13 mei 2008 @ 22:17
    Google heeft een mooie webservices api voor maps en daar behoort dit vast ook tot de mogelijkheden. Alleen even een key aanvragen en dan kun je zo connecten vanuit je script.
    Schepseltjedinsdag 13 mei 2008 @ 22:20
    quote:
    Op dinsdag 13 mei 2008 22:17 schreef Farenji het volgende:
    Google heeft een mooie webservices api voor maps en daar behoort dit vast ook tot de mogelijkheden. Alleen even een key aanvragen en dan kun je zo connecten vanuit je script.
    heb me al kapot zitten zoeken, heb jij een link?
    ErikNdinsdag 13 mei 2008 @ 22:25
    quote:
    Op dinsdag 13 mei 2008 22:20 schreef Schepseltje het volgende:

    [..]

    heb me al kapot zitten zoeken, heb jij een link?
    Hier ergens http://code.google.com/. Zoeken naar Google Maps API.
    Farenjidinsdag 13 mei 2008 @ 22:26
    Sjongejongejonge .... kapot zitten zoeken ... vuile leugenaar!

    http://www.google.nl/search?q=google+maps+api
    Schepseltjedinsdag 13 mei 2008 @ 22:30
    ik bedoel dus de link van de module om reistijden uit te rekenen, niet de google api zelf
    Farenjidinsdag 13 mei 2008 @ 22:46
    Asjeblieft:
    http://code.google.com/ap(...)nce.html#GDirections
    Functie getDistance()
    Reistijden zijn natuurlijk afhankelijk van het vervoersmiddel en hoe hard dat gaat. Dat is eenvoudig zelf uit te rekenen.

    -edit-
    http://code.google.com/ap(...)eference.html#GRoute
    Functie getDuration() zou je op je wenken moeten bedienen.
    Tarabassdinsdag 13 mei 2008 @ 23:24
    Kapot zitten zoeken
    Schepseltjedinsdag 13 mei 2008 @ 23:40
    ik ga ff kijken of ik hier iets mee kan, de laatste keer dat ik getDuration gebruikte was het nogal onbetrouwbaar
    Farenjidinsdag 13 mei 2008 @ 23:58
    quote:
    Op dinsdag 13 mei 2008 23:40 schreef Schepseltje het volgende:
    ik ga ff kijken of ik hier iets mee kan, de laatste keer dat ik getDuration gebruikte was het nogal onbetrouwbaar
    Het is nooit meer dan een schatting of een gemiddelde. Natte vingerwerk. Een bejaarde met een kunstheup en rollator zal veel langer doen over 2km dan een jonge getrainde atleet. En als je van Utrecht naar Amsterdam gaat met de auto dan zal dat zaterdags 's nachts veel sneller gaan dan midden in de maandagochtendspits... dat lijkt me vrij vanzelfsprekend.
    Schepseltjewoensdag 14 mei 2008 @ 00:00
    quote:
    Op dinsdag 13 mei 2008 23:58 schreef Farenji het volgende:

    [..]

    Het is nooit meer dan een schatting of een gemiddelde. Natte vingerwerk. Een bejaarde met een kunstheup en rollator zal veel langer doen over 2km dan een jonge getrainde atleet. En als je van Utrecht naar Amsterdam gaat met de auto dan zal dat zaterdags 's nachts veel sneller gaan dan midden in de maandagochtendspits... dat lijkt me vrij vanzelfsprekend.
    das logisch, alleen ik kreeg af en toe geen waarde terug, en na nog een keer proberen wel, waren ook klachten over op het forum, maar zal waarschijnlijk wel gefixt zijn
    SuperRembowoensdag 14 mei 2008 @ 00:04
    quote:
    Op dinsdag 13 mei 2008 23:40 schreef Schepseltje het volgende:
    ik ga ff kijken of ik hier iets mee kan, de laatste keer dat ik getDuration gebruikte was het nogal onbetrouwbaar
    Je had natuurlijk ook meteen in je openingspost kunnen melden dat je bekend bent de Google API inclusief getDuration()
    Farenjiwoensdag 14 mei 2008 @ 00:07
    Maw je kende en gebruikte de functie die ik voor je heb opgezocht al lang maar je gaat maar een beetje naar de bekende weg vragen hier?

    "Ik kan het niet vinden, heb me kapot gezocht" ???

    WTF zeg. Stel dan gewoon meteen de juiste vragen.
    Schepseltjewoensdag 14 mei 2008 @ 01:18
    ok, maar nu het volgende probleem, die functies als getDuration werken via javascript, wat ik wil is 2 locaties in php opgeven zodat ik de reistijd terugkrijg, dan is het niet handig om met javascript te werken

    zijn er methodes om dit serverside te doen? net als de geocoder bv?
    RM-rfwoensdag 14 mei 2008 @ 01:43
    natuurlijk zijn die methodes er ... de google map API zal waarschijnlijk ook gewoon met Ajax calls werken en daar wordt javascript enkel gebrikt als wrapper voor de xml-requests naar de googleserver...


    dus is het gewoon zaak om de specifieke AJAX-api een beetje te dorpluizen en direct de httpXMLrequests eruit te halen en deze door PHP te laten uitvoeren....

    of verwacht je dat hier iemand anders kant-en-klare code voor je gaat aanleveren?
    Xcaliburwoensdag 14 mei 2008 @ 08:39
    Ik heb zelf een plugin geschreven die mijn <a> tags schrijft. Afhankelijk van of mod_rewrite aanstaan of niet krijg ik een 'mooie' link of een link met querystringvariabelen.

    Nu ben ik bezig een paginanummering / pagination plugin te schrijven, maar daar heb ik dus die <a> plugin bij nodig, om de links op de juiste manier op te maken. Maar het lukt met niet om de <a> plugin aan te roepen vanuit de paginanummering plugin.

    Afhankelijk van hoe ik hem probeer te benaderen krijg ik een foutmelding in de trant van "Call to undefined method"....
    Chandlerwoensdag 14 mei 2008 @ 09:39
    Kleine vraag weer,

    Ik wil graag uit een document bepaalde gegevens filteren

    bv

    1
    2
    3
    4
    5
    Genre: Dance
    Group: Person
    Person: Mr. Nobody
    Label: test label
    Last album: test cd


    nu wil ik per regel bepaalde gegevens filteren en heb dus een array gemaakt met de volgende namen

    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    $ar 
    = array("Genre""Group""Person""Label""Last album");

    foreach (
    $ar AS $zoek)
    {
        
    // code
    }
    ?>


    Nu wil middels preg_match_all de regel uitlezen die begint met de zoek gegevens oftewel

    1
    2
    3
    4
    5
    Genre: *
    Group: *
    Person: *
    Label: *
    Last album: *


    Maar nu is de vraag hoe kan ik dit uitlezen, ik heb het volgende al geprobeerd maar blijkbaar werkt dat niet! :(

    1
    2
    3
    4
    5
    6
    <?php
    if(preg_match_all("/" $zoek "\:(.*)/i"$buf$matches))
    {
         
    // doe iets met matches[1]
    }
    ?>


    maar ik krijg totaal geen resultaten... why o why?
    Schepseltjewoensdag 14 mei 2008 @ 11:06
    nee een zetje in de juiste richting zou handig zijn.. daarvoor zijn fora bedoeld he..
    Xcaliburwoensdag 14 mei 2008 @ 11:19
    quote:
    Op woensdag 14 mei 2008 08:39 schreef Xcalibur het volgende:
    Ik heb zelf een plugin geschreven die mijn <a> tags schrijft. Afhankelijk van of mod_rewrite aanstaan of niet krijg ik een 'mooie' link of een link met querystringvariabelen.

    Nu ben ik bezig een paginanummering / pagination plugin te schrijven, maar daar heb ik dus die <a> plugin bij nodig, om de links op de juiste manier op te maken. Maar het lukt met niet om de <a> plugin aan te roepen vanuit de paginanummering plugin.

    Afhankelijk van hoe ik hem probeer te benaderen krijg ik een foutmelding in de trant van "Call to undefined method"....
    Opgelost
    Je moet gewoon de naam van de functie aanroepen, en je niks aantrekken van Smarty.... soms is het makkelijker dan je denkt
    slacker_nlwoensdag 14 mei 2008 @ 11:19
    Je kan de regels ook gewoon splitten..

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    $cat 
    = array("Genre""Group""Person""Label""Last album");

    $file_contents split("\n"file_get_contents("file"));

    foreach(
    $file_contents as $v) {
        list(
    $id$data) = split(':'$v);
        if (
    in_array($id$cat)) {
            
    printf("ID %s - DATA %s\n"$id$data);
        }
    }
    ?>


    Of je doet dit:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    $cat 
    = array("Genre""Group""Person""Label""Last album");
    $regexp join("|"$cat);

    $file_contents split("\n"file_get_contents("file"));

    foreach(
    $file_contents as $v) {
        if (
    preg_match("/^($regexp):\s+(.*)/"$v$matches)) {
            
    printf("ID %s - DATA %s\n"$matches[1], $matches[2]);
        }
    }
    ?>


    [ Bericht 0% gewijzigd door slacker_nl op 14-05-2008 11:28:58 ]
    slacker_nlwoensdag 14 mei 2008 @ 11:27
    quote:
    Op dinsdag 13 mei 2008 19:31 schreef qu63 het volgende:

    [..]

    het gaat mij nu in eerste instantie niet om snelheid, maar meer om haalbaarheid/werkzaamheid
    Dat zei ik ook, je probleem is er niet mee opgelost, maar vond het nogal omslachting, vooral omdat print_r precies doet wat jij wilt doen..
    qu63woensdag 14 mei 2008 @ 12:01
    quote:
    Op woensdag 14 mei 2008 11:27 schreef slacker_nl het volgende:

    [..]

    Dat zei ik ook, je probleem is er niet mee opgelost, maar vond het nogal omslachting, vooral omdat print_r precies doet wat jij wilt doen..
    maar print_r poept het uit op het scherm, en niet in een file, toch
    slacker_nlwoensdag 14 mei 2008 @ 12:09
    Zo wel (kijk eens naar de code die ik eerder postte, daar zie je dat ik $result = print_r($array, 1); uitvoer. Die boolean na de $array is een boolean om ervoor te zorgen dat print_r niet naar STDOUT print, maar dit als value aan je retourneert. Dan kan je er alles mee doen, ook in een file opslaan:

    $array = array(1,2,3,4);
    file_put_contents($file, print_r($array, 1));

    [ Bericht 60% gewijzigd door slacker_nl op 14-05-2008 12:25:07 ]
    slacker_nlwoensdag 14 mei 2008 @ 12:15
    quote:
    Op woensdag 14 mei 2008 01:43 schreef RM-rf het volgende:
    of verwacht je dat hier iemand anders kant-en-klare code voor je gaat aanleveren?
    Ja, lijkt me wel tof!
    qu63woensdag 14 mei 2008 @ 12:53
    quote:
    Op woensdag 14 mei 2008 12:09 schreef slacker_nl het volgende:
    Zo wel (kijk eens naar de code die ik eerder postte, daar zie je dat ik $result = print_r($array, 1); uitvoer. Die boolean na de $array is een boolean om ervoor te zorgen dat print_r niet naar STDOUT print, maar dit als value aan je retourneert. Dan kan je er alles mee doen, ook in een file opslaan:

    $array = array(1,2,3,4);
    file_put_contents($file, print_r($array, 1));
    weer wat geleerd dus
    WyriHaximuswoensdag 14 mei 2008 @ 13:11
    Zo moeilijk is het toch niet om met een packetsniffer desnoods die ajax call na te bouwen in php?
    Chandlerwoensdag 14 mei 2008 @ 13:22
    quote:
    Op woensdag 14 mei 2008 11:19 schreef slacker_nl het volgende:
    Je kan de regels ook gewoon splitten..
    [ code verwijderd ]

    Of je doet dit:
    [ code verwijderd ]
    idd handig maar had het opgelost met "/" . $search . "\:\s+(.*)/i"

    Dzywoensdag 14 mei 2008 @ 13:28
    TVP. Ben met een systeempje bezig met cURL en iMDB zoals eerder maar nu lokaal draaiend. Ik heb nog een kort vraagje en heeft meer met apache te maken dan met php/mysql maar hoe zet ik uit dat mensen van buiten kunnen connecten naar mijn apache? Het is toch alleen voor mezelf, een soort van admin panel met meerdere dingen als to do list, agenda en film archiveer module en het is veiliger gewoon alles te negeren behalve localhost dan met password e.d. werken.
    slacker_nlwoensdag 14 mei 2008 @ 13:28
    Zie weinig verschil met je eerste code tbh. Behalve dan een check op een whitespace en dat je $zoek hebt vertaald..
    slacker_nlwoensdag 14 mei 2008 @ 13:35
    quote:
    Op woensdag 14 mei 2008 13:28 schreef Dzy het volgende:
    TVP. Ben met een systeempje bezig met cURL en iMDB zoals eerder maar nu lokaal draaiend. Ik heb nog een kort vraagje en heeft meer met apache te maken dan met php/mysql maar hoe zet ik uit dat mensen van buiten kunnen connecten naar mijn apache? Het is toch alleen voor mezelf, een soort van admin panel met meerdere dingen als to do list, agenda en film archiveer module en het is veiliger gewoon alles te negeren behalve localhost dan met password e.d. werken.
    Je zegt het zelf al, apache alleen laten luisteren op 127.0.0.1, en anders kan je in apache voor deze vhost ook een allow,deny doen ala:
    1
    2
    3
    4
    5
    6
    7
    <Location "/imdb">
            Order Allow,Deny

            Allow from 127.0.0.1
            Allow from <ander IP>
            # Verkeer uit andere IP space wordt gedenied.
    </Location>
    Farenjiwoensdag 14 mei 2008 @ 13:41
    Je moet gewoon in de google javascript code kijken wat er precies onderwater gebeurt; waarschijnlijk wordt er gewoon een url aangeroepen met parameters en daaruit komt XML of JSON.
    (nu maar hopen dat die javascript code niet obfuscated is!!)
    Devrim_woensdag 14 mei 2008 @ 15:43
    quote:
    Op woensdag 14 mei 2008 10:45 schreef Devrim_ het volgende:
    Heeft er iemand een PHP scriptje dat ervoor zorgt dat een file bijv. voor maximaal 1000MB gedownload kan worden?
    quote:
    Op woensdag 14 mei 2008 12:20 schreef slacker_nl het volgende:
    Maximaal voor 1000MB, je wilt er voor zorgen dat een file niet meer traffic kan genereren dan 1Gb, of je wilt dat ie 1000 keer gedownload kan worden? Of je wilt dat een file niet groter dan 1 Gb op je server gezet kan worden: upload_max_filesize = 1024M
    Dat er dus niet meer dan 1GB traffic kan worden door een map/file
    Chandlerwoensdag 14 mei 2008 @ 17:31
    Dan zul je daarvoor een scriptje moeten schrijven
    Dzywoensdag 14 mei 2008 @ 18:49
    Hoe doen van die grote filedeposit sites a la rapidshare enzo dat eigenlijk? Ik heb ooit wel eens files in een database gekiept met base64 encoding maar dat is echt suf qua storage. Gewoon de files in een directory die niet van buiten te benaderen is zetten en dan doortunnelen met php?
    Farenjiwoensdag 14 mei 2008 @ 18:58
    quote:
    Op woensdag 14 mei 2008 13:41 schreef Farenji het volgende:
    Je moet gewoon in de google javascript code kijken wat er precies onderwater gebeurt; waarschijnlijk wordt er gewoon een url aangeroepen met parameters en daaruit komt XML of JSON.
    (nu maar hopen dat die javascript code niet obfuscated is!!)
    Fuck, verkeerde topic.

    -edit- toch niet.Mergen van topics Dacht al dat ik dement aan het worden was....
    Schepseltjewoensdag 14 mei 2008 @ 19:01
    quote:
    Op woensdag 14 mei 2008 18:58 schreef Farenji het volgende:

    [..]

    Fuck, verkeerde topic.

    -edit- toch niet.Mergen van topics Dacht al dat ik dement aan het worden was....

    mja ik ook.. nou is mijn topic helemaal fucked
    qu63woensdag 14 mei 2008 @ 20:28
    quote:
    Op dinsdag 13 mei 2008 01:51 schreef wipes66 het volgende:

    [..]

    probeer het eens met getallheaders()
    helaas werkt dat alleen als php op apache draait, en mn host draait IIS, en ik zelf draai abyss..
    qu63woensdag 14 mei 2008 @ 20:31
    quote:
    Op woensdag 14 mei 2008 01:18 schreef Schepseltje het volgende:
    ok, maar nu het volgende probleem, die functies als getDuration werken via javascript, wat ik wil is 2 locaties in php opgeven zodat ik de reistijd terugkrijg, dan is het niet handig om met javascript te werken

    zijn er methodes om dit serverside te doen? net als de geocoder bv?
    je kan er wel een document.write aanvast plakken, maar meer kan je serverside niet doen
    Farenjiwoensdag 14 mei 2008 @ 20:43
    quote:
    Op woensdag 14 mei 2008 20:31 schreef qu63 het volgende:

    [..]

    je kan er wel een document.write aanvast plakken, maar meer kan je serverside niet doen
    Onzin, een client sided ajax request is op geen enkel opzicht anders dan een server sided request via iets als curl.
    Schepseltjewoensdag 14 mei 2008 @ 20:57
    quote:
    Op woensdag 14 mei 2008 20:43 schreef Farenji het volgende:

    [..]

    Onzin, een client sided ajax request is op geen enkel opzicht anders dan een server sided request via iets als curl.
    ok maar dan moet ik dus ajax als tussenstap gebruiken? dus eerst de waarden uit de database halen, daarmee een google javascriptje maken die de reisafstand uitrekent en verolgens een ajax call die deze in de db opslaat?

    de bedoeling is dat het als cronjob gaat draaien
    Farenjiwoensdag 14 mei 2008 @ 22:19
    quote:
    Op woensdag 14 mei 2008 20:57 schreef Schepseltje het volgende:

    [..]

    ok maar dan moet ik dus ajax als tussenstap gebruiken? dus eerst de waarden uit de database halen, daarmee een google javascriptje maken die de reisafstand uitrekent en verolgens een ajax call die deze in de db opslaat?
    Neen. Zoals ik al zei een ajax call is niks speciaals maar gewoon een standaard http call naar een url waar xml of json uitkomt. Je hebt geen javascript /ajax nodig, je moet alleen erachter zien te komen *wat* er in die javascript precies aangeroepen wordt. En dat moet je dus in je php simuleren mbv curl of iets dergelijks.
    super-muffindonderdag 15 mei 2008 @ 00:19
    quote:
    Op woensdag 14 mei 2008 22:19 schreef Farenji het volgende:

    [..]

    Neen. Zoals ik al zei een ajax call is niks speciaals maar gewoon een standaard http call naar een url waar xml of json uitkomt. Je hebt geen javascript /ajax nodig, je moet alleen erachter zien te komen *wat* er in die javascript precies aangeroepen wordt. En dat moet je dus in je php simuleren mbv curl of iets dergelijks.
    Maar vaak zit er wel een check in, ongeveer op deze manier :
    1
    2
    3
    4
    5
    6
    <?php
    if (!isset($_SERVER['HTTP_X_REQUESTED_WITH']) OR $_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest')
    {
        die(
    'Illigal request');
    }
    ?>


    Is dat makkelijk te simuleren zoals jij zegt?
    Xcaliburdonderdag 15 mei 2008 @ 08:28
    Waarom staan er ineens allemaal javascript vragen in dit topic?
    WyriHaximusdonderdag 15 mei 2008 @ 08:46
    quote:
    Op donderdag 15 mei 2008 00:19 schreef super-muffin het volgende:

    [..]

    Maar vaak zit er wel een check in, ongeveer op deze manier :
    [ code verwijderd ]

    Is dat makkelijk te simuleren zoals jij zegt?
    Je pakt een packet sniffer en kijkt wat er allemaal met de AJAX call word mee gestuurd, vervolgens bouw je deze zo goed mogelijk na (met bijvoorbeeld fsockopen of curl what ever suits you), dus alle healders en andere dingen die in die call worden meegestuurd stuur jij ook mee. Op die manier zal de server aan de andere kant niet doorhebben dat het een script ipv browser is die de call maakt .
    Farenjidonderdag 15 mei 2008 @ 09:12
    quote:
    Op donderdag 15 mei 2008 00:19 schreef super-muffin het volgende:

    [..]

    Maar vaak zit er wel een check in, ongeveer op deze manier :
    [ code verwijderd ]

    Is dat makkelijk te simuleren zoals jij zegt?
    Uiteraard, met curl kun je elke willekeurige header meesturen. Ook dingen als useragent etc.
    JortKdonderdag 15 mei 2008 @ 09:12
    Goede plugin voor firefox om te zien welke headers er verstuurd worden: Live HTTP headers
    urseldonderdag 15 mei 2008 @ 10:26
    Was ik dit topic gewoon kwijt..
    Feoladonderdag 15 mei 2008 @ 11:45
    lama
    Hmaildonderdag 15 mei 2008 @ 12:57
    Help ;(

    Ik ben met regexen aan het kloten om een soort van eigen geschreven Markup Language te bouwen. Mijn idee is dit:
    Ik heb een textveld waar wat text ingezet kan worden. Door middel van [[functie|parameter1|parameter2]] kunnen extra functies benaderd worden. Alleen.. hoe vertaal ik dat naar regexen? Die probeer ik altijd wanhopig te ontwijken, omdat die 'taal' me altijd wat te uitgebreid is, alleen nu kom ik er niet omheen.

    Oke, code:
    Dit is wat ik nu heb:
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    $test 
    "[[test|test]]";
    if(
    preg_match("/^\[\[[A-Za-z0-9\|]+\]\]/"$test$matches)) {
        echo 
    '<pre>'print_r($matches1), '</pre>';
    } else {
        echo 
    "Nee, helaas :(";
    }
    ?>

    En zowaar, het matcht *O*

    Alleen, nu wil ik graag zoiets doen wat ze ook op de php.net pagina gebruiken (Example 3):
    1
    2
    3
    4
    5
    <?php
    preg_match
    ('@^(?:http://)?([^/]+)@i',
        
    "http://www.php.net/index.html"$matches);
    $host $matches[1];
    ?>

    Hier strippen ze "http://" en "/index.html" van de string. Alleen begrijp ik geen moer van de regexcode die er om heen staat. Kan iemand me uitleggen waar de tekens voor staan, ik kom er met behulp van de regex-tutorials niet uit.. ;(

    Alvast bedankt :)
    slacker_nldonderdag 15 mei 2008 @ 14:10
    quote:
    Op donderdag 15 mei 2008 12:57 schreef Hmail het volgende:
    Je hebt geen matches.. Whot? Nou, je doet een regexp match op met een reguliere expressie die nooit matches teruggeeft, aangezien je de gevonden resultaten niet captured.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    $test 
    "[[test|test]]";
    if(
    preg_match("/^\[\[([\w\|]+)\]\]/"$test$matches)) {
        print 
    $matches[1] . "\n"// test|test
        
    $params split("|"$matches[1])
        
    $func array_shift($params);
    } else {
        echo 
    "Nee, helaas <img class="rde_img_smiley" src="http://i.fok.nl/s/frown.gif" width="15" height="15" alt="" />";
    }
    ?>


    de () zorgen ervoor dat hetgene wat daarin matched in $matches terecht komt:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    $line 
    "Hello world";

    if (
    preg_match("/Hello \w+/"$line$matches)) {
       
    print_r($matches); // Zit niks in.. 
    }

    if (
    preg_match("/Hello (\w+)/"$line$matches)) {
       
    print_r($matches); // Bevat Hello World (matches[0]) en matches[1] is world
    }
    ?>


    Je kan in een character class [] ook \w, \d etc gebruiken, en de \w is hetzelfde als de volgende character class: [A-Za-z0-9], \d is hetzelfde als [0-9] en \s is hetzelfde als [ \t\n\f\r] (whitespace characters).

    [ Bericht 24% gewijzigd door slacker_nl op 15-05-2008 14:58:19 ]
    Xcaliburdonderdag 15 mei 2008 @ 15:39
    ik heb gisteren m'n server laten crashen met een brakke regex, dus ik wens je veel succes
    Dzydonderdag 15 mei 2008 @ 18:35
    Heeft hier iemand ervaring met CakePHP? Ik probeer wat dingetjes en het lukt aardig maar ik zit wel met wat vragen.

    Waar is bijvoorbeeld de beste plek om te laten checken of iemand ingelogd is en dat in een variabele of objectelement neer te pleuren zodat ik bij elke controller afhankelijk van of iemand ingelogd is of niet andere dingen kan doen of mensen weigeren?
    Lightdonderdag 15 mei 2008 @ 19:51
    quote:
    Op donderdag 15 mei 2008 15:39 schreef Xcalibur het volgende:
    ik heb gisteren m'n server laten crashen met een brakke regex, dus ik wens je veel succes
    Een server laten crashen met een regexp, hoe doe je dat?
    Dzydonderdag 15 mei 2008 @ 19:53
    Slecht geconfigureerde server dus
    qu63donderdag 15 mei 2008 @ 22:31
    Is het mogelijk om dmv php een mailbox/adres uit te lezen en de bijlagen ergens op te slaan, en de body van het bericht ook? eventueel beide in een database..

    is zeg maar een andere aanpak van mn eerdere probleem aangezien ik daar niet uitkom
    Lightdonderdag 15 mei 2008 @ 22:39
    quote:
    Op donderdag 15 mei 2008 22:31 schreef qu63 het volgende:
    Is het mogelijk om dmv php een mailbox/adres uit te lezen en de bijlagen ergens op te slaan, en de body van het bericht ook? eventueel beide in een database..

    is zeg maar een andere aanpak van mn eerdere probleem aangezien ik daar niet uitkom
    Er zijn wel wat functies voor.
    qu63donderdag 15 mei 2008 @ 22:42
    heb wel dit gevonden, maar daar vind ik niks over bijlagen etc.
    qu63donderdag 15 mei 2008 @ 22:47
    quote:
    Op donderdag 15 mei 2008 22:39 schreef Light het volgende:

    [..]

    Er zijn wel wat functies voor.
    hmz, dat wordt dan flink puzzelen

    alleen staat er daar ook niks over bijlagen...
    Xcaliburdonderdag 15 mei 2008 @ 22:58
    quote:
    Op donderdag 15 mei 2008 19:51 schreef Light het volgende:

    [..]

    Een server laten crashen met een regexp, hoe doe je dat?
    het was een redirect in de htaccess, met een typo... waardoor die feitelijk naar zichzelf redirect (eigenlijk naar een error pagina), daar dezelfde regex vond, weer redirecte, etc....

    Ik weet niet of er iets als een script timeout in Apache bestaat, maar die kwam dus niet... bovendien wordt er vanaf de errorpagina een mail gestuurd.... dus binnen notime had ik heel veel loops en heel veel mailtjes Bij inloggen op de FTP liep ik tegen timeouts aan en het control panel was sowieso een no-go.... dus toen heb ik hem maar gereboot

    Dus echt gecrashed was ie niet, maar onbruikbaar wel...
    Xcaliburdonderdag 15 mei 2008 @ 23:00
    quote:
    Op donderdag 15 mei 2008 19:53 schreef Dzy het volgende:
    Slecht geconfigureerde server dus
    Ja, dat vraag ik me dus af.... hoe kan ik zoiets voorkomen?
    Lightdonderdag 15 mei 2008 @ 23:01
    quote:
    Op donderdag 15 mei 2008 22:47 schreef qu63 het volgende:

    [..]

    hmz, dat wordt dan flink puzzelen

    alleen staat er daar ook niks over bijlagen...
    Gewoon kijken bij de functies voor message body. Daar is vast wat mee te doen. Een attachment wordt verzonden als deel van de body (het is geen header, dus het is body).
    qu63donderdag 15 mei 2008 @ 23:06
    quote:
    Op donderdag 15 mei 2008 23:01 schreef Light het volgende:

    [..]

    Gewoon kijken bij de functies voor message body. Daar is vast wat mee te doen. Een attachment wordt verzonden als deel van de body (het is geen header, dus het is body).
    hmz, van het weekend maar eens mee gaan spelen dan. alhoewel die pop3-class ook wel wat lijkt
    Farenjidonderdag 15 mei 2008 @ 23:31
    quote:
    Op donderdag 15 mei 2008 22:58 schreef Xcalibur het volgende:

    Ik weet niet of er iets als een script timeout in Apache bestaat, maar die kwam dus niet... bovendien wordt er vanaf de errorpagina een mail gestuurd....
    Dat laatste is gewoon een Slecht Idee TM.
    Ik kan geen reden bedenken waarom je een mail zou willen sturen bij een error pagina. Dit zijn dingen die je achteraf / periodiek wil doen, aan de hand van logfiles. Niet realtime.
    Xcaliburvrijdag 16 mei 2008 @ 08:59
    Dan krijg ik een mail als er op een site een pagina niet gevonden kan worden of er een database error optreed, waardoor ik dus direct kan ingrijpen. Over het algemeen krijg je in de eerste 2 dagen dat een site live staat soms een mailtje, en daarna nooit meer natuurlijk .... het is wel praktisch om typefoutjes te achterhalen enzo...

    Waarom zou dat een slecht idee zijn?
    Dzyvrijdag 16 mei 2008 @ 09:36
    Omdat het een manier is voor kwaadwilligen om heel makkelijk je server plat te krijgen, zodra ze daar achter zijn is in principe F5-en op een pagina met een fout erin al genoeg.
    urselvrijdag 16 mei 2008 @ 09:37
    quote:
    Op vrijdag 16 mei 2008 09:36 schreef Dzy het volgende:
    Omdat het een manier is voor kwaadwilligen om heel makkelijk je server plat te krijgen, zodra ze daar achter zijn is in principe F5-en op een pagina met een fout erin al genoeg.
    Zal Danny dat ook aan hebben staan dan??
    Dzyvrijdag 16 mei 2008 @ 10:08
    quote:
    Op vrijdag 16 mei 2008 09:37 schreef ursel het volgende:

    [..]

    Zal Danny dat ook aan hebben staan dan??
    Zou wel een hoop verklaren.
    Chandlervrijdag 16 mei 2008 @ 17:35
    Ik heb een vraagje, ik wil ranges van IP adressen opslaan echter wil ik deze niet dubbel in mijn lijst hebben.

    Voorbeeld qua MySQL opzet
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE TABLE `ipranges` (
      `id` int(11) NOT NULL auto_increment,
      `title` varchar(128) NOT NULL,
      `start_range` bigint(11) NOT NULL,
      `end_range` bigint(11) NOT NULL,
      `lastdate` datetime NOT NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=39 ;


    en wat voorbeelden

    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
    INSERT INTO `ipranges` VALUES (1, 'Essent Kabelcom B.V.', 1380450304, 1380712447, '2008-05-16 16:09:34');
    INSERT INTO `ipranges` VALUES (2, '@Home Maastricht Headend block', 1411268608, 1411280383, '2008-05-16 16:10:22');
    INSERT INTO `ipranges` VALUES (3, 'AOL', 1043529728, 1043562495, '2008-05-16 16:13:48');
    INSERT INTO `ipranges` VALUES (4, 'Essent Kabelcom B.V.', 1410859008, 1411383295, '2008-05-16 16:20:06');
    INSERT INTO `ipranges` VALUES (5, 'CPE Customers NL', 1345961472, 1345965823, '2008-05-16 16:20:08');
    INSERT INTO `ipranges` VALUES (6, 'Essent Kabelcom', -646193152, -646184961, '2008-05-16 16:20:38');
    INSERT INTO `ipranges` VALUES (7, 'Casema BV', 1398237184, 1398239231, '2008-05-16 16:21:46');
    INSERT INTO `ipranges` VALUES (8, 'Versatel Consumer is one of the largest ISP\\''s in the Netherlands', 1473445888, 1473462271, '2008-05-16 16:24:16');
    INSERT INTO `ipranges` VALUES (9, 'Telenet Operaties N.V.', 1421869056, 1422131199, '2008-05-16 16:29:50');
    INSERT INTO `ipranges` VALUES (10, 'XS4ALL Internet BV', 1348772352, 1348776703, '2008-05-16 16:41:01');
    INSERT INTO `ipranges` VALUES (11, 'Versatel Consumer is one of the largest ISP\\''s in the Netherlands', 1473511424, 1473527807, '2008-05-16 16:41:01');
    INSERT INTO `ipranges` VALUES (12, 'Essent Kabelcom', -646234112, -646217729, '2008-05-16 16:42:03');
    INSERT INTO `ipranges` VALUES (13, 'Telfort Internet', 1386938368, 1386975999, '2008-05-16 16:44:45');
    INSERT INTO `ipranges` VALUES (14, 'Wanadoo Nederland', 1386020864, 1386086399, '2008-05-16 16:45:46');
    INSERT INTO `ipranges` VALUES (15, 'Telfort Internet', 1386938368, 1386975999, '2008-05-16 16:47:26');
    INSERT INTO `ipranges` VALUES (16, 'ADSL18', 1414987776, 1415053311, '2008-05-16 16:49:09');
    INSERT INTO `ipranges` VALUES (17, 'XS4ALL Internet BV', 1350434816, 1350500351, '2008-05-16 16:49:13');
    INSERT INTO `ipranges` VALUES (18, 'Woonstichting De Key', -1854668800, -1854662657, '2008-05-16 16:53:35');
    INSERT INTO `ipranges` VALUES (19, 'Essent Kabelcom B.V.', 1380450304, 1380712447, '2008-05-16 16:53:50');
    INSERT INTO `ipranges` VALUES (20, 'ADSL-GO-PLUS', 1374724096, 1374728191, '2008-05-16 16:54:45');
    INSERT INTO `ipranges` VALUES (21, 'Telenet Operaties N.V.', 1369702400, 1369767935, '2008-05-16 16:55:37');
    INSERT INTO `ipranges` VALUES (22, '@Home Roosendaal Headend block', 1410990080, 1411055615, '2008-05-16 16:56:05');
    INSERT INTO `ipranges` VALUES (23, 'CPE Customers NL', 1308107264, 1308109055, '2008-05-16 16:58:18');
    INSERT INTO `ipranges` VALUES (24, '@Home Venlo Headend block', 1411186688, 1411206143, '2008-05-16 16:58:35');
    INSERT INTO `ipranges` VALUES (25, 'Casema NV', 1398035456, 1398036479, '2008-05-16 16:58:46');
    INSERT INTO `ipranges` VALUES (26, 'ADSL17', 1414922240, 1414987775, '2008-05-16 17:00:59');
    INSERT INTO `ipranges` VALUES (27, 'NTL Internet', 1375731712, 1377828863, '2008-05-16 17:05:05');
    INSERT INTO `ipranges` VALUES (28, 'Telenet Operaties N.V.', 1421869056, 1422131199, '2008-05-16 17:09:45');
    INSERT INTO `ipranges` VALUES (29, 'Telenet', 1309933568, 1310195711, '2008-05-16 17:11:21');
    INSERT INTO `ipranges` VALUES (30, 'Wanadoo ADSL Customers with static addresses', 1435500544, 1435762687, '2008-05-16 17:15:44');
    INSERT INTO `ipranges` VALUES (31, 'Alice DSL', 1310400512, 1310408703, '2008-05-16 17:16:34');
    INSERT INTO `ipranges` VALUES (32, 'ADSL16', 1414856704, 1414922239, '2008-05-16 17:18:32');
    INSERT INTO `ipranges` VALUES (33, 'CPE Customers NL', -725942272, -725935617, '2008-05-16 17:19:28');
    INSERT INTO `ipranges` VALUES (34, 'Wanadoo ADSL Customers with static addresses', 1435500544, 1435762687, '2008-05-16 17:21:50');
    INSERT INTO `ipranges` VALUES (35, 'ADSL34', 1449066496, 1449132031, '2008-05-16 17:26:08');
    INSERT INTO `ipranges` VALUES (36, 'ADSL-GO-PLUS', 1374720000, 1374724095, '2008-05-16 17:31:09');
    INSERT INTO `ipranges` VALUES (37, 'UPC Broadband Operations B.V.', 411303936, 411369471, '2008-05-16 17:31:30');
    INSERT INTO `ipranges` VALUES (38, 'ADSL10', 1372520448, 1372585983, '2008-05-16 17:31:48');


    Zoals je ziet zitten hier dubbele in. Echter doe ik wel een check met de volgende code

    1
    2
    3
    4
    5
    6
    7
    8
    <?php
        $sql 
    "SELECT id
                FROM ipranges
                WHERE (start_range >= " 
    ip2long(getIp()) . " AND end_range   <= " ip2long(getIp()) . ")
                LIMIT 1"
    ;
        
    $query mysql_query($sql);
        
    $items mysql_num_rows($query);
    ?>


    Nu snap ik niet waar ik fout ga, want de query lijkt mij goed.

    Iemand? :D
    slacker_nlvrijdag 16 mei 2008 @ 17:43
    Waarom niet met whois informatie de range ophalen en die in cidr format opslaan.

    Je hoeft dan alleen de cidr notatie te achterhalen en daar een unique constraint op zetten.
    Chandlervrijdag 16 mei 2008 @ 18:18
    cidr formaat? de range haal ik sowieso via ripe op maar deze wil ik in de database zetten voor later/huidig gebruik.

    Maar ziet iemand waar ik de fout in ga?
    slacker_nlvrijdag 16 mei 2008 @ 18:37
    quote:
    Op vrijdag 16 mei 2008 18:18 schreef Chandler het volgende:
    cidr formaat? de range haal ik sowieso via ripe op maar deze wil ik in de database zetten voor later/huidig gebruik.

    Maar ziet iemand waar ik de fout in ga?
    CIDR formaat is dit:

    127.0.0.1/32 == 127.0.0.1
    194.134.32.0/24 == 194.134.32.0 - 194.134.32.255

    Dat is dus de range die je wilt opslaan
    Lightvrijdag 16 mei 2008 @ 18:51
    quote:
    Op vrijdag 16 mei 2008 17:35 schreef Chandler het volgende:
    Ik heb een vraagje, ik wil ranges van IP adressen opslaan echter wil ik deze niet dubbel in mijn lijst hebben.

    Voorbeeld qua MySQL opzet
    [ code verwijderd ]

    en wat voorbeelden
    [ code verwijderd ]

    Zoals je ziet zitten hier dubbele in. Echter doe ik wel een check met de volgende code
    [ code verwijderd ]

    Nu snap ik niet waar ik fout ga, want de query lijkt mij goed.

    Iemand?
    Het zal vast aan mij liggen, maar ik zie geen dubbelen.
    super-muffinvrijdag 16 mei 2008 @ 18:56
    Je kan van het IP ook een Unique maken.
    SuperRembovrijdag 16 mei 2008 @ 19:00
    quote:
    Op vrijdag 16 mei 2008 17:35 schreef Chandler het volgende:
    [...]

    Nu snap ik niet waar ik fout ga, want de query lijkt mij goed.
    Je vind het vreemd dat een query met LIMIT 1 niet meer dan 1 row oplevert?
    slakkievrijdag 16 mei 2008 @ 19:29
    quote:
    Op vrijdag 16 mei 2008 18:51 schreef Light het volgende:

    [..]

    Het zal vast aan mij liggen, maar ik zie geen dubbelen.
    check entry 13 && 15, beide van telfort en hebben dezelfde begin/eind waardes.
    Chandlervrijdag 16 mei 2008 @ 22:19
    quote:
    Op vrijdag 16 mei 2008 19:00 schreef SuperRembo het volgende:

    [..]

    Je vind het vreemd dat een query met LIMIT 1 niet meer dan 1 row oplevert?
    SuperRembo, dat hoeft toch ook niet. Als de regel bestaat dan krijg ik 1 ID terug bestaat deze niet dan krijg ik 0 terug!

    Er gaat iets fout in de where al snap ik niet wat
    JortKvrijdag 16 mei 2008 @ 22:30
    Chandler probeer eens BETWEEN ?
    Farenjivrijdag 16 mei 2008 @ 23:05
    quote:
    Op vrijdag 16 mei 2008 22:19 schreef Chandler het volgende:

    [..]

    SuperRembo, dat hoeft toch ook niet. Als de regel bestaat dan krijg ik 1 ID terug bestaat deze niet dan krijg ik 0 terug!

    Er gaat iets fout in de where al snap ik niet wat
    Kijk nou eens goed wat je conditie is: start_range moet kleiner dan of gelijk aan x zjin en end_range moet groter dan of gelijk aan x zijn. Met andere woorden: end_range moet kleiner zjin dan start_range, of start_range is gelijk aan end_range. Daar komt nooit een record uit natuurlijk.
    Chandlervrijdag 16 mei 2008 @ 23:18
    start range 255.255.255.0
    end range 255.255.255.255

    ls ik nu 255.255.255.10 dan klopt mijn query toch ;)

    1
    2
    3
    4
    5
    6
    7
    8
    <?php
        $sql 
    "SELECT id
                FROM ipranges
                WHERE (start_range >= " 
    ip2long("255.255.255.10") . " AND end_range   <= " ip2long("255.255.255.10") . ")
                LIMIT 1"
    ;
        
    $query mysql_query($sql);
        
    $items mysql_num_rows($query);
    ?>


    Ik zie de fout niet... zoals je hierboven hebt beschreven, maar zal ook wel komen omdat ik gewoon moe ben ;) :P
    Farenjivrijdag 16 mei 2008 @ 23:23
    Draai het nou gewoon maar om, suffie.
    Lightvrijdag 16 mei 2008 @ 23:32
    quote:
    Op vrijdag 16 mei 2008 23:18 schreef Chandler het volgende:
    start range 255.255.255.0
    end range 255.255.255.255

    ls ik nu 255.255.255.10 dan klopt mijn query toch
    [ code verwijderd ]

    Ik zie de fout niet... zoals je hierboven hebt beschreven, maar zal ook wel komen omdat ik gewoon moe ben
    Kijk er nog maar eens naar als je wakker bent dan
    En vergelijk dan het adres 255.255.255.10 met de startwaarde 255.255.255.0. En dan aan jou de vraag of start groter of kleiner is dan het ip waarmee je vergelijkt.
    SuperRembozaterdag 17 mei 2008 @ 00:25
    Of gebruik BETWEEN, dan kan je 't niet verkeerd doen
    Lightzaterdag 17 mei 2008 @ 00:39
    quote:
    Op zaterdag 17 mei 2008 00:25 schreef SuperRembo het volgende:
    Of gebruik BETWEEN, dan kan je 't niet verkeerd doen :P
    U zei?

    1
    2
    3
    <?php
    $query 
    'SELECT id FROM ipranges WHERE start_range BETWEEN ip AND  end_range';
    ?>
    SuperRembozaterdag 17 mei 2008 @ 00:49
    quote:
    Op zaterdag 17 mei 2008 00:39 schreef Light het volgende:

    [..]

    U zei?
    [ code verwijderd ]
    Never underestimate the power of stupid people using powerful tools
    sabanzaterdag 17 mei 2008 @ 00:55
    Net een topic geopend terwijl ik hier hier kon vragen
    [MYSQL] INT / SMALLINT
    Juicyhilzaterdag 17 mei 2008 @ 01:21
    Is er geen dergelijk topic voor C#/.NET ? Tenminste de èchte talen...
    Flaccidzaterdag 17 mei 2008 @ 09:43
    Ik weet niet of dit hier hoort maar:

    Ik heb een contactscriptje gemaakt, met een mail commando (php). Maar als je accenten gaat toevoegen zoals ü en dergeljke komt hij er heel raar uit te zien. Hoe kan je dat verhelpen?
    Chandlerzaterdag 17 mei 2008 @ 10:59
    quote:
    Op vrijdag 16 mei 2008 23:23 schreef Farenji het volgende:
    Draai het nou gewoon maar om, suffie.
    Ik heb het gedaan en het werkt! al snap ik het niet geheel waarom je kleiner dan en groter dan om moest draaien...

    Ik dacht juist dat je iets binnen die range moest checken maar goed het werkt!
    quote:
    Op zaterdag 17 mei 2008 01:21 schreef Juicyhil het volgende:
    Is er geen dergelijk topic voor C#/.NET ? Tenminste de èchte talen...
    Ik zou zeggen, start er een en stel je vragen!!!
    Tarabasszaterdag 17 mei 2008 @ 11:41
    quote:
    Op zaterdag 17 mei 2008 10:59 schreef Chandler het volgende:Ik zou zeggen, start er een en stel je vragen!!!
    Inderdaad! En maak mij gelijk lid wil je
    JortKzaterdag 17 mei 2008 @ 11:50
    quote:
    Op zaterdag 17 mei 2008 00:25 schreef SuperRembo het volgende:
    Of gebruik BETWEEN, dan kan je 't niet verkeerd doen
    Goed punt, [PHP/(My)SQL] voor dummies - deel 59
    Flaccidzaterdag 17 mei 2008 @ 15:30
    quote:
    Op zaterdag 17 mei 2008 09:43 schreef Flaccid het volgende:
    Ik weet niet of dit hier hoort maar:

    Ik heb een contactscriptje gemaakt, met een mail commando (php). Maar als je accenten gaat toevoegen zoals ü en dergeljke komt hij er heel raar uit te zien. Hoe kan je dat verhelpen?
    niemand?

    het euro tekentje wordt bijvoorbeeld €

    !! -> utf8 als set isntellen en dan in de headers, is genoeg

    [ Bericht 6% gewijzigd door Flaccid op 17-05-2008 15:45:43 ]
    Likkende_Lassiezondag 18 mei 2008 @ 11:02
    Een klant van mij heeft een huidige database met alle NAW gegevens van de ondernemers van Nederland en heeft deze onderverdeeld in tabellen zoals:

    woonplaats_a
    woonplaats_b
    woonplaats_c

    enz.

    Nu ik de gehele site opnieuw ga bouwen incl de database, vroeg ik mij af of er betere manieren zijn om dit onder te verdelen?

    Op dit moment is het namelijk ook niet echt snel zoeken door de database, maar dit kan ook een fout in het runnen van de query's zijn.
    Tarabasszondag 18 mei 2008 @ 11:45
    Als je wilt weten wat sneller is, zal je toch echt een vergelijking moeten geven. Sneller dan wat?
    Farenjizondag 18 mei 2008 @ 12:02
    Dit lijkt me, zacht gezegd, geen ideaal datamodel. Ik kan me goed voorstellen dat zoeken met zo'n opzet niet echt snel of efficient gaat.
    Gelijkvormige entiteiten moeten (genormaliseerd) in 1 tabel; opsplitsen tussen beginletter of wat dan ook doe je in de code, niet in het datamodel.
    Likkende_Lassiezondag 18 mei 2008 @ 12:21
    nee he
    Maar alles gewoon in 1 tabel plaatsen, er wordt eigenlijk alleen maar gezocht op bedrijfsnaam en plaats, die gewoon een index geven?

    In totaal zijn het wel iets van 1.4 miljoen records hé
    sabanzondag 18 mei 2008 @ 12:25
    date('l'); geeft Sunday terug, is er niet iets om bijvoorbeeld de taal vast te stellen? date('l','NL'); bijvoorbeeld voor zondag?

    Ik heb nu namelijk dit maar het moet makkelijker/netter kunnen:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    if (date('l') == "Monday") { $today "maandag"; }
    if (
    date('l') == "Tuesday") { $today "dinsdag"; }
    if (
    date('l') == "Wednesday") { $today "woensdag"; }
    if (
    date('l') == "Monday") { $today "donderdag"; }
    if (
    date('l') == "Thursday") { $today "vrijdag"; }
    if (
    date('l') == "Saturday") { $today "zaterdag"; }
    if (
    date('l') == "Sunday") { $today "zondag"; }
    ?>


    [ Bericht 89% gewijzigd door saban op 18-05-2008 12:34:35 ]
    Lightzondag 18 mei 2008 @ 12:30
    quote:
    Op zondag 18 mei 2008 12:25 schreef saban het volgende:
    date('l'); geeft Sunday terug, is er niet iets om bijvoorbeeld de taal vast te stellen? date('l','NL'); bijvoorbeeld voor zondag?
    Dan moet je strftime() gebruiken.
    sabanzondag 18 mei 2008 @ 12:42
    quote:
    Op zondag 18 mei 2008 12:30 schreef Light het volgende:

    [..]

    Dan moet je strftime() gebruiken.
    Dan moet locales wel geinstalleerd op de server zijn geloof ik, want ik krijg namelijk als output:
    1in Dutch is Sunday

    met
    1
    2
    3
    4
    <?php
    setlocale
    (LC_TIME"nl_NL");
    echo 
    strftime("in Dutch is %A");
    ?>
    qu63zondag 18 mei 2008 @ 12:46
    quote:
    Op zondag 18 mei 2008 12:42 schreef saban het volgende:

    [..]

    Dan moet locales wel geinstalleerd op de server zijn geloof ik, want ik krijg namelijk als output:
    [ code verwijderd ]

    met
    [ code verwijderd ]
    example 2
    setlocale(LC_ALL, 'nld_nld');
    Lightzondag 18 mei 2008 @ 12:49
    quote:
    Op zondag 18 mei 2008 12:42 schreef saban het volgende:

    [..]

    Dan moet locales wel geinstalleerd op de server zijn geloof ik, want ik krijg namelijk als output:
    [ code verwijderd ]

    met
    [ code verwijderd ]
    Die code is goed, daar ligt het niet aan. Dus het zal toch een ontbrekende locale zijn. Dat moet je hoster installeren.
    sabanzondag 18 mei 2008 @ 12:57
    quote:
    Op zondag 18 mei 2008 12:49 schreef Light het volgende:

    [..]

    Die code is goed, daar ligt het niet aan. Dus het zal toch een ontbrekende locale zijn. Dat moet je hoster installeren.
    1
    2
    3
    4
    Generating locales...
      en_US.ISO-8859-1... done
      nl_NL.ISO-8859-1... done
    Generation complete.




    Nu nog even uitzoeken hoe ik het daadwerkelijk ook activeer in Apache/PHP

    /edit
    Het werkt! Thanks
    Farenjizondag 18 mei 2008 @ 13:05
    quote:
    Op zondag 18 mei 2008 12:21 schreef Likkende_Lassie het volgende:
    nee he
    Maar alles gewoon in 1 tabel plaatsen, er wordt eigenlijk alleen maar gezocht op bedrijfsnaam en plaats, die gewoon een index geven?

    In totaal zijn het wel iets van 1.4 miljoen records hé
    Een bedrijf is toch altijd gekoppeld aan een woonplaats. Hoe wil je die woonplaats opzoeken als alle woonplaatsen verdeeld zijn over 26 tabellen? Wil je een voor een al die tabellen af gaan lopen?!? Die data moet in 1 tabel zitten zodat je daar met 1 identificerend veld (numeriek ID) naar kan verwijzen; Of wil je ook in de bedrijventabel de beginletter van de woonplaats bij gaan houden zodat je de juiste tabel er bij kan vinden? Dat is echt een rampzalig slecht idee.

    Dat het 1.4 records zijn boeit niks. Al zijn het er 1.4 miljard. Er zit (praktisch) geen maximum aan het aantal records in een tabel; een tabel wordt niet trager als er meer data in zit, zolang je maar de juiste indices aanbrengt. Welke indices dat moeten zijn, is voornamelijk afhankelijk van waar je op wil kunnen zoeken.
    R-Monzondag 18 mei 2008 @ 13:41
    Ik heb een vraagje. Ik heb deze tabellen:

    Schema ( id, name )
    Tabel ( id, schemaid, name )
    Relation ( id, schemaid, table1id, cardinality1, name, cardinality2, table2id )

    Hoe krijg ik in 1 query een Relatie waarbij table1id en table2id omgezet zijn naar de names van die tabellen? Hopelijk is dit duidelijk genoeg. Ik krijg het echt niet voorelkaar.
    sabanzondag 18 mei 2008 @ 13:59
    quote:
    Op zondag 18 mei 2008 12:57 schreef saban het volgende:

    [..]
    [ code verwijderd ]



    Nu nog even uitzoeken hoe ik het daadwerkelijk ook activeer in Apache/PHP

    /edit
    Het werkt! Thanks
    En 2 minuten later werkt het niet meer, krijg weer Sunday ipv zondag :/
    qu63zondag 18 mei 2008 @ 14:05
    quote:
    Op zondag 18 mei 2008 13:59 schreef saban het volgende:

    [..]

    En 2 minuten later werkt het niet meer, krijg weer Sunday ipv zondag :/
    en mijn optie?
    quote:
    Op zondag 18 mei 2008 12:46 schreef qu63 het volgende:

    [..]

    example 2
    setlocale(LC_ALL, 'nld_nld');
    sabanzondag 18 mei 2008 @ 14:49
    qu63 het was een systeemfout :) werkt inmiddels.

    Ben ook direct bezig met ereg, betekend dit het volgende:
    1
    2
    3
    <?php
    ereg
    ("^[A-Za-z0-9_-]{3,15}$",$username)
    ?>


    $username is minimaal 3, maximaal 15, bestaande uit
    a t/m z
    A t/m Z
    0 t/m 9
    -
    _
    Lightzondag 18 mei 2008 @ 15:46
    quote:
    Op zondag 18 mei 2008 14:49 schreef saban het volgende:

    Ben ook direct bezig met ereg, betekend dit het volgende:
    [ code verwijderd ]

    $username is minimaal 3, maximaal 15, bestaande uit
    a t/m z
    A t/m Z
    0 t/m 9
    -
    _
    Lijkt goed, maar ik zou preg adviseren ipv ereg. preg is (meestal) sneller.
    R-Monzondag 18 mei 2008 @ 16:04
    quote:
    Op zondag 18 mei 2008 13:41 schreef R-Mon het volgende:
    Ik heb een vraagje. Ik heb deze tabellen:

    Schema ( id, name )
    Tabel ( id, schemaid, name )
    Relation ( id, schemaid, table1id, cardinality1, name, cardinality2, table2id )

    Hoe krijg ik in 1 query een Relatie waarbij table1id en table2id omgezet zijn naar de names van die tabellen? Hopelijk is dit duidelijk genoeg. Ik krijg het echt niet voorelkaar.
    Opgelost met:

    SELECT (SELECT name FROM `Table` WHERE Table.id = Relation.table1id) AS table1, cardinality1, name, cardinality2, (SELECT name FROM `Table` WHERE Table.id = Relation.table2id) AS table2 FROM `Relation`

    Maar ik vind het nogal een lelijke oplossing.
    sabanzondag 18 mei 2008 @ 17:04
    quote:
    Op zondag 18 mei 2008 15:46 schreef Light het volgende:

    [..]

    Lijkt goed, maar ik zou preg adviseren ipv ereg. preg is (meestal) sneller.
    1
    2
    3
    <?php
    preg_match 
    ('/[^a-zA-Z0-9-_]/'$string)
    ?>


    Dit lijkt er op maar waarom is preg sneller?
    super-muffinzondag 18 mei 2008 @ 17:37
    quote:
    Op zaterdag 17 mei 2008 00:39 schreef Light het volgende:

    [..]

    U zei?
    [ code verwijderd ]


    Ik ben nu bezig met een klein programmatje die een XML in laad van een andere server en daar wil ik een cache systeempje voor schrijven. Ik heb nu dit ongeveer : (versimpelde versie)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
    $CacheFile 
    $CacheDir md5($Url); 

    if (!
    file_exists($File) OR filemtime($File) - time() < $CacheLifetime)
    {
        
    // Hoop andere code
        
    $Body MakeRequest();

        
    $Resource fopen($CacheFile'w');
        
    fwrite($Resource$Body);
        
    fclose($Resource);
    } else
    {
        
    $Body file_get_contents($CacheFile);
    }
    ?>


    Is dit een beetje waterdicht? Natuurlijk gaat de cache dir een beetje vol lopen op een gegeven moment, maar daar kan ik bijvoorbeeld ook een crontab voor gebruiken.

    Het scheelt wel heel wat laad tijd als het eenmaal is gecached, wat dus wel fijn is.
    Xcaliburzondag 18 mei 2008 @ 21:08
    waarom zou mijn server platgaan van een mailtje op een 404 error?
    Lightzondag 18 mei 2008 @ 21:16
    quote:
    Op zondag 18 mei 2008 17:37 schreef super-muffin het volgende:

    [..]



    Ik ben nu bezig met een klein programmatje die een XML in laad van een andere server en daar wil ik een cache systeempje voor schrijven. Ik heb nu dit ongeveer : (versimpelde versie)
    [ code verwijderd ]

    Is dit een beetje waterdicht? Natuurlijk gaat de cache dir een beetje vol lopen op een gegeven moment, maar daar kan ik bijvoorbeeld ook een crontab voor gebruiken.

    Het scheelt wel heel wat laad tijd als het eenmaal is gecached, wat dus wel fijn is.
    filemtime() is toch nooit groter dan time() ? Dus ik denk dat je die twee beter kunt omdraaien in je berekening.
    super-muffinzondag 18 mei 2008 @ 21:40
    quote:
    Op zondag 18 mei 2008 21:16 schreef Light het volgende:

    [..]

    filemtime() is toch nooit groter dan time() ? Dus ik denk dat je die twee beter kunt omdraaien in je berekening.
    Dat is een foutje in het overtikken, de echte code staat op een andere computer.
    SuperRembozondag 18 mei 2008 @ 23:39
    quote:
    Op zondag 18 mei 2008 16:04 schreef R-Mon het volgende:

    [..]

    Opgelost met:

    SELECT (SELECT name FROM `Table` WHERE Table.id = Relation.table1id) AS table1, cardinality1, name, cardinality2, (SELECT name FROM `Table` WHERE Table.id = Relation.table2id) AS table2 FROM `Relation`

    Maar ik vind het nogal een lelijke oplossing.
    Misschien vind je dit iets netter:
    1
    2
    3
    4
    SELECT t1.name AS table1, r.cardinality1, r.name, r.cardinality2, t2.name AS table2 
    FROM `Relation` r
    LEFT OUTER JOIN `Table` t1 ON t1.id = r.table1id
    LEFT OUTER JOIN `Table` t2 ON t2.id = r.table2id



    Zou 't zelfde resultaat op moeten leveren.
    R-Monmaandag 19 mei 2008 @ 11:44
    quote:
    Op zondag 18 mei 2008 23:39 schreef SuperRembo het volgende:

    [..]

    Misschien vind je dit iets netter:
    [ code verwijderd ]

    Zou 't zelfde resultaat op moeten leveren.
    Ja, die werkt en is idd veel mooier. Bedankt
    JJasperOdinsdag 20 mei 2008 @ 20:03
    Waarschijnlijk voor jullie de zoveelste noob die deze vraag hier stelt, maargoed wie niet waagt die niet wint.. Ik kan m'n UBERSIMPELE webform niet aan de gang krijgen.

    Ik ben bezig met een vernieuwde website voor m'n moeders schilderijen en 't is allemaal vrij amateuristisch, maar ik heb wel gebruik gemaakt van div's en css. Hier het huidige concept: www.buitendedoos.nl

    Nu wil ik dus een webformulier gaan gebruiken, is mooi zakelijk en ziet er mooi uit.. en minder spam, eindelijk! Uiteindelijk ga ik er allerlei anti-spam maatregelen inbouwen, maar laat ik nu eerst eens proberen de MEEST SIMPELE vorm uberhaupt aan de praat te krijgen:

    Namelijk: deze!

    Dit is de foutmelding:
    http://www.buitendedoos.nl/Contact/feedback.php

    Ondanks de FAQ op de website kan ik er NIET achter komen wat er fout is. Ik kan deze taal niet lezen. Van www.w3schools.com heb ik de PHP instructies doorgelezen, maar nog kom ik er niet uit, ik zal wel dom zijn:

    HTML:
    1
    2
    3
    4
    5
    6
    <form method=post action="feedback.php">
       Your Name:    <input type=text name="Name" size=25><br>
       Your E-Mail:  <input type=text name="EMail" size=30><br>
       Your Comment: <textarea name="Comment" rows=4 cols=30></textarea><br>
       <input type=submit value="Submit Feedback">
       </form>


    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
    <?php
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <
    html xmlns="http://www.w3.org/1999/xhtml">
    <
    head>
    <
    meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <
    title>Untitled Document</title>
    </
    head>
    <
    body>

    // Configuration Settings
    $SendFrom =    "Form Feedback <.....@....nl>";
    $SendTo =      ".....@....nl";
    $SubjectLine "Feedback Submission";
    $ThanksURL =   "Uwberichtisverzonden.html";  //confirmation page

    // Build Message Body from Web Form Input
    foreach ($_POST as $Field=>$Value)
       
    $MsgBody .= "$Field: $Value\n";
    $MsgBody .= "\n" . @gethostbyaddr($_SERVER["REMOTE_ADDR"]) . "\n" .
       
    $_SERVER["HTTP_USER_AGENT"];
    $MsgBody htmlspecialchars($MsgBodyENT_NOQUOTES);  //make safe

    // Send E-Mail and Direct Browser to Confirmation Page
    mail($SendTo$SubjectLine$MsgBody"From: $SendFrom");
    header("Location: $ThanksURL");

    </
    body>
    </
    html>
    ?>


    Edit: de PHP opening tag en PHP afsluit TAG (<?php en ?>) staan hierboven helemaal onder en bovenaan de pagina, dat komt waarschijnlijk omdat ik dat in een PHP tag heb gezet hier op t forum. In het document zelf staat het gewoon netjes net achter en net voor de body.

    [ Bericht 16% gewijzigd door JJasperO op 20-05-2008 22:01:33 ]
    Farenjidinsdag 20 mei 2008 @ 20:41
    Het probleem is dat je een header (zoals die Location header) alleen kan versturen als het eigenlijke document (de html) nog niet verzonden is - http headers moeten altijd aan het begin komen. Oplossing is simpel : zet alle php code naar boven, maar zorg wel dat er <?php ?> tags omheen staan.
    Maar als ik je code zie is de html die eromheen staat volledig overbodig want die wordt toch nooit getoond - er wordt geredirect naar de url in $thanksURL dus alle html kun je weglaten.
    Zorg er verder voor dat er geen spaties of enters voor de <?php tag staan.

    Dus zo:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <?php
    // Configuration Settings
    $SendFrom =    "Form Feedback";
    $SendTo =      "email@domein";
    $SubjectLine = "Feedback Submission";
    $ThanksURL =   "Uwberichtisverzonden.html";  //confirmation page

    // Build Message Body from Web Form Input
    foreach ($_POST as $Field=>$Value)
       $MsgBody .= "$Field: $Value\n";
    $MsgBody .= "\n" . @gethostbyaddr($_SERVER["REMOTE_ADDR"]) . "\n" .
       $_SERVER["HTTP_USER_AGENT"];
    $MsgBody = htmlspecialchars($MsgBody, ENT_NOQUOTES);  //make safe

    // Send E-Mail and Direct Browser to Confirmation Page
    mail($SendTo, $SubjectLine, $MsgBody, "From: $SendFrom");
    header("Location: $ThanksURL");

    ?>


    [ Bericht 0% gewijzigd door Farenji op 21-05-2008 20:27:43 ]
    JJasperOdinsdag 20 mei 2008 @ 22:04
    Hoewel ik de onderbouwing niet helemaal begrijp, werkt het wel , Farenji. Ik krijg nu geen error en ik word doorgestuurd naar de bevestigingspagina (mooi is ie he! ). Btw, zou je even mijn e-mailadres uit je quote willen halen, ik probeer dat adres een beetje schoon te houden (mijn fout) .

    Maar... ik krijg geen mail. Uit de FAQ van de auteur van dit script:

    Q: The "Thank Your" page shows up correctly, but I don't get any e-mail?
    A: If the PERFECT script properly redirects you to the confirmation web page but fails to send an e-mail, try replacing the the line:
    mail($SendTo, $SubjectLine, $MsgBody, "From: $SendFrom");
    with:
    mail($SendTo, $SubjectLine, $MsgBody);
    If that doesn't work, your server is probably configured to block the "mail()" function (see: The PHP Group, SMTP, and WeberDev). Ask your web hosting company if they allow PHP mail.

    Dat heb ik dus geprobeerd, echter geen succes. Ik kan me haast niet voorstellen dat m'n webhoster php mail niet toelaat. Het gaat om Deziweb, dat o.a. php 5 ondersteunt.

    Zit er nog iets niet goed?

    [ Bericht 4% gewijzigd door JJasperO op 20-05-2008 22:13:23 ]
    Farenjidinsdag 20 mei 2008 @ 22:56
    Ik heb je emailadres weggehaald. Voor de rest zou dit script gewoon moeten werken hoor. Als je nog geen mail ontvangt zou ik even checken of alle instellingen voor je hostingaccount (zoals emailadres) wel goed ingesteld staan, en anders even contact met je hoster opnemen.
    daReaperwoensdag 21 mei 2008 @ 09:39
    Hoi

    Ik moet een array sorteren

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    function booklist($template, $bookids) {
      $books = array();
      foreach($bookids as $bid) {
        $res = mysql_query("SELECT Title, Subtitle FROM Book WHERE BookID = $bid");
        list($title, $subtitle) = mysql_fetch_array($res);

        $res2 = mysql_query("SELECT PersonID FROM AuthorBookLink WHERE BookID=$bid");
        $authors = array();
        while(list($pid) = mysql_fetch_array($res2)) {
          $res3 = mysql_query("SELECT Name FROM Person WHERE PersonID=$pid");
          list($name) = mysql_fetch_array($res3);
          array_push($authors, array("AUTHOR"=>$name));
        }
        array_push($books, array("ID"=>$bid,"TITLE"=>$title,"SUBTITLE"=>$subtitle,"AUTHORS"=>$authors));
      }
      
    //  $books = sort($books);

      $template->AddParam("CATLIST", $books);  
    }


    Ik heb eigenlijk geen idee hoe dit werkt, maar hij moet gesorteerd worden op "TITLE" en dan op "SUBTITLE"... Wie helpt mij

    [ Bericht 4% gewijzigd door daReaper op 21-05-2008 09:55:00 ]
    HuHuwoensdag 21 mei 2008 @ 18:38
    Zoiets:

    1
    2
    3
    <?php
    $res 
    mysql_query("SELECT Title, Subtitle FROM Book WHERE BookID = $bid ORDER BY Title ASC, Subtitle ASC");
    ?>
    JJasperOwoensdag 21 mei 2008 @ 18:52
    quote:
    Op dinsdag 20 mei 2008 22:56 schreef Farenji het volgende:
    Ik heb je emailadres weggehaald. Voor de rest zou dit script gewoon moeten werken hoor. Als je nog geen mail ontvangt zou ik even checken of alle instellingen voor je hostingaccount (zoals emailadres) wel goed ingesteld staan, en anders even contact met je hoster opnemen.
    Inmiddels is het probleem gevonden. Het bleek dat de hoster alleen mail door laat als dit naar een e-mailadres wordt gestuurd met dezelfde domeinnaam als de website waar het vandaan komt.
    SuperRembowoensdag 21 mei 2008 @ 20:01
    Databases zijn goed in het sorteren van gegevens, maak daar gebruik van. Van die 3 losse query's zou ik 1 query maken waar alle gegevens meteen in de goede volgorde uit komen rollen:

    1
    2
    3
    4
    5
    6
    SELECT b.Title, b.Subtitle, p.Name
    FROM Book b 
    LEFT OUTER JOIN AuthorBookLink a ON a.BookID = b.BookID
    LEFT OUTER JOIN Person p ON p.PersonID = a.PersonID
    WHERE b.BookID IN (1, 2, 3, 4, 5)
    ORDER BY b.Title, b.Subtitle, b.BookID, p.Name, p.PersonID


    Je mag zelf uitzoeken hoe je hiermee je $books array vult :P
    SuperRembowoensdag 21 mei 2008 @ 20:03
    quote:
    Op woensdag 21 mei 2008 18:38 schreef HuHu het volgende:
    Zoiets:
    [ code verwijderd ]
    Er valt niet veel te sorteren al je maximaal 1 resultaat krijgt
    HuHuwoensdag 21 mei 2008 @ 20:38
    quote:
    Op woensdag 21 mei 2008 20:03 schreef SuperRembo het volgende:

    [..]

    Er valt niet veel te sorteren al je maximaal 1 resultaat krijgt
    Whehe... lekker lomp van me ook .
    Lightwoensdag 21 mei 2008 @ 21:17
    quote:
    Op woensdag 21 mei 2008 20:03 schreef SuperRembo het volgende:

    [..]

    Er valt niet veel te sorteren al je maximaal 1 resultaat krijgt
    MySQL kan het sorteren dan wel goed optimaliseren
    daReaperdonderdag 22 mei 2008 @ 09:49
    quote:
    Op woensdag 21 mei 2008 20:01 schreef SuperRembo het volgende:
    Databases zijn goed in het sorteren van gegevens, maak daar gebruik van. Van die 3 losse query's zou ik 1 query maken waar alle gegevens meteen in de goede volgorde uit komen rollen:
    [ code verwijderd ]

    Je mag zelf uitzoeken hoe je hiermee je $books array vult :P
    Ik heb er dit van gemaakt:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    function booklist($template, $bookids) {
      $books = array();
      
      $res = mysql_query("SELECT BookID, Title, Subtitle FROM Book WHERE BookID IN (".join(", ", $bookids).") ORDER BY Title, Subtitle, BookID");
      
      while(list($bid, $title, $subtitle) = mysql_fetch_array($res)) {
        $res2 = mysql_query("SELECT PersonID FROM AuthorBookLink WHERE BookID=$bid");
        $authors = array();
        while(list($pid) = mysql_fetch_array($res2)) {
          $res3 = mysql_query("SELECT Name FROM Person WHERE PersonID=$pid");
          list($name) = mysql_fetch_array($res3);
          array_push($authors, array("ID"=>$pid,"AUTHOR"=>$name));
        }
        array_push($books, array("ID"=>$bid,"TITLE"=>$title,"SUBTITLE"=>$subtitle,"AUTHORS"=>$authors));
      }

      $template->AddParam("CATLIST", $books);    
    }


    Die query dat ie meteen de schrijver er bij pakt kan niet, omdat bij sommige boeken meerdere schrijvers horen. De mysql-functie "in()" kende ik echter niet, maar is zeker een grote hulp bij dezen :) Dus bedankt, het is gelukt!
    Lightdonderdag 22 mei 2008 @ 10:04
    Het is alleen niet erg vriendelijk voor de database om nog eens twee queries per boek te doen (minimaal). Iets aangepaste versie:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <?php
    function booklist($template$bookids) {
      
    $books = array();
      
      
    $res mysql_query("SELECT b.BookID, b.Title, b.Subtitle, p.PersonID, p.Name FROM Book b,
        AuthorBookLink ab,
        Person p
        WHERE b.BookID IN ("
    .join(", "$bookids).")
        AND b.BookID = ab.BookID
        AND ab.PersonID = p.PersonID
        ORDER BY b.Title, b.Subtitle, b.BookID"
    );

      
    $i 0;
      
    $books = array();
      while(list(
    $bid$title$subtitle$pid$name) = mysql_fetch_array($res)) {
        
    $books[$bid]['title'] = $title;
        
    $books[$bid]['subtitle'] = $subtitle;
        
    $books[$bid]['authors'][$pid] = $name;
      }
      
    $template->AddParam("CATLIST"$books);    
    }
    ?>

    Maar dit gaat niet helemaal werken in je template.
    Likkende_Lassiemaandag 26 mei 2008 @ 00:38
    Kan dit vertagend werken?

    1
    2
    3
    4
    <?php
    //maak van bijvoorbeeld [32]paginanaam[/32] een link die paginanaam heet en linkt naar pageid nr 32
       
    $content preg_replace("#\[([0-9]<img class="rde_img_smiley" src="http://i.fok.nl/s/shiny.gif" width="15" height="15" alt="" />\]([a-z]<img class="rde_img_smiley" src="http://i.fok.nl/s/shiny.gif" width="15" height="15" alt="" />\[/(\\1)\]#e", "'<a href=\"'.page_link($1).'\" target=\"_blank\">'.$2.'</a>'", $content);
    ?>


    zojuist in elkaar geprutst....

    net getest, werkt prima!

    [ Bericht 21% gewijzigd door Likkende_Lassie op 26-05-2008 00:46:28 ]
    qu63maandag 26 mei 2008 @ 00:52
    quote:
    Op maandag 26 mei 2008 00:38 schreef Likkende_Lassie het volgende:
    Kan dit vertagend werken?
    [ code verwijderd ]

    zojuist in elkaar geprutst....

    net getest, werkt prima!
    je beschrijving klopt niet echt iig
    wieweetwatmaandag 26 mei 2008 @ 01:15
    Kan iemand mij vertellen hoe ik onderstaande kan maken??

    qu63maandag 26 mei 2008 @ 01:19
    quote:
    Op maandag 26 mei 2008 01:15 schreef wieweetwat het volgende:
    Kan iemand mij vertellen hoe ik onderstaande kan maken??

    [ afbeelding ]
    Ja
    wieweetwatmaandag 26 mei 2008 @ 01:24
    quote:
    Op maandag 26 mei 2008 01:19 schreef qu63 het volgende:

    [..]

    Ja
    Met uileg natuurlijk

    Waar kan ik het script downloaden?? Google leverde mij hierop geen resultaten.
    qu63maandag 26 mei 2008 @ 01:27
    quote:
    Op maandag 26 mei 2008 01:24 schreef wieweetwat het volgende:

    [..]

    Met uileg natuurlijk
    Sorry
    quote:
    Waar kan ik het script downloaden?? Google leverde mij hierop geen resultaten.
    Er is niet een 'het script'. Als je het precies zo wil als in je voorbeeld moet je het aan The_terminator vragen, anders moet je zelf zoeken naar GD-scripts die ook animated gifs kunnen maken
    qu63maandag 26 mei 2008 @ 01:28
    Oh, en als google geen resultaat geeft, vraag ik me toch af wat je als zoekopdracht invult
    qu63maandag 26 mei 2008 @ 01:31
    Google
    wieweetwatmaandag 26 mei 2008 @ 01:32
    quote:
    Op maandag 26 mei 2008 01:28 schreef qu63 het volgende:
    Oh, en als google geen resultaat geeft, vraag ik me toch af wat je als zoekopdracht invult
    Titel http://www.google.nl/search?hl=nl&rls=GGLJ%2CGGLJ%3A2006-34%2CGGLJ%3Aen&q=%22terminator%27s+icoon+text+scriptje%22&meta=

    Daar staat de bron niet
    wieweetwatmaandag 26 mei 2008 @ 01:35
    quote:
    Op maandag 26 mei 2008 01:31 schreef qu63 het volgende:
    Google
    Ik zou graag de bewegende tekst willen


    ik vraag the_terminator, weet iemand zijn email?
    qu63maandag 26 mei 2008 @ 01:38
    quote:
    Op maandag 26 mei 2008 01:35 schreef wieweetwat het volgende:

    [..]

    Ik zou graag de bewegende tekst willen


    ik vraag the_terminator, weet iemand zijn email?
    Dat is dus het stukje animated



    qu63maandag 26 mei 2008 @ 01:39
    quote:
    Als je het precies zo wil hebben moet je The_Terminator hebben.
    qu63maandag 26 mei 2008 @ 01:40
    quote:
    Op maandag 26 mei 2008 01:35 schreef wieweetwat het volgende:

    ik vraag the_terminator, weet iemand zijn email?
    Probeer zn profiel eens
    wieweetwatmaandag 26 mei 2008 @ 01:57
    quote:
    Op maandag 26 mei 2008 01:40 schreef qu63 het volgende:

    [..]

    Probeer zn profiel eens
    Hij mailde terug dat hij die code niet deelt Hij noemde nog imagemagick... en daar weet ik niets van :S
    qu63maandag 26 mei 2008 @ 02:02
    quote:
    Op maandag 26 mei 2008 01:57 schreef wieweetwat het volgende:

    [..]

    Hij mailde terug dat hij die code niet deelt Hij noemde nog imagemagick... en daar weet ik niets van :S
    zoek
    The_Terminatormaandag 26 mei 2008 @ 02:33
    quote:
    Op maandag 26 mei 2008 02:02 schreef qu63 het volgende:

    [..]

    zoek
    Mwoh, zo simpel is het nog niet hoor. Mijn script gebruikt Imagemagick alleen om de animated gif weg te schrijven, de tekst word in een achergrondplaatje afgedrukt dmv imagefttext, en dan gewoon x een paar pixels per frame laten opschuiven. Mijn icoon heeft ook een dynamische grootte, meer tekst betekend meer frames en dus een groter bestand. Ik pak hiervoor gewoon de lengte van 1 teken, laten we zeggen dat dat 10 pixels is. Ook zit er een beetje ruimte tussen de tekens, ongeveer 2 pixels. Als ik elke frame de tekst 12 pixels opschuif weet ik precies hoeveel ik nodig heb aan de hand van de lengte van de tekst.

    Overigens vragen wel meer mensen mij om die code, hetzij per PM, hetzij per mail. Echter geef ik die code niet zomaar weg, heb er lang over gedaan om het zo te krijgen en daarmee iets unieks creëren.
    Likkende_Lassiemaandag 26 mei 2008 @ 07:42
    quote:
    Op maandag 26 mei 2008 00:52 schreef qu63 het volgende:

    [..]

    je beschrijving klopt niet echt iig
    Toch wel!
    De functie page_link maakt van het id vervolgens weer de echte url...
    donroycomaandag 26 mei 2008 @ 12:55
    Beste MySQL-fanaten..
    ik wil het volgende uit een database halen:
    quote:
    Geef het mailadres weer van alle gebruikers die in de maand juni zijn geboren en die een HTML-based Direct Mail hebben
    Dit heb ik al geprobeerd:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT `EMAILADRES`

    FROM persoon

    WHERE `HTML` = '1'

    AND
    (
    MONTH( 06( ) ) - 
    MONTH( `GEBOORTEDATUM` ) ) - 

    Hij geeft alleen een error aan bij regel 10, en ik weet niet hoe het te verhelpen.. |:( thanks in advance ^O^
    JortKmaandag 26 mei 2008 @ 12:59
    quote:
    Op maandag 26 mei 2008 12:55 schreef donroyco het volgende:
    Beste MySQL-fanaten..
    ik wil het volgende uit een database halen:
    [..]

    Dit heb ik al geprobeerd:
    [ code verwijderd ]

    Hij geeft alleen een error aan bij regel 10, en ik weet niet hoe het te verhelpen.. thanks in advance
    Wat voor error?
    donroycomaandag 26 mei 2008 @ 13:01
    quote:
    Op maandag 26 mei 2008 12:59 schreef JortK het volgende:

    [..]

    Wat voor error?
    quote:
    MySQL retourneerde: Documentatie
    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'MONTH( `GEBOORTEDATUM` ) )

    LIMIT 0, 30' at line 10
    SuperRembomaandag 26 mei 2008 @ 17:46
    quote:
    Op maandag 26 mei 2008 12:55 schreef donroyco het volgende:
    Beste MySQL-fanaten..
    ik wil het volgende uit een database halen:
    [..]

    Dit heb ik al geprobeerd:
    [ code verwijderd ]

    Hij geeft alleen een error aan bij regel 10, en ik weet niet hoe het te verhelpen.. thanks in advance
    Wat wil je bereiken met "MONTH( 06( ) )"?
    Staat er na de regel met `GEBOORTEDATUM` nog meer, het sql statement lijkt in ieder geval niet compleet.

    Verder pak je er natuurlijk even de documentatie van MySQL bij.
    Chandlermaandag 26 mei 2008 @ 17:59
    quote:
    Op maandag 26 mei 2008 01:38 schreef qu63 het volgende:

    [..]

    Dat is dus het stukje animated

    [ afbeelding ]

    Best leuk hé, ooit had een user (volgens mij SuperRembo) daar ook een stukje script voor geschreven!
    donroycomaandag 26 mei 2008 @ 19:18
    quote:
    Op maandag 26 mei 2008 17:46 schreef SuperRembo het volgende:

    [..]

    Wat wil je bereiken met "MONTH( 06( ) )"?
    Staat er na de regel met `GEBOORTEDATUM` nog meer, het sql statement lijkt in ieder geval niet compleet.

    Verder pak je er natuurlijk even de documentatie van MySQL bij.
    Nou, dat was meer als proberen Dit is de eerste keer dat ik met MySQL werk, het is voor school
    Het lukt me maar niet om een goede query voor de maand te schrijven De gegevens die ik eruit wil halen zijn dus als volgt:
    quote:
    Geef het mailadres weer van alle gebruikers die in de maand juni zijn geboren en die een HTML-based Direct Mail hebben
    Mailadres => `EMAILADRES`
    gebruiker => persoon
    HTML-based Direct Mail => `HTML` = '1'
    Maand
    ik heb alleen een geboortedatum => `GEBOORTEDATUM` => yyyy/mm/dd
    HuHumaandag 26 mei 2008 @ 19:32
    quote:
    Op maandag 26 mei 2008 19:18 schreef donroyco het volgende:

    [..]

    Nou, dat was meer als proberen :@ Dit is de eerste keer dat ik met MySQL werk, het is voor school :+
    Het lukt me maar niet om een goede query voor de maand te schrijven :( De gegevens die ik eruit wil halen zijn dus als volgt:
    [..]

    Mailadres => `EMAILADRES`
    gebruiker => persoon
    HTML-based Direct Mail => `HTML` = '1'
    Maand :?
    ik heb alleen een geboortedatum => `GEBOORTEDATUM` => yyyy/mm/dd
    Zoals je in de documentatie kunt zien geeft de functie MONTH een getal terug, in het geval van juni dus 6. Je query zou dan zoiets kunnen zijn:

    1
    2
    3
    4
    SELECT EMAILADRES
    FROM persoon
    WHERE HTML = 1
    AND MONTH(GEBOORTEDATUM) = 6
    donroycomaandag 26 mei 2008 @ 19:37
    quote:
    Op maandag 26 mei 2008 19:32 schreef HuHu het volgende:

    [..]

    Zoals je in de documentatie kunt zien geeft de functie MONTH een getal terug, in het geval van juni dus 6. Je query zou dan zoiets kunnen zijn:
    [ code verwijderd ]


    Thanks HuHu, het werkte (moeten er per se die ` ` - tekens omheen staan?) (dan weet ik dat voor de volgende keer )
    SuperRembomaandag 26 mei 2008 @ 19:45
    quote:
    Op maandag 26 mei 2008 17:59 schreef Chandler het volgende:

    [..]

    Best leuk hé, ooit had een user (volgens mij SuperRembo) daar ook een stukje script voor geschreven!
    http://superrembo.com/misc/phpgifimage/

    Maar dat is dus alleen nuttig als de webserver waar 't script op draait GD versie 2.0.28 gebruikt. Een versie lager en dit script werkt niet. Een versie hoger en het kan veel makkelijker met de ingebouwde duncties van GD.
    Xcaliburmaandag 26 mei 2008 @ 19:56
    Ik heb een probleempje met een regular expression. Ik weet wat ik wil, ik weet wat er fout gaat, ik weet alleen niet hoe ik het op moet lossen

    Ik wil iedere string matchen die NIET met http begint.
    Dus http://www.fok.nl is fout, /active is goed.

    Ik heb nu de volgende regex:
    1^([^http].+)$


    Deze matcht de volledige string, tenzij deze met OF een h, OF een t, OF een p begint.
    Bijna goed dus, ik moet dus alleen op de combinatie "http" matchen. Maar hoe?

    Edit: ik heb het idee dat het grootste probleem in het gebruik van de [ ] zit, maar ik weet niet hoe ik die kan voorkomen?

    [ Bericht 16% gewijzigd door Xcalibur op 26-05-2008 20:09:37 ]
    SuperRembomaandag 26 mei 2008 @ 20:32
    Dan moet je een "negative assertion" gebruiken
    1#^(?!http).*#


    Zie uiteraard de manual voor details :)
    Xcaliburmaandag 26 mei 2008 @ 21:19
    Yes, dat werkt

    Dit soort vage principes begrijp ik nog niet zo goed... dingen matchen die er wel zijn lukt wel, dingen matchen die er niet zijn is net wat lastiger
    Drommelsch85dinsdag 27 mei 2008 @ 00:05
    Ik ben voor school bezig met een projectje, de bedoeling is dat we in MySQL een relationele database opzetten. Het servergedeelte is niet echt een probleem. Ik heb MySQL, PHP en PHPmyAdmin draaien op mijn thuisservertje en die kan ik remote benaderen. De database zelf opzetten is wat moeilijker, het gaat een database worden waarin ik gegevens van Smartphones bij ga houden.



    Mijn vraag is, wat zou er beter kunnen aan mijn model? De bedoeling is dat alle toestel specificaties makkelijk met een querie kunnen worden opgevraagd en gesorteerd kunnen worden op o.a merk, formfactor en features.



    Ik heb hiertoe 8 tabellen gemaakt, waarvan er 7 zijn die waarden bevatten die iedere keer als er een ‘toestel’ wordt aangemaakt gebruikt kunnen worden. Vandaar ook mijn relationele database.



    Toestel: Bevat de FK (Foreign Keys) van alle anderen en enkele unieke waarden zoals afmeting en type;
    Merk: Waarden als Nokia, HTC, Samsung, etc;
    Formfactor: Clamshell, Candybar, Slider, etc;
    Camera: Bevat meerdere gegevens zoals aanwezigheid, hoeveelheid MP, AF, flits. De PK voor de tabel is CAM_ID die is gekoppeld aan tabel Toestel;
    Connectivity: idem aan 4, maar dan voor gegevens als GPS, Bluetoothversie, WLAN, etc;
    Geheugen intern: Vaste waarden van 16 MB – 16 GB;
    Geheugen extern: geheugenkaartsoort, MicroSD, MiniSD, MS Duo, MMC;
    OS: Vaste waarden van Windows Mobile 2003 tot Symbian S60 v3 FP2.


    Bij het invoeren van een ‘nieuw’ toestel in de database wordt bij de overige tabellen gebruikgemaakt van een dropdownmenu. Als het goed is zou ik dan een INSERT INTO moeten gebruiken met een JOIN tussen TOESTEL en CONNECIVITY en TOESTEL en CAMERA.


    Wie helpt?
    Likkende_Lassiedinsdag 27 mei 2008 @ 08:01
    quote:
    Op maandag 26 mei 2008 00:52 schreef qu63 het volgende:

    [..]

    je beschrijving klopt niet echt iig
    Toch wel!
    De functie page_link maakt van het id vervolgens weer de echte url...


    ---
    wat zou er volgens jou niet werken ?


    1
    2
    3
    4
    <?php
    //maak van bijvoorbeeld [32]paginanaam[/32] een link die paginanaam heet en linkt naar pageid nr 32
       
    $content preg_replace("#\[([0-9]<img class="rde_img_smiley" src="http://i.fok.nl/s/shiny.gif" width="15" height="15" alt="" />\]([a-z]<img class="rde_img_smiley" src="http://i.fok.nl/s/shiny.gif" width="15" height="15" alt="" />\[/(\\1)\]#e", "'<a href=\"'.page_link($1).'\" target=\"_blank\">'.$2.'</a>'", $content);
    ?>
    Xcaliburdinsdag 27 mei 2008 @ 08:26
    quote:
    Op dinsdag 27 mei 2008 00:05 schreef Drommelsch85 het volgende:
    Mijn vraag is, wat zou er beter kunnen aan mijn model? De bedoeling is dat alle toestel specificaties makkelijk met een querie kunnen worden opgevraagd en gesorteerd kunnen worden op o.a merk, formfactor en features.
    Op zich gaat dit wel goed denk ik, alleen met je connectivity heb je nu een probleem. Je kunt maar 1 connectivity opslaan, terwijl de meeste telefoons over een combinatie van mogelijkheden beschikken. Je zult daar dus een koppeltabelletje tussen moeten zetten

    Daarnaast vraag ik me af waarom je veld Btversie zo heet, en niet gewoon Bluetooth? In dit veld kun je nu verschillende waardes krijgen, terwijl je overige (GPS, WLAN, Infrarood) ja/nee velden zijn. Dat kan snel verwarrend worden.
    qu63dinsdag 27 mei 2008 @ 09:55
    quote:
    Op dinsdag 27 mei 2008 08:01 schreef Likkende_Lassie het volgende:

    [..]

    Toch wel!
    De functie page_link maakt van het id vervolgens weer de echte url...


    ---
    wat zou er volgens jou niet werken ?
    [ code verwijderd ]
    ik snapte je code niet, omdat de beschrijving het had over url's, en in je code stonden links naar smileys

    Maar dat is een bug
    PiRANiAdinsdag 27 mei 2008 @ 10:01
    Deze was ik kwijt..
    urseldinsdag 27 mei 2008 @ 12:27
    Met phpinfo() kan je de settings van je PHP omgeving bekijken en zien welke waardes van php.ini actief zijn.
    Ik vroeg me af of er iets vergelijkbaars bestaat om te kijken welke waardes van my.ini nu daadwerkelijk actief zijn??
    Spike1506dinsdag 27 mei 2008 @ 12:40
    Wat ik me afvraag, hoeveel mensen hier gebruiken nog de PHP shortags?
    1
    2
    3
    <?
    //blaat
    ?>


    Had gelezen dat deze optie namenlijk in PHP 6 niet meer beschikbaar is en je dus gewoon
    1
    2
    3
    <?php
    //blaat
    ?>

    moet gebruiken.
    urseldinsdag 27 mei 2008 @ 12:42
    quote:
    Op dinsdag 27 mei 2008 12:40 schreef Spike1506 het volgende:
    Wat ik me afvraag, hoeveel mensen hier gebruiken nog de PHP shortags?
    [ code verwijderd ]

    Had gelezen dat deze optie namenlijk in PHP 6 niet meer beschikbaar is en je dus gewoon
    [ code verwijderd ]

    moet gebruiken.
    Wij gebruiken het hier deels. Meer eigenlijk om tussendoor php tags te openen en sluiten.
    Maar van de zomer gaat het gehele systeem op de schop en pogen meer richting PHP6 om te bouwen..
    Dzydinsdag 27 mei 2008 @ 12:48
    quote:
    Op dinsdag 27 mei 2008 12:27 schreef ursel het volgende:
    Met phpinfo() kan je de settings van je PHP omgeving bekijken en zien welke waardes van php.ini actief zijn.
    Ik vroeg me af of er iets vergelijkbaars bestaat om te kijken welke waardes van my.ini nu daadwerkelijk actief zijn??
    http://nl.php.net/manual/en/function.ini-get.php

    of voor alle functies in 1x

    http://nl.php.net/manual/en/function.ini-get-all.php
    WyriHaximusdinsdag 27 mei 2008 @ 13:00
    quote:
    Volgens mij bedoelt hij de MySQL ini . (En nee ik weet het niet zo snel uit me hoofd.)
    urseldinsdag 27 mei 2008 @ 13:17
    quote:
    Op dinsdag 27 mei 2008 13:00 schreef WyriHaximus het volgende:

    [..]

    Volgens mij bedoelt hij de MySQL ini . (En nee ik weet het niet zo snel uit me hoofd.)
    Dat dus..
    Ik weet dat als je een ini wijzigt, je de webservice voor apache moet herstarten.
    Hier werken we met IIS en volgens mij worden ze dan automatisch over genomen. Maar om dit te controleren wou ik het dus graag via een soortgelijke "pagina" controleren.
    WyriHaximusdinsdag 27 mei 2008 @ 13:22
    quote:
    Op dinsdag 27 mei 2008 13:17 schreef ursel het volgende:

    [..]

    Dat dus..
    Ik weet dat als je een ini wijzigt, je de webservice voor apache moet herstarten.
    Hier werken we met IIS en volgens mij worden ze dan automatisch over genomen. Maar om dit te controleren wou ik het dus graag via een soortgelijke "pagina" controleren.
    Je kunt deze queries proberen:
    1
    2
    SHOW SESSION VARIABLES;
    SHOW GLOBAL VARIABLES;
    urseldinsdag 27 mei 2008 @ 13:55
    quote:
    Op dinsdag 27 mei 2008 13:22 schreef WyriHaximus het volgende:

    [..]

    Je kunt deze queries proberen:
    [ code verwijderd ]
    Bedankt.. weer wat geleerd..
    Zal dus moeten restarten. Wordt dus weer een latertje vandaag..
    Lightdinsdag 27 mei 2008 @ 15:46
    quote:
    Op dinsdag 27 mei 2008 13:55 schreef ursel het volgende:

    [..]

    Bedankt.. weer wat geleerd..
    Zal dus moeten restarten. Wordt dus weer een latertje vandaag..
    Gewoon in de lunchpauze restarten
    Hoewel die natuurlijk al geweest is vandaag.
    urseldinsdag 27 mei 2008 @ 18:12
    quote:
    Op dinsdag 27 mei 2008 15:46 schreef Light het volgende:

    [..]

    Gewoon in de lunchpauze restarten
    Hoewel die natuurlijk al geweest is vandaag.
    Alsof het systeem niet gebruikt wordt op dat moment??
    SuperRembodinsdag 27 mei 2008 @ 18:28
    quote:
    Op dinsdag 27 mei 2008 13:55 schreef ursel het volgende:

    [..]

    Bedankt.. weer wat geleerd..
    Zal dus moeten restarten. Wordt dus weer een latertje vandaag..
    Hoe laat is laat? Updaten doen we hier pas na 22:00. Wat betekend dat je niet voor 0:00 klaar bent.
    urseldinsdag 27 mei 2008 @ 18:39
    quote:
    Op dinsdag 27 mei 2008 18:28 schreef SuperRembo het volgende:

    [..]

    Hoe laat is laat? Updaten doen we hier pas na 22:00. Wat betekend dat je niet voor 0:00 klaar bent.
    Het is niet updaten ofzo.. Settings wijzigen en alleen de service opnieuw opstarten.
    Voor ons is dat om 18:00
    Drommelsch85dinsdag 27 mei 2008 @ 20:46
    quote:
    Op dinsdag 27 mei 2008 08:26 schreef Xcalibur het volgende:

    [..]

    Op zich gaat dit wel goed denk ik, alleen met je connectivity heb je nu een probleem. Je kunt maar 1 connectivity opslaan, terwijl de meeste telefoons over een combinatie van mogelijkheden beschikken. Je zult daar dus een koppeltabelletje tussen moeten zetten

    Hoe bedoel je? Wordt het gewoon niet zoiets als dit

    CONN ID 1: BTversie 2, WLAN 1, Infrarood 0, GPS 0
    CONN ID2: BTversie1, WLAN 0, Infrarood 1, GPS 0
    CONN ID3: BTversie2, WLAN1, Infrarood 1, GPS 1


    Etc..
    Lightdinsdag 27 mei 2008 @ 21:08
    quote:
    Op dinsdag 27 mei 2008 18:12 schreef ursel het volgende:

    [..]

    Alsof het systeem niet gebruikt wordt op dat moment??
    Neuh, dan zit iedereen toch in de kantine met z'n bammetjes
    urselwoensdag 28 mei 2008 @ 10:30
    Als ik een query verstuur met daarin een apastrophe of iets dergelijks, dan maakt MySQL er zelf HTML entities van. Volgens mij is heeft dat met een instelling van MySQL te maken. Iemand enig idee welke dit soort tekens wel gewoon als apastrohe opslaat en niet als HTML-entitie??
    cygnusxwoensdag 28 mei 2008 @ 16:41
    Ik wil graag alle errors (graag ook de fatal errors, maar ook warnings) kunnen loggen in een file. En als het kan nog wat speling erin houden zodat ik in de toekomst er ook andere zaakjes ermee kan doen. Weet iemand een goede manier om dit op te vangen en er wat mee te kunnen doen?
    Dzywoensdag 28 mei 2008 @ 16:52
    Zonder die speling is het echt super easy, je kunt in je php.ini instellen of hij de errors (en welke) naar het scherm moet toveren, naar een log moet wegschrijven of allebei. Uiteraard wel alleen als je host het toe staat of het lokaal is. Voor andere dingen (je speling) kun je wel mooie log classes vinden gok ik zo
    cygnusxwoensdag 28 mei 2008 @ 17:48
    Ik heb wat aanpassingen gemaakt in de php.ini.
    Helaas kwam ik er achter dat mijn xampp installatie onder windows gewoon meerdere php.ini's had. Daarbij op kwam ik er achter dat hij volgensmij geen een van die allen gebruikt.
    Dit heb ik ongeveer aangepast... lijkt mij genoeg toch?
    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
    error_reporting  =  E_ALL & ~E_NOTICE

    ; Print out errors (as a part of the output).  For production web sites,
    ; you're strongly encouraged to turn this feature off, and use error logging
    ; instead (see below).  Keeping display_errors enabled on a production web site
    ; may reveal security information to end users, such as file paths on your Web
    ; server, your database schema or other information.
    display_errors = On

    ; Even when display_errors is on, errors that occur during PHP's startup
    ; sequence are not displayed.  It's strongly recommended to keep
    ; display_startup_errors off, except for when debugging.
    display_startup_errors = Off

    ; Log errors into a log file (server-specific log, stderr, or error_log (below))
    ; As stated above, you're strongly advised to use error logging in place of
    ; error displaying on production web sites.
    log_errors = On

    ; Set maximum length of log_errors. In error_log information about the source is
    ; added. The default is 1024 and 0 allows to not apply any maximum length at all.
    log_errors_max_len = 1024

    ; Do not log repeated messages. Repeated errors must occur in same file on same
    ; line until ignore_repeated_source is set true.
    ignore_repeated_errors = Off

    ; Ignore source of message when ignoring repeated messages. When this setting
    ; is On you will not log errors with repeated messages from different files or
    ; sourcelines.
    ignore_repeated_source = Off

    ; If this parameter is set to Off, then memory leaks will not be shown (on
    ; stdout or in the log). This has only effect in a debug compile, and if
    ; error reporting includes E_WARNING in the allowed list
    report_memleaks = On

    ; Log errors to specified file.
    error_log = "C:\xx\xampp\apache\logs\phperror.log"

    De file bestaat wel, is 1 byte groot en er gebeurt niks in die file.

    De plekken waar ik een php.ini heb gevonden:
    c:\xx\xampp\php\php.ini-dist
    c:\xx\xampp\php\php.ini-recommended
    c:\xx\xampp\php\php4\php.ini-dist
    c:\xx\xampp\php\php4\php.ini-recommended

    c:\xx\xampp\php\php.ini
    c:\xx\xampp\php\php4\php.ini
    c:\xx\xampp\php\apache\bin\php.ini

    Welke van de 3 eigenlijk dus.
    Dzywoensdag 28 mei 2008 @ 18:29
    Die in je windows folder

    Daar heb ik ook wel eens mee lopen klooien maar hij zet er ook een in je windows folder of een subdir daarvan, erg irritant. Die moet je hebben. Nog handiger is het path even aan te passen zodat hij wel gewoon in je php installatie dir staat.

    Over die instellingen weet ik niet echt eigenlijk, ik heb er nooit gebruik van gemaakt maar ik ben er een paar keer langs gekomen bij instellingen veranderen dus vandaar
    cygnusxwoensdag 28 mei 2008 @ 21:08
    quote:
    Op woensdag 28 mei 2008 18:29 schreef Dzy het volgende:
    Die in je windows folder

    Daar heb ik ook wel eens mee lopen klooien maar hij zet er ook een in je windows folder of een subdir daarvan, erg irritant. Die moet je hebben. Nog handiger is het path even aan te passen zodat hij wel gewoon in je php installatie dir staat.

    Over die instellingen weet ik niet echt eigenlijk, ik heb er nooit gebruik van gemaakt maar ik ben er een paar keer langs gekomen bij instellingen veranderen dus vandaar
    Hm, ik kan er geen een vinden in mijn windows folder.....
    sabanwoensdag 28 mei 2008 @ 22:18
    c:\xx\xampp\php\php.ini
    c:\xx\xampp\php\apache\bin\php.ini

    één van die twee, ik gok de eerste
    JortKwoensdag 28 mei 2008 @ 22:19
    quote:
    Op woensdag 28 mei 2008 22:18 schreef saban het volgende:
    c:\xx\xampp\php\php.ini
    c:\xx\xampp\php\apache\bin\php.ini

    één van die twee, ik gok de eerste
    De laatste
    PiRANiAdonderdag 29 mei 2008 @ 01:49
    quote:
    Op woensdag 28 mei 2008 22:19 schreef JortK het volgende:

    [..]

    De laatste
    is het in linux /bin/php.ini??
    The_Terminatordonderdag 29 mei 2008 @ 02:00
    quote:
    Op donderdag 29 mei 2008 01:49 schreef PiRANiA het volgende:

    [..]

    is het in linux /bin/php.ini??
    Kan soms verschillen. Je kunt het achterhalen met een simpel phpinfo scriptje

    <?php
    phpinfo();
    ?>
    Irixdonderdag 29 mei 2008 @ 04:38
    Allereerst de code (let aub niet op slordige opbouw oid :p)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    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
    <?php
    require 'menu.php';

    $stage == "1" or exit('Sorry, but you cannot place a bet in this stage of the competition'); 

    ?>
    Last name starts with: <a href="#A">A</a> <a href="#B">B</a> C D E F G H I J <a href="#K">K</a> L M N O P Q R S T U V W X Y Z 
    <br />
    <?php

    $username = $_SESSION['username'];

    //voor elke user waarop deze speler nog niet geboden heeftspelers weergeven

    $sql = "SELECT * FROM euro_bet WHERE username = '$username'";

    $result = mysql_query ($sql);

    while($data=mysql_fetch_array($result))

    {

    $firstname = $data['firstname'];
    $lastname = $data['lastname'];


    $sqlb = "SELECT * FROM euro_player WHERE firstname <> '$firstname' or lastname <> '$lastname' or (firstname <>'$firstname' and lastname<>'lastname') ORDER BY lastname";

    $resultb = mysql_query ($sqlb);

    ?>

    <form action="betnew2.php" method="post">

    <?php

    while($datab=mysql_fetch_array($resultb))
    {

    $lastname = $datab['lastname'];
    $firstname = $datab['firstname'];


    $letter = substr($lastname,0,1);
    $letterb = substr($firstname,0,1);
    ?>


    <?php
    if ($letter <> $currentletter) 

       {
       
       echo "<br>";
       echo "<br>";
       echo  "<b>" . $letter . "</b>";
       echo "<br>";
       echo "<br>";
       echo '<A name="' . $letter . '"></A>';
       $currentletter = $letter;
       ?>
       <input type="submit" name="selected" value="
       <?php echo $lastname . ", " . $firstname; 
       ?>
       " />
       <?php 
       
       
       }

       else 

       {
       echo "<br>";
       $currentletter = $letter;
       ?>
       <input type="submit" name="selected" value="
       <?php echo $lastname . ", " . $firstname ; 
       ?>
       " />
       <?php 
       }


    }

    }

    ?>

    </form>


    (expres tussen code tags ipv php omdat bep dingen worden weggelaten(?))


    Opbouw:

    1. Controleer wie er ingelogd is.
    2. Kijk in de tabel euro_bet op welke spelers deze user een bet heeft.
    3. Onthoud de voornaam en achternaam van deze spelers.
    4. Zorg vervolgens dat ze niet worden weergeven in de lijst met beschikbare spelers (de eigenlijke output en bedoeling van deze pagina).

    Wat er gebeurt:

    Bovenstaande wordt allemaal goed uitgevoerd als de user maar 1 bet heeft. Als er echter meerdere bets voor een user zijn, dan worden alle namen 2x weergeven. Dit wordt natuurlijk veroorzaakt door de eerste while loop. Ik vraag me af of er een simpele oplossing bestaat om te voorkomen dat de namen 2 keer worden weergeven, of moet ik echt alles om gaan gooien (ik zou niet weten hoe..)?

    [ Bericht 32% gewijzigd door Irix op 29-05-2008 04:47:37 ]
    Hmaildonderdag 29 mei 2008 @ 10:33
    Ik weet niet precies hoe je database eruit ziet, maar als het zoiets is:
    1
    2
    3
    4
    5
    6
    7
    +----+----------+-----+
    | ID | username | bet |
    +----+----------+-----+
    |  1 | hmail    |   1 |
    |  2 | piet     |   1 |
    |  3 | hmail    |   1 |
    +----+----------+-----+

    Dan zou je de volgende query kunnen gebruiken:
    1SELECT username, COUNT(bet) FROM bets GROUP BY username;

    Hiermee telt hij dus het aantal bets, en voegt hij alles onder bij de juiste username. Daarmee voorkom je dubbele resultaten.
    daReaperdonderdag 29 mei 2008 @ 11:07
    quote:
    Op donderdag 22 mei 2008 10:04 schreef Light het volgende:
    Het is alleen niet erg vriendelijk voor de database om nog eens twee queries per boek te doen (minimaal). Iets aangepaste versie:
    [ code verwijderd ]

    Maar dit gaat niet helemaal werken in je template.
    --- EDIT: Laat maar, al gelukt (zie onder) ---

    Hey,

    Ik heb intussen de volgende query in gebruik:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <?php
      $order 
    "author";
      
    $order2 "title";
      
    $order3 "subtitle";
      
    $order4 "bid";

      
    $query =
        
    "SELECT b.BookID AS bid, b.Title as x, b.Subtitle AS subtitle, p.PersonID, 
        p.SortBy, ab.RoleID, b.SortBy AS `title`,
        concat(if(ab.RoleID < 1, 0, 1), IF(ab.RoleID < 1, p.SortBy, '')) as author
        FROM Book b,
        AuthorBookLink ab,
        Person p
        WHERE b.BookID IN ("
    .join(", "$bookids).")
        AND b.BookID = ab.BookID
        AND ab.PersonID = p.PersonID 
        ORDER BY $order, $order2, $order3, $order4
      "
    ;
      
    $res mysql_query($query);
      
      
    $books = array();
      while(list(
    $bid$title$subtitle$pid$name$role) = mysql_fetch_array($res)) {
        
    $books[$bid]['id'] = $bid;
        
    $books[$bid]['title'] = $title;
        
    $books[$bid]['subtitle'] = $subtitle;
        
    $books[$bid]['authors'][$pid]['id'] = $pid;
        
    $books[$bid]['authors'][$pid]['name'] = $name;
        
    $books[$bid]['authors'][$pid]['role'] = $role;
      }
    ?>


    Ik dacht dat dit prima werkte, tot ik ineens merkte dat er een aantal boeken in de resultaten miste. Na enig denkwerk heb ik ontdekt dat dit de boeken betreft, die geen auteur hebben, en dus niet in de tabel AuthorBookLink voorkomen... Weet iemand misschien wat ik hier aan kan doen?

    -- EDIT: Laat maar, al gelukt. De query is de volgende geworden:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
      $query 
    =
        
    "SELECT b.BookID AS bid, b.Title as x, b.Subtitle AS subtitle, p.PersonID, 
        p.SortBy, ab.RoleID, b.SortBy AS `title`,
        CONCAT(IF(ab.RoleID < 1, 0, 1), IF(ab.RoleID < 1, p.SortBy, '')) AS author
        FROM Book b
        LEFT JOIN (AuthorBookLink ab, Person p) ON (p.PersonID = ab.PersonID AND ab.BookID = b.BookID)
        WHERE b.BookID IN ("
    .join(", "$bookids).")
        ORDER BY $order, $order2, $order3, $order4
      "
    ;
    ?>


    [ Bericht 11% gewijzigd door daReaper op 29-05-2008 11:30:20 ]
    urseldonderdag 29 mei 2008 @ 12:22
    quote:
    Op woensdag 28 mei 2008 10:30 schreef ursel het volgende:
    Als ik een query verstuur met daarin een apastrophe of iets dergelijks, dan maakt MySQL er zelf HTML entities van. Volgens mij is heeft dat met een instelling van MySQL te maken. Iemand enig idee welke dit soort tekens wel gewoon als apastrohe opslaat en niet als HTML-entitie??
    Heb ergens gelezen dat de charset hiervoor op utf-8 moet staan. Maar als ik deze wijziging doorvoer, dan nog blijft MySQL het opslaan als HTML entitie.

    Iemand nog suggesties
    HuHudonderdag 29 mei 2008 @ 12:26
    quote:
    Op donderdag 29 mei 2008 12:22 schreef ursel het volgende:

    [..]

    Heb ergens gelezen dat de charset hiervoor op utf-8 moet staan. Maar als ik deze wijziging doorvoer, dan nog blijft MySQL het opslaan als HTML entitie.

    Iemand nog suggesties
    Kijk eens hier naar: http://nl3.php.net/manual(...)ini.magic-quotes-gpc
    urseldonderdag 29 mei 2008 @ 12:32
    quote:
    Op donderdag 29 mei 2008 12:26 schreef HuHu het volgende:

    [..]

    Kijk eens hier naar: http://nl3.php.net/manual(...)ini.magic-quotes-gpc
    Het probleem zit hem volgens mij niet in de query. deze verstuurd de apastrophe gewoon goed. We gebruiken MDB2 van Pear en als ik zijn resultaat dump, dan staat de query er ook gewoon met een apastrophe. Kortom, volgens mijn simpele conclusie maakt MySQL er dus HTML entities van.

    In de PHP dit soort zaken opvangen betekend dat ik overal waar we de query gaan uitvoeren dit moeten gaan aanpassen.
    Tuvai.netdonderdag 29 mei 2008 @ 14:23
    quote:
    Op donderdag 29 mei 2008 12:32 schreef ursel het volgende:

    [..]

    Het probleem zit hem volgens mij niet in de query. deze verstuurd de apastrophe gewoon goed. We gebruiken MDB2 van Pear en als ik zijn resultaat dump, dan staat de query er ook gewoon met een apastrophe. Kortom, volgens mijn simpele conclusie maakt MySQL er dus HTML entities van.

    In de PHP dit soort zaken opvangen betekend dat ik overal waar we de query gaan uitvoeren dit moeten gaan aanpassen.
    Ik heb daar meestal een eigen vervangende functie (voor mysql_query()) voor die én de betreffende query uitvoert, en daarbij afhankelijk van de magic_quotes instelling mysql_real_escape_string() uitvoert. Werkt prima.
    urseldonderdag 29 mei 2008 @ 14:31
    quote:
    Op donderdag 29 mei 2008 14:23 schreef Tuvai.net het volgende:

    [..]

    Ik heb daar meestal een eigen vervangende functie (voor mysql_query()) voor die én de betreffende query uitvoert, en daarbij afhankelijk van de magic_quotes instelling mysql_real_escape_string() uitvoert. Werkt prima.
    Overigens staat er ook deze warning op je linkje :
    quote:
    Warning

    This feature has been DEPRECATED and REMOVED as of PHP 6.0.0. Relying on this feature is highly discouraged.
    Gezien wij van de zomer aan het systeem gaan werken richting PHP6 lijkt het me dan niet zo zinvol om er nu dan nog mee aan de slag te gaan..
    qu63donderdag 29 mei 2008 @ 16:17
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    mysql_connect
    ("localhost""root""******") or die(mysql_error());
    mysql_select_db("test");
    $q "SELECT * FROM `wish` LIMIT 0 , 30";
    $res mysql_query($q);
    $w mysql_fetch_array($res);
    print_r($w);
    ?>

    Ik krijg steeds maar 1 regel, en snap niet waarom
    Er zitten 28 records in de database, maar ik krijg steeds alleen de eerste. Als ik LIMIT 0,30 vervang door LIMIT 2,30 krijg ik alleen het 3e record

    iemand een tip?
    zal vast wel weer iets stoms zijn..
    Dzydonderdag 29 mei 2008 @ 16:29
    klopt

    Je fetcht met mysql_fetch_array het volgende resultaat uit de resultaat set, als je dit dus 30 keer doet heb je alle 30 records. Dit los je mooi op met bijvoorbeeld:

    1
    2
    3
    4
    5
    6
    7
    $res = mysql_query($q);
    $records=array();
    while ($row = mysql_fetch_array($res))
    {
      $records[]=$row;
      print_r($row);
    }
    qu63donderdag 29 mei 2008 @ 16:35
    quote:
    Op donderdag 29 mei 2008 16:29 schreef Dzy het volgende:
    klopt

    Je fetcht met mysql_fetch_array het volgende resultaat uit de resultaat set, als je dit dus 30 keer doet heb je alle 30 records. Dit los je mooi op met bijvoorbeeld:
    [ code verwijderd ]
    en hoe prop ik dit er dan bij?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    shuffle
    ($w[1]);
    foreach (
    $w as $w2) {
        echo 
    "<li type=\"circle\" dir=\"ltr\" lang=\"nl\">";
        if (
    $w2[2] == 1)echo "<span style=\"text-decoration: line-through;\">";
        echo 
    "$w2 ";
        if (
    $w2[2] == 1)echo "</span><br />\n";
        echo 
    "</li>\n";
    }
    ?>


    Het is dus de bedoeling dat alle records door elkaar gegooid worden (door shuffle()) en daarna uitgepoept worden in een lijstje. Als b = 1, dan komt er dus een streepje door de record te staan, anders niet..

    originele foute code was dit:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?php
    mysql_connect
    ("localhost""root""cCy4zxY9") or die(mysql_error());
    mysql_select_db("test");
    $q "SELECT * FROM `wish`";
    $res mysql_query($q);
    $w mysql_fetch_array($res);
    shuffle($w[1]);
    foreach (
    $w as $w2) {
        echo 
    "<li type=\"circle\" dir=\"ltr\" lang=\"nl\">";
        if (
    $w2[2] == 1)echo "<span style=\"text-decoration: line-through;\">";
        echo 
    "$w2 ";
        if (
    $w2[2] == 1)echo "</span><br />\n";
        echo 
    "</li>\n";
    }
    ?>
    Tuvai.netdonderdag 29 mei 2008 @ 16:36
    quote:
    Op donderdag 29 mei 2008 14:31 schreef ursel het volgende:

    [..]

    Overigens staat er ook deze warning op je linkje :
    [..]
    Welk linkje?
    Dzydonderdag 29 mei 2008 @ 16:37
    Nou, $records is bij mijn voorbeeld precies hetzelfde als jouw $w. Overigens raad ik je aan geen mysql_fetch_array maar mysql_fetch_assoc te gebruiken, dan krijg je veel mooiere arrays met de namen van de database kolommen als keys.
    qu63donderdag 29 mei 2008 @ 16:52
    quote:
    Op donderdag 29 mei 2008 16:37 schreef Dzy het volgende:
    Nou, $records is bij mijn voorbeeld precies hetzelfde als jouw $w. Overigens raad ik je aan geen mysql_fetch_array maar mysql_fetch_assoc te gebruiken, dan krijg je veel mooiere arrays met de namen van de database kolommen als keys.
    Ik snap er geen fuck meer van..

    Ik heb nu:
    1
    2
    3
    4
    5
    6
    7
    <?php
    while ($row mysql_fetch_assoc($res))
    {
        
    $records[]=$row;
        
    print_r($row);
    }
    ?>

    Dat geeft netjes alles terug, maar als ik
    1
    2
    3
    4
    <?php
        $records
    []=$row;
        echo 
    $records["wid"];
    ?>

    doe, komt er weer niks. Doe ik $records[0]["wid"] krijg ik 28 keer een 1, omdat dat de waarde is van wid bij het eerste record.. $records[]["wid"] is niet geldig..

    dus hoer moet het dan
    slacker_nldonderdag 29 mei 2008 @ 17:03
    quote:
    Op donderdag 29 mei 2008 16:52 schreef qu63 het volgende:

    [..]

    Ik snap er geen fuck meer van..

    Ik heb nu:
    [ code verwijderd ]

    Dat geeft netjes alles terug, maar als ik
    [ code verwijderd ]

    doe, komt er weer niks. Doe ik $records[0]["wid"] krijg ik 28 keer een 1, omdat dat de waarde is van wid bij het eerste record.. $records[]["wid"] is niet geldig..

    dus hoer moet het dan :?
    1
    2
    3
    4
    5
    <?php
    foreach ($records as $record) {
       
    printf("Wid is %s\n"record['wid'])
    }
    ?>
    qu63donderdag 29 mei 2008 @ 17:09
    quote:
    Op donderdag 29 mei 2008 17:03 schreef slacker_nl het volgende:

    [..]
    [ code verwijderd ]
    eerst een syntax error, unexpected '[' in regel 3 (in dit geval dus) en daarna een syntax error, unexpected '} in regel 4

    die eerste heb ik opgelost door er $record['wid'] van te maken, maar die 2e blijft..
    slacker_nldonderdag 29 mei 2008 @ 17:13
    quote:
    Op donderdag 29 mei 2008 17:09 schreef qu63 het volgende:

    [..]

    eerst een syntax error, unexpected '[' in regel 3 (in dit geval dus) en daarna een syntax error, unexpected '} in regel 4

    die eerste heb ik opgelost door er $record['wid'] van te maken, maar die 2e blijft..
    Oops, teveel python getikt de afgelopen weken (geen $var, maar var en geen ; aan het einde van je statement nodig dan.. kan wel, maar is niet nodig).

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $records = array();

    $record = array('wid' => 1, 'wid2' => 2);

    $records[] = $record;
    $records[] = $record;

    print_r($records);

    foreach($records as $record) {
        printf("Wid is %s\n", $record['wid']);
    }


    Works for me (tm)
    slacker_nldonderdag 29 mei 2008 @ 17:19
    quote:
    Op zondag 18 mei 2008 12:25 schreef saban het volgende:
    date('l'); geeft Sunday terug, is er niet iets om bijvoorbeeld de taal vast te stellen? date('l','NL'); bijvoorbeeld voor zondag?

    Ik heb nu namelijk dit maar het moet makkelijker/netter kunnen:
    [ code verwijderd ]
    Beetje laat, maar ik los dit soort of statements vaak op met een hash:

    $day = $hash[date(l)];
    qu63donderdag 29 mei 2008 @ 17:21
    quote:
    Op donderdag 29 mei 2008 17:13 schreef slacker_nl het volgende:

    [..]

    Oops, teveel python getikt de afgelopen weken (geen $var, maar var en geen ; aan het einde van je statement nodig dan.. kan wel, maar is niet nodig).
    [ code verwijderd ]

    Works for me (tm)
    hmz..

    het was gewoon de bedoeling dat mn tabelletje uitgelezen wordt:
    1
    2
    3
    4
    5
    6
    7
    +----+----------+-----+
    |wid |     w    | b   |
    +----+----------+-----+
    |  1 | wens1    |   0 |
    |  2 | wens2    |   0 |
    |  3 | wens3    |   1 |
    +----+----------+-----+

    en dat php de lijst door elkaar gooid, en dat er zoiets uit komt:

    - wens2
    - wens3
    - wens1

    Dus alle items door elkaar gegooid, en als b = 1 dan een streep er door..

    nog te volgen :?
    slacker_nldonderdag 29 mei 2008 @ 17:28
    quote:
    Op donderdag 29 mei 2008 17:21 schreef qu63 het volgende:

    [..]

    hmz..

    het was gewoon de bedoeling dat mn tabelletje uitgelezen wordt:
    [ code verwijderd ]

    en dat php de lijst door elkaar gooid, en dat er zoiets uit komt:

    - wens2
    - wens3
    - wens1

    Dus alle items door elkaar gegooid, en als b = 1 dan een streep er door..

    nog te volgen
    ja, wrom niet gewoon zo oplossen:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    $result 
    mysql_query($query);
    $num mysql_num_rows($result);

    for (
    $row 0$row $num$row++) {
      
    $data mysql_fetch_array($result);
      
    $wid =$data['wid'];
      
    $wens =$data['wens'];
      
    $b=$data['b'];

      
    # more code here
    }
    ?>


    Mogelijk kan je ook je query aanpassen:

    select wid, wens, b from table en dan even met print_r kijken of de array in de juiste volgorde staat (pas op, data[0] is dan hetzelfde als data['wid'], maar dat staat beschreven in de PHP docs).
    qu63donderdag 29 mei 2008 @ 17:32
    quote:
    Op donderdag 29 mei 2008 17:28 schreef slacker_nl het volgende:

    [..]

    ja, wrom niet gewoon zo oplossen:
    [ code verwijderd ]

    Mogelijk kan je ook je query aanpassen:

    select wid, wens, b from table en dan even met print_r kijken of de array in de juiste volgorde staat (pas op, data[0] is dan hetzelfde als data['wid'], maar dat staat beschreven in de PHP docs).
    dat werkt idd, thanks

    Alleen nu moet ie nog ergens geshuffled worden
    slacker_nldonderdag 29 mei 2008 @ 17:44
    array_shuffle($array);
    qu63donderdag 29 mei 2008 @ 17:47
    quote:
    Op donderdag 29 mei 2008 17:44 schreef slacker_nl het volgende:
    array_shuffle($array);
    shuffle() bedoel je?
    of array_rand()?

    array_shuffle bestaat iig niet

    en waar moet ie komen dan
    slacker_nldonderdag 29 mei 2008 @ 17:52
    De moest een teken zijn dat die post niet geheel serieus genomen kon worden.
    Irixdonderdag 29 mei 2008 @ 18:11
    quote:
    Op donderdag 29 mei 2008 10:33 schreef Hmail het volgende:
    Ik weet niet precies hoe je database eruit ziet, maar als het zoiets is:
    [ code verwijderd ]

    Dan zou je de volgende query kunnen gebruiken:
    [ code verwijderd ]

    Hiermee telt hij dus het aantal bets, en voegt hij alles onder bij de juiste username. Daarmee voorkom je dubbele resultaten.
    Ik heb mbt tot deze code twee tabellen: euro_bet en euro_player.

    euro_bet:

    ID firstname lastname username
    1 Ronald Koeman irix
    2 Erwin Koeman irix
    3 Ronald Koeman sander

    euro_player

    ID firstname lastname (en nog een paar niet relevante velden)
    1 Ronald Koeman
    2. David Beckham
    3. Erwin Koeman

    Ter verduidelijking: Als iemand naar de pagina new_bet gaat, moet diegene een lijst krijgen te zien van alle spelers waarop hij nog geen bet heeft staan. Alle mogelijke spelers staan in euro_player. Als iemand vervolgens een bet plaatst, dan wordt deze toegevoegd aan de tabel euro_bet.
    qu63donderdag 29 mei 2008 @ 18:27
    quote:
    Op donderdag 29 mei 2008 17:52 schreef slacker_nl het volgende:
    De moest een teken zijn dat die post niet geheel serieus genomen kon worden.
    ah

    Maar heb je nog wel een anwoord dan?
    Lightdonderdag 29 mei 2008 @ 18:40
    quote:
    Op donderdag 29 mei 2008 14:31 schreef ursel het volgende:

    [..]

    Overigens staat er ook deze warning op je linkje :
    [..]

    Gezien wij van de zomer aan het systeem gaan werken richting PHP6 lijkt het me dan niet zo zinvol om er nu dan nog mee aan de slag te gaan..
    Dat ligt er maar net aan. In PHP6 zijn er geen magic quotes meer. Als je die nu nog wel gebruikt in PHP5 (even controleren met phpinfo() ) dan is het wellicht een goed moment om alvast magic quotes uit te zetten. Als ze al uit staan dan is dat goed, mooi laten staan dus
    #ANONIEMdonderdag 29 mei 2008 @ 22:21
    Ik zie het ff niet meer.

    Wat ik probeer te doen: ik heb een array met key-value pairs, en zodra ik in een template {name} tegenkom, wil ik deze vervangen door de value die bij key name hoort.

    1
    2
    3
    4
    5
    6
    <?php
        $content 
    " HOI! : {edwin}";
        
    $vars = array("edwin");
        
    $content eregi_replace("{([a-zA-Z0-9]*)}",$vars['\\1'],$content); 
        echo 
    $content;
    ?>


    Output: HOI! :

    Rara wat doe ik fout, ik zie het niet iig...
    Farenjidonderdag 29 mei 2008 @ 22:34
    Die $vars is helemaal geen assoc.array maar gewoon een lijst met slechts 1 element...
    #ANONIEMdonderdag 29 mei 2008 @ 22:51
    quote:
    Op donderdag 29 mei 2008 22:34 schreef Farenji het volgende:
    Die $vars is helemaal geen assoc.array maar gewoon een lijst met slechts 1 element...

    Mja, als ik dit probeer:

    1
    2
    3
    4
    5
    6
    <?php
        $content 
    " HOI! : {name}";
        
    $vars = array("name" => "edwin");
        
    $content eregi_replace("{([a-zA-Z0-9]*)}",$vars["name"],$content); 
        echo 
    $content;
    ?>


    Werkt het prima.

    Doe ik echter dit:

    1
    2
    3
    4
    5
    6
    <?php
        $content 
    " HOI! : {name}";
        
    $vars = array("name" => "edwin");
        
    $content eregi_replace("{([a-zA-Z0-9]*)}",$vars['\\1'],$content); 
        echo 
    $content;
    ?>


    Gebeurt er niks......het lijkt wel alsof hij de '\\1' waarde niet goed interpreteert.....
    SuperRembodonderdag 29 mei 2008 @ 23:09
    Logisch. Eerst wordt $vars['\\1'] ge-evalueerd, daarna wordt de regexp uitgevoerd.
    #ANONIEMdonderdag 29 mei 2008 @ 23:30
    quote:
    Op donderdag 29 mei 2008 23:09 schreef SuperRembo het volgende:
    Logisch. Eerst wordt $vars['\\1'] ge-evalueerd, daarna wordt de regexp uitgevoerd.
    Oke, en de beste oplossing zou zijn eerst een preg_match te doen? Of de variabele in een string-replace constructie te vervangen?
    SuperRembodonderdag 29 mei 2008 @ 23:33
    Je zou preg_replace_callback() kunnen gebruiken of preg_replace en dan een regexp met de 'e' modifier.
    #ANONIEMvrijdag 30 mei 2008 @ 08:49
    quote:
    Op donderdag 29 mei 2008 23:33 schreef SuperRembo het volgende:
    Je zou preg_replace_callback() kunnen gebruiken of preg_replace en dan een regexp met de 'e' modifier.
    Thanks, ga vanavond wel even kijken
    ralfievrijdag 30 mei 2008 @ 10:27
    wron draai je het niet om en gebruik je simpele str_replace waarbij je de search opbouwt met de array die je wil vervangen, iets als

    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    $keys 
    = array('naam1'=>'kees''naam2'=>'klaas');
    $text  "Jantje, <b>{naam1}</b> en {naam2}";

    foreach(
    $keys as $what => $withwhat)
         
    $text str_replace('{'.$what.'}'$withwhat$text);

    echo 
    $text;
    ?>
    Stukken envoudiger, en waarschijnlijk ook veel sneller in uitvoeren...
    #ANONIEMvrijdag 30 mei 2008 @ 10:29
    quote:
    Op vrijdag 30 mei 2008 10:27 schreef ralfie het volgende:
    wron draai je het niet om en gebruik je simpele str_replace waarbij je de search opbouwt met de array die je wil vervangen, iets als
    [ code verwijderd ]

    Stukken envoudiger, en waarschijnlijk ook veel sneller in uitvoeren...
    Daar willen de meningen wel eens over verschillen. Ik ben iig al op onderzoek uitgeweest wat nu precies sneller is, maar blogs e.d spreken elkaar tegen hierover...

    Ben het wel met je eens dat het een stuk eenvoudiger is. Echter wil ik niet dat ik straks een enorme array heb met letterlijk duizenden waardes die gecontroleerd worden maar die niet in de pagina voorkomen.

    Maar goed, sowieso blijf ik sleutelen aan het ontwerp
    ralfievrijdag 30 mei 2008 @ 12:13
    quote:
    Op vrijdag 30 mei 2008 10:29 schreef Scorpie het volgende:

    [..]

    Daar willen de meningen wel eens over verschillen. Ik ben iig al op onderzoek uitgeweest wat nu precies sneller is, maar blogs e.d spreken elkaar tegen hierover...

    Ben het wel met je eens dat het een stuk eenvoudiger is. Echter wil ik niet dat ik straks een enorme array heb met letterlijk duizenden waardes die gecontroleerd worden maar die niet in de pagina voorkomen.

    Maar goed, sowieso blijf ik sleutelen aan het ontwerp
    De vraag is dan waarom jij duizenden waardes inlaadt die niet in de pagina voorkomen
    #ANONIEMvrijdag 30 mei 2008 @ 12:16
    quote:
    Op vrijdag 30 mei 2008 12:13 schreef ralfie het volgende:

    [..]

    De vraag is dan waarom jij duizenden waardes inlaadt die niet in de pagina voorkomen
    Resultset die met paginering pas in de pagina opgenomen worden
    G.Fawkeszaterdag 31 mei 2008 @ 00:14
    Ik weet niet of er op dit typstip nog iemand online is in dit topic maar ik ben een echte maar dan ook totale php noob.

    Ik wil dat als mijn mensen op mijn website (eyupciftci.nl) komen ze direct geredirect worden naar mijn blog (eyupciftci.nl/blog/) nu heb ik deze code ervoor gebruikt:

    1
    2
    3
    4
    <?php
    header("Location: http://www.site.nl/"); 
    exit; 
    ?>


    maar dat resulteert niet in het desgewenste effect (zie mijn website) wat is er verkeerd?
    donroycozaterdag 31 mei 2008 @ 00:15
    quote:
    Op zaterdag 31 mei 2008 00:14 schreef G.Fawkes het volgende:
    Ik weet niet of er op dit typstip nog iemand online is in dit topic maar ik ben een echte maar dan ook totale php noob.

    Ik wil dat als mijn mensen op mijn website (eyupciftci.nl) komen ze direct geredirect worden naar mijn blog (eyupciftci.nl/blog/) nu heb ik deze code ervoor gebruikt:
    [ code verwijderd ]

    maar dat resulteert niet in het desgewenste effect (zie mijn website) wat is er verkeerd?
    http://php.about.com/od/learnphp/ht/phpredirection.htm
    Lightzaterdag 31 mei 2008 @ 00:19
    quote:
    Op zaterdag 31 mei 2008 00:14 schreef G.Fawkes het volgende:
    Ik weet niet of er op dit typstip nog iemand online is in dit topic maar ik ben een echte maar dan ook totale php noob.

    Ik wil dat als mijn mensen op mijn website (eyupciftci.nl) komen ze direct geredirect worden naar mijn blog (eyupciftci.nl/blog/) nu heb ik deze code ervoor gebruikt:
    [ code verwijderd ]

    maar dat resulteert niet in het desgewenste effect (zie mijn website) wat is er verkeerd?
    Staat die code wel in een index.php? En heeft de server wel PHP-ondersteuning?
    G.Fawkeszaterdag 31 mei 2008 @ 00:28
    Ik moest dus index.html veranderen in index.php

    Zoals ik al zei: Ik ben een totale php n00b
    G.Fawkeszaterdag 31 mei 2008 @ 00:40
    Overigens: Dank voor de hulp
    PiRANiAzaterdag 31 mei 2008 @ 10:16
    eyupciftci.nl, da's lekker makkelijk te onthouden
    Chandlerzaterdag 31 mei 2008 @ 10:30
    Kleine vraag, ik wil snel achterhalen hoelang een text grafisch is.

    Stel ik heb de text 'DIG / [PHP/(My)SQL] voor dummies - deel 59' en wil nu weten hoeveel px dit grafisch is, hoe kan ik dat snel en simpel achterhalen mbv php zonder per karakter de lengte te gaan berekenen...

    maar dan niet ttfbox want ik print de tekst met ImageString

    Anyone?
    Xcaliburzaterdag 31 mei 2008 @ 12:23
    quote:
    Op vrijdag 30 mei 2008 12:16 schreef Scorpie het volgende:
    Resultset die met paginering pas in de pagina opgenomen worden
    waarom haal je dan alle waardes op, en niet alleen de waardes die op je pagina staan?
    Dit is echt een compleet zinloze load van je server.... zeker als het om veel records gaat ga je dit echt wel merken...
    qu63zaterdag 31 mei 2008 @ 12:27
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    $result 
    mysql_query($query);
    $num mysql_num_rows($result);

    for (
    $row 0$row $num$row++) {
      
    $data mysql_fetch_array($result);
      
    $wid =$data['wid'];
      
    $wens =$data['wens'];
      
    $b=$data['b'];

      
    # more code here
    }
    ?>

    hoe krijg ik de resultaten geshuffled?
    Lightzaterdag 31 mei 2008 @ 13:18
    Zoiets?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <?php
    $result 
    mysql_query($query);
    $data = array();

    while(
    $row mysql_fetch_array($result) {
      
    $data[] = $row;
    }
    if(!empty(
    $data)) {
      
    shuffle($data)
      foreach(
    $data as $item) {
        
    $wid $item['wid'];
        
    $wens $item['wens'];

        
    #more code here

      
    }
    }
    ?>
    Farenjizaterdag 31 mei 2008 @ 13:22
    quote:
    Op zaterdag 31 mei 2008 12:27 schreef qu63 het volgende:

    [ code verwijderd ]

    hoe krijg ik de resultaten geshuffled?
    1select foo from bar order by RAND()
    qu63zaterdag 31 mei 2008 @ 14:11
    quote:
    Op zaterdag 31 mei 2008 13:18 schreef Light het volgende:
    Zoiets?
    [ code verwijderd ]
    uiteindelijke code is dit geworden:
    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
    <?php
    $query 
    "SELECT * FROM `wish`";
    $result mysql_query($query);
    $data = array();

    while(
    $row mysql_fetch_array($result))
        {
            
    $data[] = $row;
        }
    if(!empty(
    $data))
        {
            
    shuffle($data);
                foreach(
    $data as $item)
                    {
                        
    $wid $item['wid'];
                        
    $w $item['w'];
                        
    $b$item['b'];
                        echo 
    "<li type=\"circle\" dir=\"ltr\" lang=\"nl\">";
                            if (
    $b == 1)echo "<span style=\"text-decoration: line-through;\">";
                        echo 
    "<a href=\"wl.php?wid=$wid&b=$b\">$w </a>";
                            if (
    $b == 1)echo "</span>";
                        echo 
    "</li>\n";
                    }
        }
    ?>


    Thanks!
    Lightzaterdag 31 mei 2008 @ 15:00
    quote:
    Op zaterdag 31 mei 2008 13:22 schreef Farenji het volgende:

    [..]
    [ code verwijderd ]
    Kan ook, hoewel ook afhankelijk van de query.
    qu63zaterdag 31 mei 2008 @ 15:04
    quote:
    Op zaterdag 31 mei 2008 15:00 schreef Light het volgende:

    [..]

    Kan ook, hoewel ook afhankelijk van de query.
    query was dus niet al te moeilijk in dit geval
    JortKmaandag 2 juni 2008 @ 09:26
    Interessant interview met Marten Mickos over MySQL, de overname door SUN en de toekomst
    #ANONIEMmaandag 2 juni 2008 @ 09:33
    quote:
    Op zaterdag 31 mei 2008 12:23 schreef Xcalibur het volgende:

    [..]

    waarom haal je dan alle waardes op, en niet alleen de waardes die op je pagina staan?
    Dit is echt een compleet zinloze load van je server.... zeker als het om veel records gaat ga je dit echt wel merken...
    Niet als je The 'Reluctant Cache' Pattern principe toepast.
    PiRANiAwoensdag 4 juni 2008 @ 13:44
    Is er ergens een programma waar je CAPTCHA' s mee kan testen?

    Ik ben vanmiddag een beetje bezig geweest, wat denken jullie?

    1:
    2:
    3:
    4:
    #ANONIEMwoensdag 4 juni 2008 @ 17:17
    Captcha`s
    qu63woensdag 4 juni 2008 @ 17:38
    quote:
    Op woensdag 4 juni 2008 13:44 schreef PiRANiA het volgende:
    Is er ergens een programma waar je CAPTCHA' s mee kan testen?

    Ik ben vanmiddag een beetje bezig geweest, wat denken jullie?

    1: [ afbeelding ]
    2: [ afbeelding ]
    3: [ afbeelding ]
    4: [ afbeelding ]
    leuk idee eigenlijk

    begrijpen en uitvoeren van de tekst
    Swetseneggerwoensdag 4 juni 2008 @ 18:27
    Ik heb in mijn cmsje een config php, waar niks meer in staat als een array

    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    $raw_config 
    = array(
    'Title' => 'Pagina Titel'
    'BaseHref' => 'http://www.pagina.nl'
    'CmsTitle' => 'CMS titel',
    'GuestBook' => 0,
    'Poll' => 0
    );
    ?>


    Deze config wordt geinclude in de header en vervolgens op bepaalde plekken gebruikt bv zo

    1
    2
    3
    4
    5
    6
    <?php
    require_once('config.php');
    if(
    $raw_config[GuestBook]!=0){
            include(
    'includes/handle_guestbook.php');
    }
    ?>


    Kortom, ik include de array en vervolgens gebruik ik deze. Maar dit levert de volgende notice op:

    1Notice: Use of undefined constant GuestBook - assumed 'GuestBook' in /var/www/vhosts/domein/www/templates/header.php on line 6


    Waarom krijg ik deze notice :?
    daReaperwoensdag 4 juni 2008 @ 18:29
    Je moet niet

    $raw_config[GuestBook]

    maar

    $raw_config["GuestBook"]

    gebruiken
    Xcaliburwoensdag 4 juni 2008 @ 19:03
    ja, quotjes vergeten dus

    wat me gelijk op het volgende brengt: waarom gebruik je geen constanten?
    Ik neem aan dat je configwaarden nooit wijzigen, en dus ook niet overschreven mogen / kunnen worden, ook niet per ongeluk of via een hack-attempt.
    Swetseneggerwoensdag 4 juni 2008 @ 19:57
    quote:
    Op woensdag 4 juni 2008 19:03 schreef Xcalibur het volgende:
    ja, quotjes vergeten dus

    wat me gelijk op het volgende brengt: waarom gebruik je geen constanten?
    Ik neem aan dat je configwaarden nooit wijzigen, en dus ook niet overschreven mogen / kunnen worden, ook niet per ongeluk of via een hack-attempt.
    Ik heb eigenlijk nooit wat gedaan met constanten
    Xcaliburwoensdag 4 juni 2008 @ 20:34
    goeie reden

    maar die kan je dus niet meer wijzigen als ze eenmaal gedeclareerd zijn, vind ik wel een prettig idee voor mijn databaseconnectie enzo ;-)
    Swetseneggerwoensdag 4 juni 2008 @ 20:54
    quote:
    Op woensdag 4 juni 2008 20:34 schreef Xcalibur het volgende:
    goeie reden

    maar die kan je dus niet meer wijzigen als ze eenmaal gedeclareerd zijn, vind ik wel een prettig idee voor mijn databaseconnectie enzo ;-)
    kan ik een constante op een zelfde manier gebruiken als een variabele? dus if(constantnaam=='iets')
    Lightwoensdag 4 juni 2008 @ 21:10
    quote:
    Op woensdag 4 juni 2008 20:34 schreef Xcalibur het volgende:
    goeie reden

    maar die kan je dus niet meer wijzigen als ze eenmaal gedeclareerd zijn, vind ik wel een prettig idee voor mijn databaseconnectie enzo ;-)
    Een variabele kun je dan weer unsetten. Dan is'ie echt weg en zelfs met echo $GLOBALS krijg je dan geen waarden meer te zien. Voordeel is dat je een db-connectie gemaakt kan worden, en na het maken van die connectie zijn de logingegens niet meer terug te vinden.
    Lightwoensdag 4 juni 2008 @ 21:11
    quote:
    Op woensdag 4 juni 2008 20:54 schreef Swetsenegger het volgende:

    [..]

    kan ik een constante op een zelfde manier gebruiken als een variabele? dus if(constantnaam=='iets')
    Ja. De constante dan niet tussen aanhalingstekens zetten natuurlijk (maar dat doe je nu ook goed).
    Swetseneggerwoensdag 4 juni 2008 @ 21:20
    quote:
    Op woensdag 4 juni 2008 21:11 schreef Light het volgende:

    [..]

    Ja. De constante dan niet tussen aanhalingstekens zetten natuurlijk (maar dat doe je nu ook goed).
    Ja precies, want dat riep de manual over echo van constanten. Het werkt nu
    #ANONIEMwoensdag 4 juni 2008 @ 21:38
    Constanten ruleren de pan uit
    Roonaanwoensdag 4 juni 2008 @ 21:41
    Zend_Config rulez.
    Black-Holedonderdag 5 juni 2008 @ 12:21
    Voor mijn nieuwe forum ben ik op zoek gegaan naar een php-script voor een roterende/random header. Heb een leuk script gevonden en die werkt met IE7 en Firefox maar niet met IE6. Hoe is dat mogelijk? Het gaat om het volgende stuk code:

    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
    $img = null;

    if (substr($folder,-1) != '/') {
       $folder = $folder.'/';
    }

    if (isset($_GET['img'])) {
       $imageInfo = pathinfo($_GET['img']);
       if (
           isset( $extList[ strtolower( $imageInfo['extension'] ) ] ) &&
            file_exists( $folder.$imageInfo['basename'] )
        ) {
          $img = $folder.$imageInfo['basename'];
       }
    } else {
       $fileList = array();
       $handle = opendir($folder);
       while ( false !== ( $file = readdir($handle) ) ) {
          $file_info = pathinfo($file);
          if (
              isset( $extList[ strtolower( $file_info['extension'] ) ] )
          ) {
             $fileList[] = $file;
          }
       }
       closedir($handle);

       if (count($fileList) > 0) {
          $imageNumber = time() % count($fileList);
          $img = $folder.$fileList[$imageNumber];
       }
    }

    if ($img!=null) {
       $imageInfo = pathinfo($img);
       $contentType = 'Content-type: '.$extList[ $imageInfo['extension'] ];
       header ($contentType);
       readfile($img);
    } else {
       if ( function_exists('imagecreate') ) {
          header ("Content-type: image/png");
          $im = @imagecreate (100, 100)
              or die ("Cannot initialize new GD image stream");
          $background_color = imagecolorallocate ($im, 255, 255, 255);
          $text_color = imagecolorallocate ($im, 0,0,0);
          imagestring ($im, 2, 5, 5,  "IMAGE ERROR", $text_color);
          imagepng ($im);
          imagedestroy($im);
       }
    }

    ?>

    Zelf heb ik bijzonder weinig verstand van php en jullie hulp is dus meer dan welkom. Het script is hier werkzaam te zien.
    Xcaliburdonderdag 5 juni 2008 @ 12:23
    iedere keer als ik refresh krijg ik een andere header te zien in IE6.... wat is het probleem?
    Black-Holedonderdag 5 juni 2008 @ 12:26
    quote:
    Op donderdag 5 juni 2008 12:23 schreef Xcalibur het volgende:
    iedere keer als ik refresh krijg ik een andere header te zien in IE6.... wat is het probleem?
    Vaag, hier werkt het namelijk niet
    Roonaandonderdag 5 juni 2008 @ 13:13
    cache headers toevoegen?
    Likkende_Lassiezaterdag 7 juni 2008 @ 21:10
    ok dit snap ik niet...

    Ik heb 2 tabellen:

    1 met de Orders
    en 1 met de Shipments

    De onderstaande query zou de orders moeten weergeven waarvan er nog niets in de tabel van de shipments staat.

    1
    2
    3
    SELECT shop_orders_orders.id AS id, shop_orders_orders.UID AS UID 
        FROM shop_orders_orders, shop_orders_shipments 
        WHERE (shop_orders_orders.id != shop_orders_shipments.orderID) GROUP BY `id` 


    maar t werkt niet! Als ik
    WHERE (shop_orders_orders.id != shop_orders_shipments.orderID) doe, dan zie ik alle orders...
    en als ik
    WHERE (shop_orders_orders.id = shop_orders_shipments.orderID) doe, dan zie ik de orders die wél in de shipment tabel staan.......
    HuHuzaterdag 7 juni 2008 @ 21:12
    Je moet iets doen als:

    1
    2
    3
    4
    5
    SELECT id
    FROM shop_orders_orders
    WHERE id NOT IN (
        SELECT id
        FROM shop_orders_shipments);
    Likkende_Lassiezaterdag 7 juni 2008 @ 21:13
    quote:
    Op zaterdag 7 juni 2008 21:12 schreef HuHu het volgende:
    Je moet iets doen als:
    [ code verwijderd ]


    Ik ga ff kijken, maar lees mn post nog even, want heb net wat meer toegelicht.
    HuHuzaterdag 7 juni 2008 @ 21:15
    1WHERE (shop_orders_orders.id != shop_orders_shipments.orderID)


    Dat werkt niet, want er is altijd een willekeurige combinatie te vinden van id's waarbij dit TRUE oplevert.

    1WHERE (shop_orders_orders.id = shop_orders_shipments.orderID)


    Dat geeft inderdaad resultaten, want er is maar 1 combinatie die zoiets kan opleveren. Of helemaal geen combinatie.
    Roonaanzaterdag 7 juni 2008 @ 21:15
    Werkt dit niet?

    SELECT orders.id FROM shop_order orders LEFT JOIN shop_order_shipments ship ON orders.id = ship.id WHERE ship.id IS NULL

    of

    SELECT orders.id FROM shop_order orders LEFT JOIN shop_order_shipments ship ON orders.id = ship.id HAVING COUNT(ship.id) = 0
    Likkende_Lassiezaterdag 7 juni 2008 @ 21:16
    De 1e optie van HuHu werkt! Maar vind het wel super raar dat het geen wat ik deed niet werkt, hoe komt dat?
    HuHuzaterdag 7 juni 2008 @ 21:17
    Kun je die "WHERE ship.id IS NULL" niet weglaten, omdat de LEFT JOIN geen resultaat geeft als er geen match is?
    Likkende_Lassiezaterdag 7 juni 2008 @ 21:19
    quote:
    Op zaterdag 7 juni 2008 21:15 schreef Roönaän het volgende:
    Werkt dit niet?

    SELECT orders.id FROM shop_order orders LEFT JOIN shop_order_shipments ship ON orders.id = ship.id WHERE ship.id IS NULL

    of

    SELECT orders.id FROM shop_order orders LEFT JOIN shop_order_shipments ship ON orders.id = ship.id HAVING COUNT(ship.id) = 0
    Je 1e optie heb ik getest, en die werkt ook

    SELECT orders.id, UID FROM shop_orders_orders orders LEFT JOIN shop_orders_shipments ship ON orders.id = ship.orderID WHERE ship.orderID IS NULL

    Maarja wat is logischer en of sneller? Zelf denk ik die left join.

    Bedankt voor alle snelle reacties iig!
    Lightzaterdag 7 juni 2008 @ 21:43
    quote:
    Op zaterdag 7 juni 2008 21:17 schreef HuHu het volgende:
    Kun je die "WHERE ship.id IS NULL" niet weglaten, omdat de LEFT JOIN geen resultaat geeft als er geen match is?
    Een LEFT JOIN is juist om ook null-resultaten te leveren. Als de ON-clause een match vindt dan wordt die geleverd, is er geen match dan wordt NULL gebruikt voor de velden van de rechtertable.
    Darkomenzondag 8 juni 2008 @ 11:13
    quote:
    Op donderdag 5 juni 2008 12:21 schreef Black-Hole het volgende:
    Voor mijn nieuwe forum ben ik op zoek gegaan naar een php-script voor een roterende/random header. Heb een leuk script gevonden en die werkt met IE7 en Firefox maar niet met IE6. Hoe is dat mogelijk? Het gaat om het volgende stuk code:
    [ code verwijderd ]

    Zelf heb ik bijzonder weinig verstand van php en jullie hulp is dus meer dan welkom. Het script is hier werkzaam te zien.
    png werkt bout in IE6.