abonnement Unibet Coolblue Bitvavo
  FOK!-Schrikkelbaas zaterdag 3 maart 2007 @ 17:44:56 #1
1972 Swetsenegger
Egocentrische Narcist
pi_46882346

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


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
  • pi_46883302
    Zoekmachines, o.a. google, kunnen sitemaps indexeren. http://www.sitemaps.org/

    Weet iemand een (php) tool die ik kan implementeren op mijn site om zo (semi) automatisch zo een sitemap te laten genereren?
    pi_46890144
    Een mogelijkheid blijkt http://www.xml-sitemaps.com
    pi_46896249
    Hmmm, een simpel probleem, waarvoor ik de oplossing zo niet vind.

    In een tabel in de database staat de tijd als unix timestamp (seconden sinds epoch) Hier wil ik een gewone leesbare datum van maken. Hoe?
    1
    2
    $tijd = 1144175989;
    print date("Y-m-d",$tijd); 

    Doet het dus niet. Wat is de truck???
    pi_46896252
    ordinaire terug vind post
    quote:
    Op zondag 4 maart 2007 01:38 schreef beerten het volgende:
    Hmmm, een simpel probleem, waarvoor ik de oplossing zo niet vind.

    In een tabel in de database staat de tijd als unix timestamp (seconden sinds epoch) Hier wil ik een gewone leesbare datum van maken. Hoe?
    [ code verwijderd ]

    Doet het dus niet. Wat is de truck???
    $tijd moet een integer zijn, het is nu toch een string?
    pi_46897066
    quote:
    Op zondag 4 maart 2007 01:38 schreef beerten het volgende:
    Hmmm, een simpel probleem, waarvoor ik de oplossing zo niet vind.

    In een tabel in de database staat de tijd als unix timestamp (seconden sinds epoch) Hier wil ik een gewone leesbare datum van maken. Hoe?
    [ code verwijderd ]

    Doet het dus niet. Wat is de truck???
    Dit output hier "2006-04-04", zou moeten werken?
    quote:
    Op zondag 4 maart 2007 01:38 schreef mschol het volgende:
    ordinaire terug vind post
    [..]

    $tijd moet een integer zijn, het is nu toch een string?
    Het is een integer. En zelfs als ik het quote en er een string van maak doet hij het alsnog goed. PHP is daar niet zo streng mee
    pi_46899630
    quote:
    Op zondag 4 maart 2007 01:38 schreef beerten het volgende:
    Doet het dus niet. Wat is de truck???
    "Doet het dus niet"

    Wat doet ie niet, en wat doet ie wel? Geeft ie een fout, geeft ie niets terug, geeft ie wel een datum maar de verkeerde, geeft ie de input terug?
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    pi_46901569
    Hmmm, het werkt uitstekend zelfs. Het probleem was dat ik een lege integer lade.
    De waarde was er een uit een database en ik had een klein typootje gemaakt.

    How stupid. Maar gezien het tijdstip en de gemoedstoestand...

    Thanks anyway
    pi_46913285
    laat maar

    [ Bericht 96% gewijzigd door broodmonkeh op 04-03-2007 19:56:30 ]
      zondag 4 maart 2007 @ 19:58:41 #10
    85514 ralfie
    !Yvan eht nioj
    pi_46916258
    quote:
    Op zondag 4 maart 2007 18:32 schreef broodmonkeh het volgende:
    laat maar
    http://nl3.php.net/static
    pi_46920254
    quote:
    Op zondag 4 maart 2007 19:58 schreef ralfie het volgende:

    [..]

    http://nl3.php.net/static
    thnx zal er naar kijken , maar ik heb het opgelost door gewoon die 2 functies in 1 functie te stoppen. Niet netjes maar toch
    pi_46931986
    Hey PHP kenners

    Ik zit met een vrij groot probleem.
    Voor school sta ik in mijn eentje voor een project (eind dit jaar klaar) om een website te maken waarbij men klachten kan invoeren + uitlezen, met een login scriptje e.d.

    Nu is het probleem: PHP interesseert mij/ken ik totaal niet.
    Het ligt niet in mijn straatje, en iets leren is voor mij is heel moeilijk als iets mij niet boeit zeg maar.

    Nu is mijn vraag: Waar/hoe kan ik beginnen?
    Een layout van een site maken is geen probleem met Dreamweaver bijv, alleen die scripts maken...
    Wat zijn goude sites die mij kunnen helpen?
    Let wel, ik ben écht een PHP-leek.

    Mijn dank is groot.
      FOK!-Schrikkelbaas maandag 5 maart 2007 @ 09:20:20 #13
    1972 Swetsenegger
    Egocentrische Narcist
    pi_46932099
    Zie de OP.
    pi_46932177
    What's wrong??

    Ik heb de volgende echo

    1echo $cnt . "-" . DATE_SEARCH_PERPAGE . "-" . ($cnt / DATE_SEARCH_PERPAGE);


    en dit geeft als resultaat op mijn lokale server (met 9 items)

    9-5-1.80

    maar op een online server krijg ik dit als output (met 10 items)

    10-5-20

    What's wrong? is iets in PHP op de server kapot??
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
    pi_46932225
    En hoe wordt $cnt dan wel niet gevuld?
    pi_46933083
    $cnt = een mysql_result die altijd 0 of hoger is...
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
      maandag 5 maart 2007 @ 11:33:35 #17
    12880 CraZaay
    prettig gestoord
    pi_46934889
    tvphp
    pi_46935518
    quote:
    Op maandag 5 maart 2007 10:18 schreef Chandler het volgende:
    $cnt = een mysql_result die altijd 0 of hoger is...
    En op je server is dat altijd 1.0 hoger?
    pi_46937621
    hoezo? Geqxon? ik snap je vraag niet!
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
      maandag 5 maart 2007 @ 14:27:49 #20
    85514 ralfie
    !Yvan eht nioj
    pi_46940421
    quote:
    Op maandag 5 maart 2007 13:03 schreef Chandler het volgende:
    hoezo? Geqxon? ik snap je vraag niet!
    post is wat meer gegevens joh, hiermee is het alleen maar gissen...
      maandag 5 maart 2007 @ 15:42:25 #21
    120139 freiss
    Hertog Jan :9~
    pi_46942997
    quote:
    Op maandag 5 maart 2007 14:27 schreef ralfie het volgende:

    [..]

    post is wat meer gegevens joh, hiermee is het alleen maar gissen...
    Ik denk dat $cnt voor count staat . Het probleem is dus dat als $cnt 9 is PHP de deling wel goed uitvoert, maar dat als $cnt 10 is PHP voor 10/5 opeens 20 als waarde geeft.

    Denk ik dan.
    HJ 14-punt-gift.
    Lijst met rukmateriaal!
    pi_46947875
    $cnt = aantal items in de database
    DATE_SEARCH_PERPAGE = het aantal items per pagina

    oftwel

    10/2
    20/2
    5/2

    etc
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
      maandag 5 maart 2007 @ 17:50:38 #23
    85514 ralfie
    !Yvan eht nioj
    pi_46948218
    Nee, dat snap ik wel, maar wat dacht je van server os, php versie?
    pi_46949056
    quote:
    Op zaterdag 3 maart 2007 17:41 schreef Swetsenegger het volgende:

    [..]

    Magic quotes zal waarschijnlijk aanstaan.
    Vanavond ga ik naar een cabaret voorstellingen maar ik zal morgen ff kijken wat dat ding precies doet en of het dan beter werkt.

    Het liefste wil ik gewoon 1 malig addslashes en niet later nog eens overal stripslashes uitvoeren, tenzij het de veiligheid in de weg staat, veiligheid boven alles natuurlijk.
    -
    pi_46949178
    Doe eens een var_dump() van $cnt, DATE_SEARCH_PERPAGE en $cnt/DATE_SEARCH_PERPAGE. Is DATE_SEARCH_PERPAGE soms gelijk aan .5 in plaats van 5?
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
      FOK!-Schrikkelbaas maandag 5 maart 2007 @ 18:21:42 #26
    1972 Swetsenegger
    Egocentrische Narcist
    pi_46949349
    quote:
    Op maandag 5 maart 2007 18:13 schreef splendor het volgende:

    [..]

    Vanavond ga ik naar een cabaret voorstellingen maar ik zal morgen ff kijken wat dat ding precies doet en of het dan beter werkt.

    Het liefste wil ik gewoon 1 malig addslashes en niet later nog eens overal stripslashes uitvoeren, tenzij het de veiligheid in de weg staat, veiligheid boven alles natuurlijk.
    *zucht*, zoals gezegd alles door strip_slashes deep trekken ALS magiq quotes aanstaan en met mysql_real_escape_string naar db schrijven. Dan kan je vervolgens zonder probleem de data UIT database presenteren zonder strip_slashes.
    pi_46949538
    quote:
    Op maandag 5 maart 2007 18:21 schreef Swetsenegger het volgende:

    [..]

    *zucht*, zoals gezegd alles door strip_slashes deep trekken ALS magiq quotes aanstaan en met mysql_real_escape_string naar db schrijven. Dan kan je vervolgens zonder probleem de data UIT database presenteren zonder strip_slashes.
    Het is goed bedoeld dat weet ik wel. Maar ik doe niet zomaar iets omdat het gezegd wordt in dit topic, ik wil graag weten waarom het nodig is, en hoe het allemaal werkt.
    Dus morgen eerst even de php.net beschrijving van die functies lezen en kijken wat de voor en nadelen zijn.
    -
    pi_46949673
    quote:
    Op maandag 5 maart 2007 18:13 schreef splendor het volgende:
    Het liefste wil ik gewoon 1 malig addslashes en niet later nog eens overal stripslashes uitvoeren, tenzij het de veiligheid in de weg staat, veiligheid boven alles natuurlijk. :)
    Je moet encoding alleen gebruiken waar het nodig is. Het is niet handig om standaard alle input door addslashes() heen te halen (zoals magic quotes doet) omdat het misschien wel eens in een SQL statement gebruikt gaat worden.

    String in een SQL statement? mysql_real_escpae_string() of addslashes()
    1$sql = "SELECT foo FROM bar WHERE baz = '". mysql_real_escpae_string($baz) ."'";

    String als parameter in een url? urlencode()
    1$url = 'http://foo.net/bar.php?baz='.urlencode($baz);

    String in een stuk html? htmlentities() of htmlspecialchars()
    1$link = '<a href="'.htmlentities($url.'&bazz='.urlencode($bazz)).'">Foo</a>';
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
      maandag 5 maart 2007 @ 20:17:24 #29
    51748 H4ze
    wait...what?
    pi_46953761
    Ik heb sinds kort de kracht van object georienteerd programmeren in PHP ontdekt Ik heb al wel aardig wat ervaring met OOP in Java, maar ik dacht altijd dat 't voor PHP een beetje doelloos was. Maar zeker voor de wat grotere projecten is het zeer geschikt
    *BURP*
    pi_46956662
    quote:
    Op maandag 5 maart 2007 20:17 schreef H4ze het volgende:
    Ik heb sinds kort de kracht van object georienteerd programmeren in PHP ontdekt Ik heb al wel aardig wat ervaring met OOP in Java, maar ik dacht altijd dat 't voor PHP een beetje doelloos was. Maar zeker voor de wat grotere projecten is het zeer geschikt
    ik heb voor school wel eens met OOP moeten werken, maar i.p.v. overzichtelijker werd het alleen maar onoverzichtelijker, je had een functie die 20x naar iets anders verwees voordat hij daadwerkelijk de functie aanriep
      maandag 5 maart 2007 @ 21:50:18 #31
    51748 H4ze
    wait...what?
    pi_46957628
    quote:
    Op maandag 5 maart 2007 21:28 schreef mschol het volgende:

    [..]

    ik heb voor school wel eens met OOP moeten werken, maar i.p.v. overzichtelijker werd het alleen maar onoverzichtelijker, je had een functie die 20x naar iets anders verwees voordat hij daadwerkelijk de functie aanriep
    Dan heb je 't niet goed uitgedacht Ik ben op m'n stage op 't moment bezig met een groot PHP project. Alle modules die ik ontwikkel, werk ik eerst uit in UML. Met een goed ontwerp kun je zeer efficient OO programmeren.
    *BURP*
    pi_46969637
    Gaat er nog iemand een artikel schrijven over OOP in PHP?
    pi_46969961
    Ik heb weer een leuke:

    Een simpele query. Tabel met vier kolommen, eerst gesorteerd op A, daarna op B en daarna op C. D is een extra kolom, met een los attribuut. Nu hoeft er niet op D gestorteerd te worden, tenzij D lager dan 16 is. Dan moet D helemaal bovenaan de searchresults komen.

    In PHP is dat op te vangen door twee query's te gebruiken, maar kan dit niet gewoon al direct in de query zelf?
    pi_46970050
    quote:
    Op dinsdag 6 maart 2007 11:47 schreef super-muffin het volgende:
    Gaat er nog iemand een artikel schrijven over OOP in PHP?
    Daar zijn volgens mij al genoeg artikelen over geschreven

    Maar het is echt ontzettend handig, dat OOP. Voordat ik voor FOK! dev-te maakte ik er nauwelijks gebruik van, maar zeker met een site als FOK! moet je haast wel OOP gebruiken om onderdelen soepel met elkaar te laten samenwerken. En dat maakt het programmeren heerlijk, je hoeft niet na te denken over allerlei functies die met elkaar moeten samenwerken, fantastisch.

    Misschien dat ik nog wel eens een stukje op de dev-weblog kan schrijven
    pi_46970266
    quote:
    Op dinsdag 6 maart 2007 11:57 schreef Geqxon het volgende:
    Ik heb weer een leuke:

    Een simpele query. Tabel met vier kolommen, eerst gesorteerd op A, daarna op B en daarna op C. D is een extra kolom, met een los attribuut. Nu hoeft er niet op D gestorteerd te worden, tenzij D lager dan 16 is. Dan moet D helemaal bovenaan de searchresults komen.

    In PHP is dat op te vangen door twee query's te gebruiken, maar kan dit niet gewoon al direct in de query zelf?
    Je zou kunnen proberen om met IF in je query te gaan werken. Dus IF d < 16 THEN ORDER BY d ELSE ORDER BY a, b, c END IF. Ik heb geen kant en klare query bij de hand, maar ik denk dat je in die richting moet zoeken
    Daarnaast weet ik eigenlijk niet precies hoeveel load dat op je mysql-server geeft, dus het zou kunnen zijn dat het sneller is om het in php te verwerken
    pi_46970775
    quote:
    Op maandag 5 maart 2007 21:50 schreef H4ze het volgende:

    [..]

    Dan heb je 't niet goed uitgedacht Ik ben op m'n stage op 't moment bezig met een groot PHP project. Alle modules die ik ontwikkel, werk ik eerst uit in UML. Met een goed ontwerp kun je zeer efficient OO programmeren.
    Kijk in dat kader ook even naar Zend Framework.
    pi_46970836
    quote:
    Op dinsdag 6 maart 2007 12:09 schreef Hmail het volgende:

    [..]

    Je zou kunnen proberen om met IF in je query te gaan werken. Dus IF d < 16 THEN ORDER BY d ELSE ORDER BY a, b, c END IF. Ik heb geen kant en klare query bij de hand, maar ik denk dat je in die richting moet zoeken
    Daarnaast weet ik eigenlijk niet precies hoeveel load dat op je mysql-server geeft, dus het zou kunnen zijn dat het sneller is om het in php te verwerken
    Idd, iets als:

    SELECT IF(d < 16, 0, 1) as d_low, a, b, c FROM TABLE ORDER BY d_low, a, b, c, d
    pi_46971113
    quote:
    Op dinsdag 6 maart 2007 12:28 schreef Roonaan het volgende:

    [..]

    Idd, iets als:

    SELECT IF(d < 16, 0, 1) as d_low, a, b, c FROM TABLE ORDER BY d_low, a, b, c, d
    hehe, you beat me Ik vond mijn query nog aardig gevonden
    pi_46972142
    Maar die (d < 16), op welke D slaat dat? Want in mijn tabel zijn er 1600 records, het is niet alsof ik maar een enkel record tevoorschijn tover
    pi_46973104
    quote:
    Op dinsdag 6 maart 2007 13:15 schreef Geqxon het volgende:
    Maar die (d < 16), op welke D slaat dat? Want in mijn tabel zijn er 1600 records, het is niet alsof ik maar een enkel record tevoorschijn tover
    Die d is een veld van je record.
    pi_46973942
    Ik krijg het gevoel dat ik het niet 100% begrijp. Zelf wil ik het in de trant van:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    +-------+-------+-------+-------+
    |   A   |   B   |   C   |   D   |
    +-------+-------+-------+-------+
    |   D**   |   I**   |   2**   |   4   |
    |   A**   |   E**   |   1**   |   120   |
    |   P**   |   Q**   |   1**   |   133   |
    |   P**   |   R**   |   2**   |   159   |
    |   Z**   |   H**   |   1**   |   141   |
    +-------+-------+-------+-------+


    Dus sorteren op A, gevolgd door B en daarna C. Niet op D sorteren, tenzij deze lager dan 16 is, dan moet deze bovenaan de resultaten. Werkt deze IF statement niet per rij, in plaats van in het geheel?
      dinsdag 6 maart 2007 @ 15:01:04 #42
    85514 ralfie
    !Yvan eht nioj
    pi_46975968
    1IF (d <16,0,1) AS d_low
    Dit betekent simpelweg dat als de 'd' van die rij kleiner is als 16, dat d_low dan 0 wordt, anders wordt die 1. Door nu eerst te sorteren op deze uitkomst, krijg je eerst alle rijen waar 'd' kleiner is als 16, en daarna alle rijen waar 'd' groter is als 16. En dat was dacht ik wat je wilde

    1SELECT *,IF(d<16,0,1) AS d_low FROM table ORDER BY d_low,A,B,C


    geeft dan

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    +------+------+------+------+-------+
    | A    | B    | C    | D    | d_low |
    +------+------+------+------+-------+
    | D**  | I**  | 2**  |    4 |   0   |
    | A**  | E**  | 1**  |  120 |   1   |
    | P**  | Q**  | 1**  |  133 |   1   |
    | P**  | R**  | 2**  |  159 |   1   |
    | Z**  | H**  | 1**  |  141 |   1   |
    +------+------+------+------+-------+
    5 rows in set (0.00 sec)


    [ Bericht 12% gewijzigd door ralfie op 06-03-2007 15:06:28 ]
    pi_46976871
    Dat is duidelijke praat, hij maakt simpelweg tijdelijk een extra kolom aan ,die 0 is if true en 1 if false, en sorteert daar op. Werkt prima, bedankt!
    pi_46977454
    quote:
    Op maandag 5 maart 2007 21:50 schreef H4ze het volgende:

    [..]

    Dan heb je 't niet goed uitgedacht Ik ben op m'n stage op 't moment bezig met een groot PHP project. Alle modules die ik ontwikkel, werk ik eerst uit in UML. Met een goed ontwerp kun je zeer efficient OO programmeren.
    ik heb het uitgedacht zoals het moest van de docenten..
      FOK!-Schrikkelbaas dinsdag 6 maart 2007 @ 15:59:12 #45
    1972 Swetsenegger
    Egocentrische Narcist
    pi_46978259
    Query vraagje.
    Als ik nu een tabel heb met een veld initialen en een veld achternaam. En die wil ik vervolgens selecteren als naam.

    SELECT (intialen, achternaam) AS naam FROM tabel

    werkt in ieder geval niet
    pi_46978505
    SELECT CONCAT(initialen, " ", achternaam) AS naam FROM tabel.

    Waar laat je overigens je tussenvoegsel?

    Note: is het construeren van een naamsweergave uit onderdelen een data niveau kwestie of een template kwestie?
      FOK!-Schrikkelbaas dinsdag 6 maart 2007 @ 16:24:02 #47
    1972 Swetsenegger
    Egocentrische Narcist
    pi_46979237
    quote:
    Op dinsdag 6 maart 2007 16:05 schreef Roönaän het volgende:
    SELECT CONCAT(initialen, " ", achternaam) AS naam FROM tabel.
    Bedankt! Helaas werkt dit niet met Access, maar wel met de & operator
    quote:
    Waar laat je overigens je tussenvoegsel?
    Hoe bedoel je?
    quote:
    Note: is het construeren van een naamsweergave uit onderdelen een data niveau kwestie of een template kwestie?
    eh... beide
      dinsdag 6 maart 2007 @ 16:58:21 #48
    52200 ViPeRII
    It's a good day to die
    pi_46980609
    Hi,

    Heb een probleem met een functie:
    de input komt uit een textarea en is b.v.:
    Home
    *test
    +menu
    -tje
    Contact
    Extra

    Alles met enters er achter n naar ik aanneem.

    Nu heb ik hier een functie, die code moet opbouwen voor een menu:
    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
    <?php
    function make_menu_data_2($data)
    {
       $menus1 = explode("n", $data);
       $menus = str_replace("n","",$menus1);
       print_r($menus);
       $aantal = count($menus);
       $menu = "var MENU_ITEMS = [n";
       for ($i = 0; $i < $aantal; $i++) 
       {      
       $menu .= "['";

       if ($menus[$i][0] == "*")
       {
       $menu .= str_replace("*","",$menus[$i]) . "', null, null,n";
       }
       else
       {
       if ($menus[$i][0] == "+")
       {
       $menus[$i] = str_replace("+", "", $menus[$i]);
       $menu .= $menus[$i] . "','page=" . str_replace(" ","",$menus[$i]) . "'],n";
                         }
       else
       if ($menus[$i][0] == "-")
       {
       $menus[$i] = str_replace("-", "", $menus[$i]);
       $menu .= $menus[$i] . "','page=" . str_replace(" ","",$menus[$i]) . "']n],n";
                         }
       else
       {
       $menu .= $menus[$i] . "','page=" . str_replace(" ","",$menus[$i]);
       $menu .= "'],n";
       }
                }
      }
    $menu .= "n];";

    $code = $menu;
    return $code;
    }
    ?>

    Volgens mij zou de output:
    var MENU_ITEMS = [
    ['Home','page=Home'],
    ['test', null, null,
    ['menu','page=menu'],
    ['tje','page=tje']
    ],
    ['Contact','page=Contact'],
    ['Extra','page=Extra'],

    ];

    moeten zijn (zoals ik het ook hebben moet, maar hij maakt er:
    var MENU_ITEMS = [
    ['Home
    ','page=Home
    '],
    ['test
    ', null, null,
    ['menu
    ','page=menu
    '],
    ['tje
    ','page=tje
    ']
    ],
    ['Contact
    ','page=Contact
    '],
    ['Extra','page=Extra'],

    ];

    van. zie iemand de fout in mijn code?

    Als hij er uit komt als het 2e voorbeeld, doet mijn code het niet.
    Het is belangrijk dat het er uit komt als: ['Extra','page=Extra'],
    en niet als
    ['Extra',
    'page=Extra'],

    Hopelijk heeft iemand een idee
    -- ViPeRII --
      FOK!-Schrikkelbaas dinsdag 6 maart 2007 @ 17:12:26 #49
    1972 Swetsenegger
    Egocentrische Narcist
    pi_46981153
    onder windows is \r\n
      dinsdag 6 maart 2007 @ 17:20:22 #50
    128663 h.henkie
    Ik ontken alles
    pi_46981464
    Hoi
    Ik heb het volgende. Op deze pagina heb ik een upload scriptje staan met de volgende 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
    53
    54
    55
    56
    57
    58
    <?php
    <form name="upload formulier" enctype="multipart/form-data" method="post" action=" echo $_SERVER['PHP_SELF']; ">
      <
    input type="file" name="source_file">
      <
    br>
      <
    input type="submit" name="submit" value="Submit">
    </
    form><br />

      

    error_reporting(E_ALL);  

    if(isset(
    $_POST['submit'])) {  
        
    $size $_FILES['source_file']['size'];// / 1024 / 1024   om naar MB te gaan. 
        
    $size round($size2);  
        echo 
    "Het volgende bestand wordt geupload:<br />"
        echo 
    "Naam: '" $_FILES['source_file']['name'] . "'<br />"
        echo 
    "Grootte: '" $size " Bytes'<br />"
        echo 
    "<b>tmp_name:</b> '" $_FILES['source_file']['tmp_name'] . "'<br />"
        echo 
    "de upload wordt verwerkt...<br />"

        
    //Variabelen definiëren
        
    $ftp_server "ftp.edek.nl";  
        
    $ftp_user_name "hromiz";  
        
    $ftp_user_pass "XXXXXX";
        
    $source_file $_FILES['source_file']['tmp_name'];  
        
    $destination_file 'rooster/bestand/'.$_FILES['source_file']['name'];  
        echo 
    $destination_file."<br>"

        
    //Maak een basis connectie aan
        
    $conn_id ftp_connect($ftp_server);  
        
    ftp_pasv($conn_id,TRUE);  

        
    //Meldt je aan met een gebruikersnaam en wachtwoord
        
    $login_result ftp_login($conn_id$ftp_user_name$ftp_user_pass);  

         
    //Controleer de verbinding
        
    if ((!$conn_id) || (!$login_result)) {  
            echo 
    "FTP connectie is mislukt!<br />";  
            echo 
    "Probeerde naar '" $ftp_server "' te verbinden met de gebruiker '" $ftp_user_name "'<br />";  
            exit;  
        } else {  
            echo 
    "Verbonden met '" $ftp_server "', als gebruiker '" $ftp_user_name "'<br />";  
        }  
       
     
    //Upload een bestand
        
    $upload ftp_put($conn_id$destination_file$source_fileFTP_BINARY);  
     
     
    //Controleer de upload status
        
    if (!$upload) {  
            echo 
    "FTP upload is mislukt!<br />";  
        } else {  
            echo 
    "<b>Geupload: '" $source_file "' naar '" $ftp_server "' als '" $destination_file "'</b><br />";  
        }  
        
    //Sluit de FTP stream
        
    ftp_close($conn_id);  
    }  
    ?>


    Ik krijg bij de link de fout melding:
    quote:
    Warning: ftp_put() [function.ftp-put]: rooster/bestand/license.txt: The system cannot find the path specified. in c:domainsedek.nlwwwrootrooster1.php on line 46

    Als ik dit script op mijn prive webserver zet werkt het wel. (ook van buitenaf)

    Wie weet waar de fout zit? Voor mijn gevoel heeft het iets met rechten oid te maken.

    gegroet
    "Een kat heeft 40 miljoen haren: 5 miljoen op de rug, 10 miljoen op de
    buik, en 25 miljoen op uw bankstel" -- Midas Dekkers
    pi_46981620
    quote:
    Op dinsdag 6 maart 2007 16:24 schreef Swetsenegger het volgende:


    Hoe bedoel je?
    [..]

    eh... beide
    Hans van den Berg wordt in jouw voorbeeld "H. Berg"
      FOK!-Schrikkelbaas dinsdag 6 maart 2007 @ 17:25:31 #52
    1972 Swetsenegger
    Egocentrische Narcist
    pi_46981693
    quote:
    Op dinsdag 6 maart 2007 17:24 schreef Geqxon het volgende:

    [..]

    Hans van den Berg wordt in jouw voorbeeld "H. Berg"
    Ow ja, die kan ik er eventueel nog bij pakken. Maar niet van belang voor de toepassing.
      dinsdag 6 maart 2007 @ 17:32:31 #53
    52200 ViPeRII
    It's a good day to die
    pi_46982014
    @swetsenecker...

    Dus ik moet filteren op rn ?
    En wat bedoel je onder windows? De post data is onder een windows client anders dan onder een linux client of bedoel je server sided?
    -- ViPeRII --
      dinsdag 6 maart 2007 @ 20:56:30 #54
    51748 H4ze
    wait...what?
    pi_46990441
    quote:
    Op dinsdag 6 maart 2007 15:40 schreef mschol het volgende:

    [..]

    ik heb het uitgedacht zoals het moest van de docenten..
    En dat was gewoon gaan zitten en coden zeker? Serieus, een goed ontwerp is het halve werk.
    *BURP*
      woensdag 7 maart 2007 @ 09:17:31 #55
    21410 Fliepke
    Serieuze waarheid
    pi_47005700
    Ik heb wat items ingevoerd in een database en er is ook allemaal een tijd aan gekoppeld (0:00), maar ze moeten allemaal een tijd krijgen van 1 minuut later (0:01). Hoe maak ik een goede update query, zodat ze allemaal 60 unixtijdjes erbij krijgen?

    effe in pseudo code
    UPDATE `items`
    SET `start_date` +60

    Zoiets, maar hoe doe ik dat in het echt?
    pi_47005838
    UPDATE items SET start_date = start_date + 60
    Werkt dat niet?

    [ Bericht 0% gewijzigd door Hmail op 07-03-2007 09:33:31 ]
    pi_47006525
    quote:
    Op woensdag 7 maart 2007 09:23 schreef Hmail het volgende:
    UPDATE items SET start_date = start_date + 60
    Werkt dat niet?
    Zou moeten werken, heeft het hier zojuist prima gedaan
      woensdag 7 maart 2007 @ 10:05:01 #58
    21410 Fliepke
    Serieuze waarheid
    pi_47006950
    Zo simpel
    Jezus, ik durfde het al niet te proberen
    pi_47007628
    Twee vraagjes:

    Ik wil net zo tof als Fok! niet meer met index.php?page=25, maar met "www.website.tld/index/25". Kan dit met enkel PHP, of heb ik daar ook een .htaccess aanpassing voor nodig?
    pi_47007901
    Dat kan met htaccess:

    1
    2
    RewriteEngine On
    RewriteRule ^/index/([0-9]+)$ http://www.website.tld/index.php?page=$1.php

    Zo iets.
    pi_47008166
    En nu we toch met .htaccess bezig zijn :
    Ik wil de .htaccess bewerken via een web form, dus daar schrijf ik een functie voor:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    function writeHtaccess($file, $content, $permission) {
        if(
    file_exists($file) || is_writable($file)) {
            
    $htaccess = fopen($file, $permission) or die ("kan bestand niet openen");
            
    fwrite($file, $concent);
            
    fclose($htaccess);
        } else {
            echo
    'het bestand <strong>' . $file . '</strong> kan niet gevonden of bewerkt worden!';
        }
    }

    writeHtaccess(".htaccess", "boeh", "w+");
    ?>

    Maar ik krijg een foutmelding op lijn 5, invalid argument voor frwrite. Maar volgens de specs op php.net klopt het wel. En het .htacces (of een .txt bestand) word wel geleegd, er staat na 1 keer toepassen van de functie niks meer in.
      woensdag 7 maart 2007 @ 10:55:56 #62
    46383 Tiemie
    sowieso wel!
    pi_47008364
    verander het eens naar fwrite($htaccess, $content);

    je write namelijk naar een string waar de bestandsnaam instaat ipv naar de resource-handle
    pi_47008533

    stom van me. Ach, het is nog vroeg
    pi_47018162
    quote:
    Op woensdag 7 maart 2007 10:40 schreef super-muffin het volgende:
    Dat kan met htaccess:
    [ code verwijderd ]

    Zo iets.
    Bedankt! En dan nu mijn tweede vraag:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    $expires
    = $date - time();
    if (
    $expires > 0){
        
    $exhours = str_pad(floor($expires / 3600), 2, "0", STR_PAD_LEFT);
        
    $expires = $expires % 3600;
        
    $exminutes = str_pad(floor($expires / 60), 2, "0", STR_PAD_LEFT);
        
    $expires = $expires % 60;
        
    $exseconds = str_pad($expires, 2, "0", STR_PAD_LEFT);
        
    $expires = $exhours.":".$exminutes.":".$exseconds;
    }
    else {
        
    $expires = "<b>Expired</b>";
    }
    ?>


    Goed, dit pakt het aantal seconden tot en met $date, en laat dat keurig in een 23:59:59 (uur, minuut, seconde) formaat zien. Imho omslachtig.

    Heeft PHP hier niet één of andere hippe functie voor? Een variant op date is eigenlijk wat ik zoek. Alvast bedankt
      woensdag 7 maart 2007 @ 16:11:00 #65
    12880 CraZaay
    prettig gestoord
    pi_47019139
    strftime() ?
    pi_47020000
    Ik zoek eerder een direct manier om het aantal minuten / seconden / uren die binnen een X aantal seconden de extracten. strftime doet meer hetzelfde als date.
      woensdag 7 maart 2007 @ 16:55:09 #67
    12880 CraZaay
    prettig gestoord
    pi_47020850
    Ik bedoelde overigens strtotime().
      FOK!-Schrikkelbaas woensdag 7 maart 2007 @ 18:11:02 #68
    1972 Swetsenegger
    Egocentrische Narcist
    pi_47023393
    quote:
    Op dinsdag 6 maart 2007 17:32 schreef ViPeRII het volgende:
    @swetsenecker...

    Dus ik moet filteren op rn ?
    En wat bedoel je onder windows? De post data is onder een windows client anders dan onder een linux client of bedoel je server sided?
    Newlines verschillen per OS
    Onder windows is het \r\n, onder linux n

    \r\n is het veiligst.
      woensdag 7 maart 2007 @ 20:14:25 #69
    85514 ralfie
    !Yvan eht nioj
    pi_47028218
    quote:
    Op dinsdag 6 maart 2007 17:32 schreef ViPeRII het volgende:
    @swetsenecker...

    Dus ik moet filteren op rn ?
    En wat bedoel je onder windows? De post data is onder een windows client anders dan onder een linux client of bedoel je server sided?
    makkelijkste is als je explode op "\r\n", dan worden al die newlines meteen gefiltert uit je input,heb je nergens meer last van, bijv

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <?php
    function make_menu_data_2($data)
    {
       
    $menus explode("\r\n"$data);
       
    $out="var MENU_ITEMS = [\n";

       foreach(
    $menus as $x) {
          
    $out.="['";
          
    $y=substr($x,1);
          switch(
    $x[0]) {
          case 
    '*':
            
    $out.="$y', null, null ";
            break;
          case 
    '+':
            
    $z=str_replace(' ','',$y);
            
    $out.="$y', 'page=$z' ";
            break;
          case 
    '-':
            
    $z=str_replace(' ','',$y);
            
    $out.="$y', 'page=$z' ],\n";
            break;
          default:
            
    $z=str_replace(' ','',$x);
            
    $out.="$x', 'page=$z' ";
          }
          
    $out.="],\n";
       }
       return 
    "$out\n];";
    }
    ?>
      vrijdag 9 maart 2007 @ 11:12:15 #70
    128663 h.henkie
    Ik ontken alles
    pi_47085024
    quote:
    Op dinsdag 6 maart 2007 17:20 schreef h.henkie het volgende:
    Hoi
    Ik heb het volgende. Op deze pagina heb ik een upload scriptje staan met de volgende code:
    ...
    Probleem zelf opgelost. Stond een haakje verkeerd.
    "Een kat heeft 40 miljoen haren: 5 miljoen op de rug, 10 miljoen op de
    buik, en 25 miljoen op uw bankstel" -- Midas Dekkers
    pi_47097574
    Hoe kun je met mysql in een subquery meerdere dingen selecteren?
    Bijvoorbeeld:
    SELECT *, (SELECT a,b FROM efg WHERE id =1) AS (a,b) FROM abc WHERE id = 1;
    Dit werkt niet, maar hoe moet het wel?
    -
    pi_47098073
    Je kan toch een join gebruiken hiervoor?
    pi_47098271
    Ik zal de hele query even geven.. het probleem is namelijk dat ik al een JOIN erin heb zitten mét een GROUP BY.. dus nóg een join zou dan zijn eigen GROUP BY moeten hebben

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    SELECT t . * ,
    u.name AS author,
    COUNT( p.id ) AS cntPosts, (
     SELECT lastUpdate
     FROM r2_posts
     WHERE topicID = t.id
     ORDER BY lastUpdate
     LIMIT 0 , 1
    ) AS lastUpdate
    FROM r2_topics t
    LEFT JOIN r2_posts p ON p.topicID = t.id
    LEFT JOIN si_users u ON u.id = t.userID
    WHERE t.deleted =0
    AND t.forumID =2
    GROUP BY t.id
    ORDER BY lastUpdate


    Hij moet dus behalve lastUpdate nog een koppeling maken naar tabel users aan de hand van posts.userID = users.id en daar dus de naam van de persoon die de laatste post deed ophalen.
    -
    pi_47102738
    quote:
    Op vrijdag 9 maart 2007 17:17 schreef splendor het volgende:
    Ik zal de hele query even geven.. het probleem is namelijk dat ik al een JOIN erin heb zitten mét een GROUP BY.. dus nóg een join zou dan zijn eigen GROUP BY moeten hebben
    [ code verwijderd ]

    Hij moet dus behalve lastUpdate nog een koppeling maken naar tabel users aan de hand van posts.userID = users.id en daar dus de naam van de persoon die de laatste post deed ophalen.
    Het moet weer ingewikkeld hoor, voor onze mister Splendor. Je moet gewoon een tweede subquery maken, je kan namlijk niet meerdere resultaten in 1 subquery terug krijgen. Lees dit namelijk maar eens:
    quote:
    A scalar subquery is a simple operand, and you can use it almost anywhere a single column value or literal is legal, and you can expect it to have those characteristics that all operands have: a data type, a length, an indication whether it can be NULL, and so on.
    Bron: mysql.com (http://dev.mysql.com/doc/refman/5.0/en/scalar-subqueries.html)
    World of Warcraft RP spelers opgelet!
    Hier is ie dan, de enige echte..
    Phantasia WoW RP Profiler Site!
    pi_47117911
    klein vraagje:
    ik heb een kleine template parser:
    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
    <?php

    class templateParser
    {
        var
    $output;
        function
    templateParser($templateFile='default_template.htm')
        {
          (
    file_exists($templateFile))?$this->output=file_get_contents($templateFile):die('Error:Template file '.$templateFile.' not found');
        }

        function
    parseTemplate($tags=array())
        {
              if(
    count($tags)>0)
              {
                   foreach(
    $tags as $tag=>$data)
                   {
                   
    $data=(file_exists($data))?$this->parseFile($data):$data;
                   
    $this->output=str_replace('{'.$tag.'}',$data,$this->output);
                   }
              }
              else
              {
                   die(
    'Error: No tags were provided for replacement');
              }
        }
        
        function
    parseFile($file)
        {
              
    ob_start();
              include(
    $file);
              
    $content=ob_get_contents();
              
    ob_end_clean();
              return
    $content;
        }

        function
    display()
        {
              return
    $this->output;
        }
    }
    ?>


    die roep ik alsvolgt aan:
    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
    <?php


    // include the class

    require_once('templateparser.php');
    require_once(
    '../includes/functions.inc');
    $con = mysql_connect($cfg['DB_host'],$cfg['DB_user'],$cfg['DB_pass']) or die(mysql_error());
    mysql_select_db($cfg['DB_DB'],$con) or die(mysql_error());

    // instantiate a new template Parser object
    $tp=&new templateParser('index.html');

    // define parameters for the class
    $tags=array(
    'title'=>'You are seeing the template parser class in action!',
    'sitename'=>$_SERVER['HTTP_HOST'],
    'utility'=>'utility.php',
    'maincontent'=>'content.php',
    'footer'=>'footer.php',
    'navGlobalbar'=>'navGlobalBar.php',
    'navSubBar'=>'navSubBar.php',
    'SiteInfo'=>'<a href="#">About Us</a> | <a href="#">Site Map</a> | <a href="#">Privacy Policy</a> | <a href="#">Contact Us</a> | ©2003 Company Name ');

    // parse template file

    $tp->parseTemplate($tags);

    // display generated page

    echo $tp->display();
    ?>

    nu woerdt er in navGlobalBar.php de variable $nums aangemaakt, echter heb ik die variable ook nodig in navSubBar.php
    is het mogelijk om die variable beschikbaar te maken voor dat 2de bestand?

    anders moet ik een rits querie's opnieuw uitvoeren in het 2de bestand, das performance techniesch niet echt handig
    pi_47117927
    quote:
    Op vrijdag 9 maart 2007 19:32 schreef Stijn1983 het volgende:

    [..]

    Het moet weer ingewikkeld hoor, voor onze mister Splendor. Je moet gewoon een tweede subquery maken, je kan namlijk niet meerdere resultaten in 1 subquery terug krijgen. Lees dit namelijk maar eens:
    [..]
    Jij ook hier.
    Maar waarom kan het dan wel met een subquery in een WHERE? Of is dit gewoon iets wat in SQL eventueel wel kan maar in MySQL (nog) niet?

    Overigens is het niet zo'n ramp.. ik wilde in 1 script alle topics lezen, post optellen van dat topic, laatste post de datum weergeven en ook nog de topicstarter van de laatste post uit de user tabel lezen.
    Nu laat ik de user gewoon weg, heb alleen de datum
    -
      zaterdag 10 maart 2007 @ 13:59:11 #77
    65471 SkaterSam
    Lurking Galore
    pi_47122807
    Ik ben een database class aan het schrijven, om te kijken in hoeverre ik database gerelateerde code efficienter kan inzetten in mijn code. Nu heb ik daarbij de volgende vraag: hoeveel functies heb je minimaal nodig eigenlijk ? Ik heb nu de volgende:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    class DBclass {
      function 
    dbConnect($host$user$pass) {}
      function 
    dbSelect($selectedDB) {}
      function 
    checkConnection() {} // Controleer de opgezette verbinding met de DB
      
    function query($query) {}
      function 
    checkQueryResource($resource) {} // Controleer de result van de query
      
    function fetch($resource) {} // mysql_fetch_assoc()
      
    function result($this->queryResource) {} // mysql_result()
      
    function dbClose() {}
      function 
    checkError() {} // Controleer en output de gegeven errors
    }
    ?>

    Ben ik nog belangrijke functies vergeten, of ben ik juist te ver doorgeschoten ?

    edit [18.27]: Nevermind de tweede vraag...

    [ Bericht 6% gewijzigd door SkaterSam op 10-03-2007 18:27:25 ]
    Let's make life easy
    Typo's are the demon spawn from hell !
      zaterdag 10 maart 2007 @ 16:56:29 #78
    65471 SkaterSam
    Lurking Galore
    pi_47127163
    edit: laat maar... ik was een beetje dom
    Let's make life easy
    Typo's are the demon spawn from hell !
      zaterdag 10 maart 2007 @ 16:58:09 #79
    46383 Tiemie
    sowieso wel!
    pi_47127201
    haal je de hele query door mysql_real_escape_string?

    je kunt beter iedere variabele apart door mysql_real_escape_string halen

    dus

    1
    2
    3
    4
    5
    6
    7
    8
    $query = "
      SELECT 
        u.name, 
        u.id
      FROM user AS u
      WHERE 
        u.id = ".mysql_real_escape_string($id)."
    ";
      zaterdag 10 maart 2007 @ 17:00:03 #80
    65471 SkaterSam
    Lurking Galore
    pi_47127249
    quote:
    Op zaterdag 10 maart 2007 16:58 schreef Tiemie het volgende:
    je kunt beter iedere variabele apart door mysql_real_escape_string halen
    Ja, ik besefte het net pas... Een beetje dom...

    Nu even kijken of ik iets kan schrijven die dat soort dingen in de query automatisch escaped...

    edit [18.29]: een beetje van mijzelf en een beetje van Maggi...

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <?php
      
    function escapeQuery($query) {
      
        
    // Haal de argumenten op
        
    $this->arguments = func_get_args();
        
        
    // Het eerste resultaat is de query
        
    $this->query = array_shift($this->arguments);
        
        
    // Loop door de resterende elementen en geef ze een corresponderend nummer
        
    foreach ($this->arguments as $index => $name) {
          
    $this->arguments[$index+1] = $name;
        }

        
    // Loop nogmaals door de resultaten en vervang de nummers met de escaped waarden
        
    foreach ($this->arguments as $number => $value) {
          
    $this->query = str_replace(":$number", "'" . mysql_real_escape_string($value) . "'", $this->query);
        }
        
        
    // Return de schoongemaakte query
        
    return $this->query;
        
      }
    ?>

    Die spreek je dus alsvolgt aan, je maakt een query, waarbij je alle escaped waarden in numerieke volgorde zet (:1, :2, etc...) en vervolgens doe je met $this->prepareQuery($query, $arg1, $arg2) en dan heeft die hem geescaped. Alleen jammer dat het niet werkt voor dingen als Tabel namen (als je die al buiten de query heb gedefinieerd in een variabele en deze variabele gebruikt in plaats van de naam (eg. SELECT * FROM $tabel)...

    Ik zit trouwens wel een beetje een monoloog te houden

    [ Bericht 21% gewijzigd door SkaterSam op 10-03-2007 18:29:12 ]
    Let's make life easy
    Typo's are the demon spawn from hell !
      zaterdag 10 maart 2007 @ 20:10:28 #81
    85514 ralfie
    !Yvan eht nioj
    pi_47132790
    quote:
    Op zaterdag 10 maart 2007 09:47 schreef mschol het volgende:
    klein vraagje:
    ik heb een kleine template parser:
    [ code verwijderd ]

    die roep ik alsvolgt aan:
    [ code verwijderd ]

    nu woerdt er in navGlobalBar.php de variable $nums aangemaakt, echter heb ik die variable ook nodig in navSubBar.php
    is het mogelijk om die variable beschikbaar te maken voor dat 2de bestand?

    anders moet ik een rits querie's opnieuw uitvoeren in het 2de bestand, das performance techniesch niet echt handig
    je zou in ParseFile() die variabele aan $GLOBALS toe kunnen voegen, dan in het tweede bestand eerst kijken of die bestaat, voordat die hem zelf probeert aan te maken.

    @skaterSam: Wat ik altijd handig vind in een db class is een functie die een simpele query uitvoert en alleen de eerste regel teruggeeft/danwel MYSQL_NUM_ROWS in het geval van een SELECT, of een MYSQL_AFFECTED_ROWS in het geval van een andere soort query, danwel false als de query mislukt is. Iets in de richting van
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    function simple_query$query$returnfirstrow=false) {
       if (
    strpos($query"SELECT")!==false)) $is_select=true;
       if( 
    $res=mysql_query($query) ) {
          if (
    $returnfirstrow && $is_select) return ( mysql_fetch_assoc($res) );
          else if(
    $is_select) return ( $x=mysql_num_rows($res) == false $x );
          else return  ( 
    $x=mysql_affected_rows($res) == false $x );
       }
       return 
    false;
    }
    ?>
    Niet getest overigens, maar je begrijpt de bedoeling wel denk ik. Niets is zaliger dan een DELETE query, of een SELECT query met LIMIT 1 uit te kunnen voeren door één simpele functie aan te roepen

    [ Bericht 72% gewijzigd door ralfie op 10-03-2007 20:22:44 ]
    pi_47133495
    quote:
    Op zaterdag 10 maart 2007 17:00 schreef SkaterSam het volgende:

    [..]

    Ja, ik besefte het net pas... Een beetje dom...

    Nu even kijken of ik iets kan schrijven die dat soort dingen in de query automatisch escaped...

    edit [18.29]: een beetje van mijzelf en een beetje van Maggi...
    [ code verwijderd ]
    Het feit dat je $this gebruikt betekent niet dat het automatisch ook OOP is en jouw code is daar weer een mooi voorbeeld van. Je gebruikt properties voor acties binnen een method die buiten de scope van de method niet meer gebruikt worden.

    Een voorbeeld daarvan is: $this->arguments = func_get_args();
    Die $arguments property heb je buiten deze method helemaal niet nodig, dus logischer was:
    $arguments = func_get_args();

    Idem met met de parameter $query, deze wordt meegegeven bij de aanroep maar verder nergens meer gebruikt.

    Handiger was denk ik dat je een $query property maakt binnen die class zodat je niet die $query hoeft over te gooien (via return bijv) binnen je class. Nu is het gewoon functioneel programmeren en is het toevallig een class omdat er class voor staat en niet omdat het iets met OO te maken heeft.
      zaterdag 10 maart 2007 @ 21:34:18 #83
    65471 SkaterSam
    Lurking Galore
    pi_47135980
    quote:
    Op zaterdag 10 maart 2007 20:30 schreef smesjz het volgende:
    Handiger was denk ik dat je een $query property maakt binnen die class zodat je niet die $query hoeft over te gooien (via return bijv) binnen je class.
    Huh, hoe bedoel je "een query property binnen je class" ? Wat ik nu doe is het volgende, eerst escape ik die query met de functie, dan return ik hem in een variabele, die ik weer gebruik in de echte query. Maar als je het kan verhelderen, graag
    quote:
    Nu is het gewoon functioneel programmeren en is het toevallig een class omdat er class voor staat en niet omdat het iets met OO te maken heeft.
    Ja dat klopt denk ik ook wel. Ik denk dat het meeste in die class ook "gewoon" functies zijn. Ik ben er ook nog mee aan het experimenteren. Maar als je ook hier meer informatie over hebt (hoe zou dit er in OO hebben uitgezien ?) dan lees ik het graag.

    O, en ik wilde nog vragen of het nadelig was dat ik $this-> gebruikte ? Is het trouwens zo dat variabelen die je alleen binnen de scope van één functie (zoals $arguments dus) dus geen $this-> krijgen ?
    Let's make life easy
    Typo's are the demon spawn from hell !
    pi_47147281
    quote:
    Op zaterdag 10 maart 2007 21:34 schreef SkaterSam het volgende:

    Huh, hoe bedoel je "een query property binnen je class" ? Wat ik nu doe is het volgende, eerst escape ik die query met de functie, dan return ik hem in een variabele, die ik weer gebruik in de echte query. Maar als je het kan verhelderen, graag :)
    Ik bedoelde meer zoiets: (ff quick&dirty voor PHP5)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <?php
    class Database {
        
    private $query null

        
    private function prepareQuery() 
        {
           
    blabla();
           
    $query escpape_meuk_hier();
           
    $this->query $query;
        }

        
    public function execQuery($query
       {
        
    // Eerst escapen.
         
    $this->query $query;
         
    $this->prepareQuery();
         
    mysql_query($this->query);
       }


    }
    ?>


    Het kan natuurlijk ook nog op tig andere manieren, dit voorbeeldje laat alleen zien dat je door het gebruik van die query property (private $query) je niet meer 'return' hoeft te gebruiken.

    Verder is een database class al 100 keer in OO gemaakt voor PHP en met een beetje Google werk kan je daar genoeg voorbeelden van vinden.

    Als je error reporting aanze
    Ja dat klopt denk ik ook wel. Ik denk dat het meeste in die class ook "gewoon" functies zijn. Ik ben er ook nog mee aan het experimenteren. Maar als je ook hier meer informatie over hebt (hoe zou dit er in OO hebben uitgezien ?) dan lees ik het graag.

    O, en ik wilde nog vragen of het nadelig was dat ik $this-> gebruikte ? Is het trouwens zo dat variabelen die je alleen binnen de scope van één functie (zoals $arguments dus) dus geen $this-> krijgen ?
    [/quote]

    BIj het ontwikkelen van je code kan ik je aanraden om error_reporting(E_ALL); aan te zetten zodat PHP je zelf waarschuwt bij misbruik van $this .

    Je hebt zelf alle vrijheid om $this te gebruiken binnen je class, maar alles wat binnen de scope van een functie mag blijven (en dus nergens anders nodig is) hoeft geen $this er bij.

    Het beste kan je de OOP pagina's op php.net lezen, daar is het vrij goed uitgelegd: http://www.php.net/manual/en/language.oop5.php
    pi_47147500
    quote:
    Op zaterdag 10 maart 2007 20:10 schreef ralfie het volgende:

    [..]

    je zou in ParseFile() die variabele aan $GLOBALS toe kunnen voegen, dan in het tweede bestand eerst kijken of die bestaat, voordat die hem zelf probeert aan te maken.
    ik heb in het eerste bestand, navGlobalBar.php, 2 globals toegewezen die ik nodig had, en die kon ik vervolgens aanroepen in het 2de bestand,
    Thnx voor het meedenk werk

    ik zelf zat eerst te klooien met global $var;
    pi_47149061
    *bookmarked*
    pi_47149445
    Ik heb een vraagje over de RewriteRules.. fok bijvoorbeeld heeft continue nieuwe topics, hoe blijven de rewrite rules up to date dan met de nieuwe topic nrs? wordt elke keer de .htaccess opnieuw geschreven of is er een trucje voor?
    As a rule, I never touch anything more sophisticated and delicate than myself.
    pi_47149705
    er is een truukje voor, er word een regex gebruikt :)
    1
    2
    RewriteEngine On
    RewriteRule ^/?([A-Za-z]+)$ http://www.danielpunt.nl/?p=$1.php

    Deze gebruik ik op mijn website.
    pi_47149861
    aaah tof! merci
    As a rule, I never touch anything more sophisticated and delicate than myself.
      zondag 11 maart 2007 @ 13:28:35 #90
    65471 SkaterSam
    Lurking Galore
    pi_47151774
    quote:
    Op zondag 11 maart 2007 10:00 schreef smesjz het volgende:
    Ik bedoelde meer zoiets: (ff quick&dirty voor PHP5)
    [ code verwijderd ]

    Het kan natuurlijk ook nog op tig andere manieren, dit voorbeeldje laat alleen zien dat je door het gebruik van die query property (private $query) je niet meer 'return' hoeft te gebruiken.
    Ja, dat zou natuurlijk ideaal zijn! Ik had het echter op deze manier gedaan, omdat ik ook argumenten moet opgeven die vervangen moeten worden in de query (dus een :1 wordt bijvoorbeeld $obj_id), maar ik vond het handiger dat dit in twee stappen ging. Ik neem aan dat ik het bijvoorbeeld ook gewoon in de execQuery had kunnen zetten ($db->execQuery($query, $enkele_argumenten_ter_vervanging)), ik geloof dat jij iets dergelijks bedoelt. Want mijn vraag was hoe ik die vervangende argumenten in de prepareQuery function kreeg.

    edit [13.52]: Hmm, ik kan natuurlijk gewoon een statische array maken ofzo $db->replaceArguments = array($etc, $etc...) en die aanroepen...
    quote:
    Verder is een database class al 100 keer in OO gemaakt voor PHP en met een beetje Google werk kan je daar genoeg voorbeelden van vinden.
    Ja dat heb ik gezien, en hoewel ik daar ook naar kijk, probeer ik liever zelf een in elkaar te zetten natuurlijk, leerervaring enzo
    quote:
    BIj het ontwikkelen van je code kan ik je aanraden om error_reporting(E_ALL); aan te zetten zodat PHP je zelf waarschuwt bij misbruik van $this.
    Hmmm, ja dat kan, ik werk echter met een script die de Errorlog uitleest van Apache2. Dan krijg ik op mijn browserscherm altijd de laatste errors die Apache2 ontdekt. Maar ik weet niet zeker of de Errorlog alle errors die error_reporting(E_ALL) oppikt, ook pakt.

    [ Bericht 2% gewijzigd door SkaterSam op 11-03-2007 13:51:51 ]
    Let's make life easy
    Typo's are the demon spawn from hell !
    abonnement Unibet Coolblue Bitvavo
    Forum Opties
    Forumhop:
    Hop naar:
    (afkorting, bv 'KLB')