FOK!forum / Digital Corner / [PHP/(My)SQL] voor dummies - Deel 39
slakkiedinsdag 20 februari 2007 @ 00: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

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
  • Swetseneggerdinsdag 20 februari 2007 @ 08:14
    Tering wat veel PHP topics
    GIdinsdag 20 februari 2007 @ 08:17
    quote:
    Op dinsdag 20 februari 2007 08:14 schreef Swetsenegger het volgende:
    Tering wat veel PHP topics
    Nou!
    Chandlerdinsdag 20 februari 2007 @ 08:30
    quote:
    Op dinsdag 20 februari 2007 08:14 schreef Swetsenegger het volgende:
    Tering wat veel PHP topics
    Zal waarschijnlijk niet aan ons liggen
    Geqxondinsdag 20 februari 2007 @ 10:53
    Ik heb weer een leuke

    1 91.   5-11     5ACX06     18 Feb 07   <a target="_blank" href="http://www.tv.com/family-guy/the-tan-aquatic-with-steve-zissou/episode/904191/summary.html">The Tan Aquatic with Steve Zissou


    Hoe ga ik van deze string alle stukken los eruit halen? Ik heb een explode gepakt met als delimiter een "t", echter kreeg ik als resultaat... dat er niks ge-explode was. Als delimiter een " " pakken (een tab gecopy/paste) zorgde ervoor dat er slechts delen werden ge-explode.

    Het formaat:

  • Het begint met een getal dat eindigd op een punt , dan een tab.
  • Daarna twee cijfers, gescheiden door een dash, en als het tweede getal uit 1 digit bestaat zit er nog een spatie tussen
  • De productie-code, is altijd aan één stuk, en vaak van verschillende lengtes.
  • Een datum, die ik overigens ook in $linedate heb zitten, en makkelijker eruit te halen is
  • Een html-code, met een anchor erin. Ook dit is consistent.
  • GIdinsdag 20 februari 2007 @ 10:53
    exploden op "t"parser doet raar ik wou zeggen exploden op slasht
    Swetseneggerdinsdag 20 februari 2007 @ 11:02
    quote:
    Op dinsdag 20 februari 2007 10:53 schreef Geqxon het volgende:
    Ik heb weer een leuke
    [ code verwijderd ]

    Hoe ga ik van deze string alle stukken los eruit halen? Ik heb een explode gepakt met als delimiter een "t", echter kreeg ik als resultaat... dat er niks ge-explode was. Als delimiter een " " pakken (een tab gecopy/paste) zorgde ervoor dat er slechts delen werden ge-explode.

    Het formaat:

  • Het begint met een getal dat eindigd op een punt , dan een tab.
  • Daarna twee cijfers, gescheiden door een dash, en als het tweede getal uit 1 digit bestaat zit er nog een spatie tussen
  • De productie-code, is altijd aan één stuk, en vaak van verschillende lengtes.
  • Een datum, die ik overigens ook in $linedate heb zitten, en makkelijker eruit te halen is
  • Een html-code, met een anchor erin. Ook dit is consistent.
  • trek hem eerst door een regexp waarbij je alle whitespace karakters vervang door 1 enkele spatie (of een puntkomma of een andere mooie delimiter)
    Swetseneggerdinsdag 20 februari 2007 @ 11:02
    quote:
    Op dinsdag 20 februari 2007 10:53 schreef GI het volgende:
    exploden op "t"parser doet raar ik wou zeggen exploden op slasht
    quote z'n post en kijk naar zijn "t"
    GIdinsdag 20 februari 2007 @ 11:04
    Geqxondinsdag 20 februari 2007 @ 11:20
    quote:
    Op dinsdag 20 februari 2007 11:02 schreef Swetsenegger het volgende:

    [..]

    trek hem eerst door een regexp waarbij je alle whitespace karakters vervang door 1 enkele spatie (of een puntkomma of een andere mooie delimiter)
    Ik heb hard gegoogled, en hard nagedacht, en het enige wat ik vond was een pagina waar ik voor moest betalen. Kun je mij misschien een klein beetje op weg helpen, dan kan ik de rest denk ik zelf wel

    Edit

    1
    2
    3
    4
    <?php
                $lineitems 
    preg_split ("/s+/"$line);
                echo 
    "tt<td>"print_r($lineitems) . "</td>n";
    ?>


    levert:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Array
    (
        [0] => 
        [1] => 91.
        [2] => 5-11
        [3] => 5ACX06
        [4] => 18
        [5] => Feb
        [6] => 07
        [7] => <a
        [8] => target="_blank"
        [9] => href="http://www.tv.com/family-guy/the-tan-aquatic-with-steve-zissou/episode/904191/summary.html">The
        [10] => Tan
        [11] => Aquatic
        [12] => with
        [13] => Steve
        [14] => Zissou</a>
        [15] => 
    )


    Voor mij goed genoeg

    Edit 2
    Alleen loopt alles wel in de soep als de zin met een whitespace begint.

    [ Bericht 42% gewijzigd door Geqxon op 20-02-2007 11:34:05 ]
    Swetseneggerdinsdag 20 februari 2007 @ 11:28
    en dit doet het ook niet?
    1
    2
    3
    4
    <?php
                $lineitems 
    preg_split ("/t/"$line);
                echo 
    "tt<td>"print_r($lineitems) . "</td>n";
    ?>
    Geqxondinsdag 20 februari 2007 @ 11:35
    Aannemend dat daar een backslash voor de t hoort, krijg ik deze mooie output:
    1
    2
    3
    4
    5
    Array
    (
        [0] =>  91.   5-11     5ACX06     18 Feb 07   <a target="_blank" href="http://www.tv.com/family-guy/the-tan-aquatic-with-steve-zissou/episode/904191/summary.html">The Tan Aquatic with Steve Zissou</a>

    )


    Aangezien ik alleen de het "5-11" deel nodig heb, zat ik ook even te kijken naar een regex die kijkt naar wat tussen de whitespace en de - zit ,en wat tussen de - en de whitespace.
    Swetseneggerdinsdag 20 februari 2007 @ 11:46
    quote:
    Op dinsdag 20 februari 2007 11:35 schreef Geqxon het volgende:
    Aannemend dat daar een backslash voor de t hoort, krijg ik deze mooie output:
    [ code verwijderd ]

    Aangezien ik alleen de het "5-11" deel nodig heb, zat ik ook even te kijken naar een regex die kijkt naar wat tussen de whitespace en de - zit ,en wat tussen de - en de whitespace.
    dan is het inderdaad niet door tabs gescheiden.
    Geqxondinsdag 20 februari 2007 @ 11:55
    Jep, heb het nu als volgt opgelost:
    1
    2
    3
    <?php
    eregi
    ("[0-9]*-[0-9]*", $line, $lineitem);  
    ?>
    slakkiedinsdag 20 februari 2007 @ 13:59
    Ik zou het zo gedaan hebben, beetje meer perl georienteerd.

    1
    2
    3
    4
    5
    6
    <?php
      $line
    = preg_replace('/[<>]/', ' ', $line);     # < en > zijn irritant :)
      
    $line = preg_replace('/(^s+|s*$)/', '', $line); # Remove left over white space chars..
      
    $line = preg_split('/s+/', $line);
      
    print_r($line);
    ?>
    Geqxondinsdag 20 februari 2007 @ 15:54
    Dat is ook een mogelijkheid, maar daar waar de twee nummers zich altijd rond de eerste dash "klemmen", is mijn optie, en vervolgens het eerste resultaat uit de array, voor mij prima
    SuperRembodinsdag 20 februari 2007 @ 17:49
    quote:
    Op dinsdag 20 februari 2007 13:59 schreef slakkie het volgende:

    Ik zou het zo gedaan hebben, beetje meer perl georienteerd.
    [ code verwijderd ]
    Regexps zijn leuke dingen, maar een regexp gebruiken voor iets als een simpele trim() is een behoorlijke over-kill.
    slakkiedinsdag 20 februari 2007 @ 20:10
    quote:
    Op dinsdag 20 februari 2007 17:49 schreef SuperRembo het volgende:

    [..]

    Regexps zijn leuke dingen, maar een regexp gebruiken voor iets als een simpele trim() is een behoorlijke over-kill.
    Ik kom van perl, wij kennen de trim functie niet. Zie hier.
    http://en.wikipedia.org/wiki/Trim_(programming)#Perl

    Wij doen het zo
    ralfiedinsdag 20 februari 2007 @ 21:38
    quote:
    Op dinsdag 20 februari 2007 20:10 schreef slakkie het volgende:

    [..]

    Ik kom van perl, wij kennen de trim functie niet. Zie hier.
    http://en.wikipedia.org/wiki/Trim_(programming)#Perl

    Wij doen het zo
    integreer maar naar onze standaarden of we halen rita erbij
    PekkeMandinsdag 20 februari 2007 @ 22:07
    ah ik zie dat er ook een speciaal topic is voor php problemen

    ik had al een topic aangemaakt: php bestand dubbel-includen probleempje
    maar ik blijf nog steeds met het probleem zitten.

    ik wil op eenzelfde pagina 2 keer hetzelfde script includen, maar dat wil niet, ook niet met include_once. Hij maakt de pagina niet af op de regel waar de 2e include staat.

    iemand een oplossing?
    Swetseneggerdinsdag 20 februari 2007 @ 23:02
    quote:
    Op dinsdag 20 februari 2007 22:07 schreef PekkeMan het volgende:
    ah ik zie dat er ook een speciaal topic is voor php problemen

    ik had al een topic aangemaakt: php bestand dubbel-includen probleempje
    maar ik blijf nog steeds met het probleem zitten.

    ik wil op eenzelfde pagina 2 keer hetzelfde script includen, maar dat wil niet, ook niet met include_once. Hij maakt de pagina niet af op de regel waar de 2e include staat.

    iemand een oplossing?
    Ik denk dat je een denkfout maak. Leg eens uit waarom je 2 maal hetzelfde script wil includen?
    SuperRembodinsdag 20 februari 2007 @ 23:25
    [edit]
    is handiger om het in dat topic te houden.
    PekkeMandinsdag 20 februari 2007 @ 23:34
    bij elk artikel wil ik dit (reactie)scriptje plaatsen. Het script laat zien hoeveel reacties er zijn. Deze heb ik dan weer opgeslagen onder verschilledne mappen map01, 02 etc. per artikel01, artikel02, 1 map met reactiescript en database in de vorm van txt bestand. (wel erg omslachtig, maar ik kan geen betere en voor mij overzichtelijke reactiescripts vinden :{ )

    overzichtelijk
    artikel01.php - map01 (met daarin database, reactiescript, script dat laat zien op artikel01.php hoeveel reacties er zijn(deze include ik))
    artikel012php - map02 (met daarin database, reactiescript, script dat laat zien op artikel02.php hoeveel reacties er zijn(deze include ik))

    en de geincludeerde files zijn precies hetzelfde verder. Script hieronder. Ik begin te vermoeden dat t script dit misschien tegenhoudt, maar waarom, geen idee :?

    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
    <? 

    // bestand waar de berichten in komen te staan 
    $file = "reactie.txt"; 
    // maximaal aantal berichten wat bewaard wordt 
    $max  = 25; 

    // escapefunctie 
    function s($val) { 
        $val = nl2br(htmlspecialchars($val)); 
        return get_magic_quotes_gpc() ? stripslashes($val) : $val; 


    // kijken of het bestand reactie.txt al bestaat 
    if(file_exists($file)) { 
        // zo ja, includen 
        include ($file); 
    } else { 
        // zo niet, maak dan de array $messages bekend 
        $messages = array(); 


    // kijken of er wel berichten zijn... 
    if(count($messages) > 0) { 
        echo "<a href="xxxxx/reacties.php' target='_blank'>". count($messages) ." reactie(s)</a>"; 
       
    } else { 
        echo "<a href='xxxxxx/reacties.php' target='_blank'>Geen reacties!</a>"; 
        exit;

        ?> 
    Swetseneggerdinsdag 20 februari 2007 @ 23:38
    kan je dan niet beter een functie schrijven die je 1 keer include en bij elk artikel aanroept met een veranderende sleutel

    showNumberReactions(2) ofzo.
    PekkeMandinsdag 20 februari 2007 @ 23:45
    klinkt leuk, maar zover ben ik nog niet met mn php kennis
    Lightwoensdag 21 februari 2007 @ 10:15
    quote:
    Op dinsdag 20 februari 2007 08:14 schreef Swetsenegger het volgende:
    Tering wat veel PHP topics
    Ja, dat komt door jou
    Lightwoensdag 21 februari 2007 @ 10:43
    quote:
    Op dinsdag 20 februari 2007 23:34 schreef PekkeMan het volgende:
    bij elk artikel wil ik dit (reactie)scriptje plaatsen. Het script laat zien hoeveel reacties er zijn. Deze heb ik dan weer opgeslagen onder verschilledne mappen map01, 02 etc. per artikel01, artikel02, 1 map met reactiescript en database in de vorm van txt bestand. (wel erg omslachtig, maar ik kan geen betere en voor mij overzichtelijke reactiescripts vinden )

    overzichtelijk
    artikel01.php - map01 (met daarin database, reactiescript, script dat laat zien op artikel01.php hoeveel reacties er zijn(deze include ik))
    artikel012php - map02 (met daarin database, reactiescript, script dat laat zien op artikel02.php hoeveel reacties er zijn(deze include ik))
    Dat lijkt misschien overzichtelijk, maar als je met 50 artikelen aan komt dan is het dat niet meer.
    quote:
    en de geincludeerde files zijn precies hetzelfde verder. Script hieronder. Ik begin te vermoeden dat t script dit misschien tegenhoudt, maar waarom, geen idee
    [ code verwijderd ]
    Aan het script kan ik zo niets vreemds zien. Of ik kijk er gewoon overheen, dat kan ook.
    Tijnwoensdag 21 februari 2007 @ 15:26
    Ik ben een website aan het maken op een webhost waar magic quotes aanstaat. Behoorlijk irritant, al m'n POST-data enzo heeft nu allemaal rare slashes erin, zonder dat ik daarop zit te wachten.

    Ik kan wel constant m'n data door een stripslahes() halen, maar is er misschien een manier om magic quotes gewoon uit te zetten voor mijn website?
    Lightwoensdag 21 februari 2007 @ 15:39
    quote:
    Op woensdag 21 februari 2007 15:26 schreef Tijn het volgende:
    Ik ben een website aan het maken op een webhost waar magic quotes aanstaat. Behoorlijk irritant, al m'n POST-data enzo heeft nu allemaal rare slashes erin, zonder dat ik daarop zit te wachten.

    Ik kan wel constant m'n data door een stripslahes() halen, maar is er misschien een manier om magic quotes gewoon uit te zetten voor mijn website?
    Ja hoor, kijk maar eens op http://nl2.php.net/manual/en/security.magicquotes.disabling.php
    Geqxonwoensdag 21 februari 2007 @ 15:46
    Ik heb het probleem dat zowel "fopen" als "file" stronttraag is. Het loopen door de regels gaat vrij vlot, maar het fopen / file gedeelte duurt ellenlang. Op GoT las ik was over DNS lookups, kan iemand mij mogelijk in de juiste richting trappen?
    Tijnwoensdag 21 februari 2007 @ 15:48
    quote:
    Bedankt
    JortKwoensdag 21 februari 2007 @ 16:30
    Tering Veel PHP
    super-muffinwoensdag 21 februari 2007 @ 22:03
    Waarom word dit niet gevonden in mijn preg_replace? :?

    1
    2
    3
    <?php
    preg_replace
    ("#[/*](.*?)[/*]#""<li>\2</li>"$tekst);
    ?>
    Geqxonwoensdag 21 februari 2007 @ 22:12
    Wat is het resultaat dat je bereiken wilt? Backslash-twee ?
    Swetseneggerwoensdag 21 februari 2007 @ 22:14
    quote:
    Op woensdag 21 februari 2007 22:12 schreef Geqxon het volgende:
    Wat is het resultaat dat je bereiken wilt? Backslash-twee ?
    nee hij wil alles tussen
  • en [/*] vervangen door..... tadaaaaaaa
  • gielingwoensdag 21 februari 2007 @ 22:17
    Hoi, ik verklein met een script een afbeelding d.m.v. o.a. de imagecopyresampled-functie. Alleen is het probleem dat de thumbnail wat vaag wordt t.o.v. het origineel. Komt dit door het verkleinen van de foto of door het (verkeerd gebruik?) van de bovengenoemde functie?
    SuperRembowoensdag 21 februari 2007 @ 22:20
    quote:
    Op woensdag 21 februari 2007 22:03 schreef super-muffin het volgende:
    Waarom word dit niet gevonden in mijn preg_replace?
    Deze zoekt
    - 1 / of *
    - 0 of meer willekeurige tekens (maar zonder regeleinden)
    - 1 / of *

    De vraag is wat je wil dat ie zoekt?
    super-muffinwoensdag 21 februari 2007 @ 22:21
    quote:
    Op woensdag 21 februari 2007 22:12 schreef Geqxon het volgende:
    Wat is het resultaat dat je bereiken wilt? Backslash-twee ?
    Dat moet \1 zijn.
    Die stomme backslash bug
    Swetseneggerwoensdag 21 februari 2007 @ 22:26
    quote:
    Op woensdag 21 februari 2007 22:17 schreef gieling het volgende:
    Hoi, ik verklein met een script een afbeelding d.m.v. o.a. de imagecopyresampled-functie. Alleen is het probleem dat de thumbnail wat vaag wordt t.o.v. het origineel. Komt dit door het verkleinen van de foto of door het (verkeerd gebruik?) van de bovengenoemde functie?
    ik heb de functie op php.net wat aangepast. Hie komen prachtige thumbs uit

    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
    function resize_photo($new_name,$new_width,$new_height,$filename){

    // Content type
    header('Content-type: image/jpeg');

    // nieuwe resolutie bepalen
    list($width_orig$height_orig) = getimagesize($filename);
    if(empty(
    $new_height)){
                            
    $new_height round(($new_width $width_orig) * $height_orig);

    }elseif(empty(
    $new_width)){
                
    $new_width round(($new_height $height_orig) * $width_orig);

    }elseif (
    $new_width && ($width_orig $height_orig)) {
                
    $new_width = ($new_height $height_orig) * $width_orig;

    }else{
                            
    $new_height = ($new_width $width_orig) * $height_orig;
    }

    // Resample
    $image_p imagecreatetruecolor($new_width$new_height);
    $image imagecreatefromjpeg($filename);
    imagecopyresampled($image_p$image0000$new_width$new_height$width_orig$height_orig);

    // Output
    imagejpeg($image_p$new_name80);
    imagedestroy($image);
    return array(
    $new_width,$new_height);
    }
    ?>
    gielingwoensdag 21 februari 2007 @ 22:38
    Mm - tnx! Maar krijg in principe hetzelfde resultaat dus denk dat het door het verkleinen komt! Tnx iig
    slakkiewoensdag 21 februari 2007 @ 22:43
    -edit: ignore me-
    Burbujasdonderdag 22 februari 2007 @ 08:40
    Erg handig topic! Ik ga me maar es inlezen.
    Swetseneggerdonderdag 22 februari 2007 @ 09:47
    quote:
    Op woensdag 21 februari 2007 22:38 schreef gieling het volgende:
    Mm - tnx! Maar krijg in principe hetzelfde resultaat dus denk dat het door het verkleinen komt! Tnx iig ^O^
    Verbaast me dat ze vaag worden. Ligt natuurlijk ook aan het origineel. En in de volgende regel is die 80 de compressie he. als je die op 100 zet zal de kwaliteit beter worden

    1imagejpeg($image_p, $new_name, 80);


    Ik heb hier een thumb van bovenstaande functie:


    En hier de full size (die overigens OOK door deze functie is verkleind)
    DoNirvanadonderdag 22 februari 2007 @ 10:06
    Beste mensen

    Zoals sommige weten ben ik bezig met een zoekmachine op www.autoholic.nl

    Nu loop ik weer tegen iets aan ik heb het nu als volgt de query:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    if($_SERVER['REQUEST_METHOD'] == 'GET') {

        
    $result0 = "SELECT * FROM link WHERE MATCH(trefwoorden,beschrijving,titel) AGAINST('+$trefwoord*' IN BOOLEAN MODE) ORDER BY rank DESC";
        
    $query0 = mysql_query($result0) or die("Er is iets fout gegaan!");
        
    $resultaten0 = mysql_num_rows($query0);
    $pages=intval($resultaten0/$count);


        
    $result = "SELECT *  FROM link WHERE MATCH(trefwoorden,beschrijving,titel) AGAINST('+$trefwoord*' IN BOOLEAN MODE) ORDER BY rank DESC LIMIT $page,$count";
        
    $query = mysql_query($result) or die("Er is iets fout gegaan!");
        
    mysql_close();

    ?>


    Als ik nu zoek binnen mijn site op bijvoorbeeld BMW 3-serie dan ziet hij dat als 1 trefwoord maar wel met 2 losse woorden echter zoekt hij nu op BMW en op 3-serie. dus overal waar of bmw in staat en/of 3-serie in staat laat hij zien.

    Nu wil ik dat hij alleen de records laat zien waar ze allebij in staan. Hoe doe ik dat ?? En weet iemand hoe ik op minder dan 4 letters kan zoeken. Want IN BOOLEAN MODE zoekt alleen op worden die groter zijn als 3 letters is dit te ontlopen of aan te passen zo ja hoe ??


    Alvast bedankt voor jullie tijd en aandacht !!
    Tijndonderdag 22 februari 2007 @ 12:45
    quote:
    Op donderdag 22 februari 2007 09:47 schreef Swetsenegger het volgende:

    [..]

    Verbaast me dat ze vaag worden.
    Het is wel eens eerder aangekaart in deze reeks dat de resample-functie van GD een minder scherp resultaat oplevert dan wat bijvoorbeeld Photoshop doet met z'n bicubic algoritme.

    Een alternatief zou ImageMagick kunnen zijn, diens resize-functie heeft een parameter om de sharpness mee te bepalen. Maar dat is natuurlijk niet op elke server beschikbaar.
    gielingdonderdag 22 februari 2007 @ 13:01
    Nou vaag is misschien niet helemaal het goede woord: minder scherp, zoals tijn hierboven al zei past beter. Maar met die quality op 100 gezet is er al een verbetering te zien
    Geqxondonderdag 22 februari 2007 @ 13:49
    Ik hou het kort: Is het mogelijk binnen 1 query een item binnen mijn MySQL database te verwijderen en te inserten, en is dat volgens de ongeschreven regels 'netjes'?
    DoNirvanadonderdag 22 februari 2007 @ 14:06
    is er nog een antwoord op mijn vraag ??
    GIdonderdag 22 februari 2007 @ 14:08
    quote:
    Op donderdag 22 februari 2007 13:49 schreef Geqxon het volgende:
    Ik hou het kort: Is het mogelijk binnen 1 query een item binnen mijn MySQL database te verwijderen en te inserten, en is dat volgens de ongeschreven regels 'netjes'?
    http://dev.mysql.com/doc/refman/5.0/en/replace.html
    SuperRembodonderdag 22 februari 2007 @ 14:12
    quote:
    Op donderdag 22 februari 2007 13:49 schreef Geqxon het volgende:
    Ik hou het kort: Is het mogelijk binnen 1 query een item binnen mijn MySQL database te verwijderen en te inserten, en is dat volgens de ongeschreven regels 'netjes'?
    Ja, dat kan met UPDATE
    Geqxondonderdag 22 februari 2007 @ 14:18
    quote:
    Dat is een mooie, enige puntje is dat hij het niet altijd moet replacen. Op het moment voert hij eerst een DELETE query uit, waarbij er enkele unieke eigenschappen moeten matchen (ik werk dus helaas niet op ID). Daarna een Insert, met dezelfde unieke eigenschappen, en nog enkele andere gegevens.

    Er is dus niet altijd een record aanwezig met de eigenschappen die bij de delete matchen, alleen het inserten is iets dat altijd moet. Dus wat ik mij afvroeg: Is het netjes om de twee queries achter elkaar te plakken?
    Tiemiedonderdag 22 februari 2007 @ 16:58
    niet echt een php vraagje, maar hoe kan ik in flash dezelfde xml-file opnieuw inladen zonder de pagina te herladen?

    het xml bestand wordt onLoad geladen en ik dmv ajax zet ik een paar variabelen die in de xml komen te staan.

    nu wil ik deze xml opnieuw inladen maar als ik dan document.flash_movie.Play(); doe laad ie dezelfde waarden in, als ik op F5 druk is het wel aangepast.

    iemand een idee?

    flash is niet zo mijn ding
    Xcaliburdonderdag 22 februari 2007 @ 23:32
    quote:
    Op donderdag 22 februari 2007 14:18 schreef Geqxon het volgende:

    [..]

    Dat is een mooie, enige puntje is dat hij het niet altijd moet replacen. Op het moment voert hij eerst een DELETE query uit, waarbij er enkele unieke eigenschappen moeten matchen (ik werk dus helaas niet op ID). Daarna een Insert, met dezelfde unieke eigenschappen, en nog enkele andere gegevens.
    waarom wil je dit in 1 query doen? Voordat het qua performance wat uitmaakt moet je het wel heel veel records updaten
    Xcaliburdonderdag 22 februari 2007 @ 23:35
    quote:
    Op donderdag 22 februari 2007 16:58 schreef Tiemie het volgende:
    nu wil ik deze xml opnieuw inladen maar als ik dan document.flash_movie.Play(); doe laad ie dezelfde waarden in, als ik op F5 druk is het wel aangepast.
    hoe wordt de XML ingelezen?
    Misschien zit die in een functie die alleen aangeroepen wordt als er nog niks ingeladen is? Waardoor die bij de 2x keer dus niks doet en gewoon de oude data gebruikt.

    Als het bestand de 2e keer 'echt' wordt geladen zou die gewoon de nieuwe waarden moeten bevatten
    Geqxondonderdag 22 februari 2007 @ 23:41
    quote:
    Op donderdag 22 februari 2007 23:32 schreef Xcalibur het volgende:

    [..]

    waarom wil je dit in 1 query doen? Voordat het qua performance wat uitmaakt moet je het wel heel veel records updaten
    Schoonheidsperfectie
    Xcaliburdonderdag 22 februari 2007 @ 23:49


    lijkt me lastig, als je niet van tevoren weet of er een record te updaten is... als je hem al hebt is het gemakkelijker, maar dan heb je in principe al eerder een select gedaan
    Geqxonvrijdag 23 februari 2007 @ 00:12
    Het gaat bij mij om een cache-script. Om het script uit te leggen:

  • Eerst kijken of de gezochte data in de database bestaat, en kijken hoe recent deze data is.
  • Als de data gevonden is, en jonger dan 24 uur is >>> Laden
  • Als de data niet gevonden is, of ouder dan 24 uur >>> Uit een exterene website laden, de delete query gevolgd door de insert query om de vers opgehaalde data in de database te stoppen.

    Werkt prima, maar imho wil ik het net ietsjes strakker hebben. Vandaar. Maar ik zie al een optie, namelijk de check om te kijken of de data uberhaupt wel bestaat (mysql_num_rows), gaat goed komen.
  • Lightvrijdag 23 februari 2007 @ 08:37
    quote:
    Op vrijdag 23 februari 2007 00:12 schreef Geqxon het volgende:
    Het gaat bij mij om een cache-script. Om het script uit te leggen:

  • Eerst kijken of de gezochte data in de database bestaat, en kijken hoe recent deze data is.
  • Als de data gevonden is, en jonger dan 24 uur is >>> Laden
  • Als de data niet gevonden is, of ouder dan 24 uur >>> Uit een exterene website laden, de delete query gevolgd door de insert query om de vers opgehaalde data in de database te stoppen.

    Werkt prima, maar imho wil ik het net ietsjes strakker hebben. Vandaar. Maar ik zie al een optie, namelijk de check om te kijken of de data uberhaupt wel bestaat (mysql_num_rows), gaat goed komen.
  • Gewoon een query maken die als extra eis meeneemt dat de data niet ouder dan 24 uur mag zijn. Als je de datum in een DATETIME of een Unix Timestamp (unsigned int) opslaat dan moet dat lukken.
    Xcaliburvrijdag 23 februari 2007 @ 09:11
    quote:
    Op vrijdag 23 februari 2007 08:37 schreef Light het volgende:
    Gewoon een query maken die als extra eis meeneemt dat de data niet ouder dan 24 uur mag zijn. Als je de datum in een DATETIME of een Unix Timestamp (unsigned int) opslaat dan moet dat lukken.
    dan heb je wel een extra query nodig om de data ouder dan 24 uur op te zoeken en weg te gooien...
    Tenzij je die niet weggooit natuurlijk
    CraZaayvrijdag 23 februari 2007 @ 09:33
    quote:
    Op vrijdag 23 februari 2007 09:11 schreef Xcalibur het volgende:

    [..]

    dan heb je wel een extra query nodig om de data ouder dan 24 uur op te zoeken en weg te gooien...
    Tenzij je die niet weggooit natuurlijk
    Draai die 'opschoonquery' 1 keer per dag ofzo zou ik zeggen. Dat maakt het allemaal een stuk eenvoudiger denk ik.
    Geqxonvrijdag 23 februari 2007 @ 09:53
    Om jullie allemaal maar te beantwoorden:

    -In de tabel heb ik al een kolom met daarin de waarde van nu + 24 uur. In de query staat dus feitelijk
    1
    2
    3
    <?php
    " WHERE Expires > " . time() . "
    ?>


    Zodra ik geen resultaten met de select-query krijg, betekend dat dus twee dingen:
    -De data is staat niet in de database
    -De data is ouder dan 24 uur.

    In dat geval schiet hij dus de else-statement in, waar hij de volgende dingen doet:
    -De data van een externe website ophalen (traag!)
    -De oude data weggooien (of iig een poging tot)
    -De versgehaalde data in de database stoppen

    De opschoonquery is daarom dus niet nodig, aangezien de data bij de eerstvolgende search automatisch geupdate zal worden. Leuk systeem, en het draait prima. Enige wat ik dus ga vervangen is het kijken waarom hij de data niet op kan halen, hoe dat dus komt. En aan de hand daarvan dus de juiste query draaien.
    CraZaayvrijdag 23 februari 2007 @ 10:03
    Waarom niet "Expires > NOW()" ?
    Geqxonvrijdag 23 februari 2007 @ 10:08
    Omdat "time()" de huidige waarde in de vorm van een UNIX timestamp presenteert. Het veld "Expires" is dan ook een doodsimpele integer van 11 tekens lang, in plaats van het imho bloated MySQL date format.
    super-muffinvrijdag 23 februari 2007 @ 10:56
    Dat is toch enorm onhandig

    Trouwens, nu ik hier toch ben
    Ik ben bezig met een soort van CMS, maar het lukt me niet om paragrafen netjes te krijgen. Ik kan wel nl2br gebruiken, maar ik heb liever dat er van zelf paragrafen worden gemaakt van de nieuwe lijnen zonder zelf html of ubb in te voeren.
    Swetseneggervrijdag 23 februari 2007 @ 11:06
    quote:
    Op vrijdag 23 februari 2007 10:08 schreef Geqxon het volgende:
    Omdat "time()" de huidige waarde in de vorm van een UNIX timestamp presenteert. Het veld "Expires" is dan ook een doodsimpele integer van 11 tekens lang, in plaats van het imho bloated MySQL date format.

    Goh er zitten ook - in je database veld... wat bloated. En je kan er ongeveer 1000 keer handiger mee uit de voeten.
    JeRavrijdag 23 februari 2007 @ 17:24
    quote:
    Op vrijdag 23 februari 2007 10:56 schreef super-muffin het volgende:
    Ik ben bezig met een soort van CMS, maar het lukt me niet om paragrafen netjes te krijgen. Ik kan wel nl2br gebruiken, maar ik heb liever dat er van zelf paragrafen worden gemaakt van de nieuwe lijnen zonder zelf html of ubb in te voeren.
    Afhankelijk van hoe je je CMS in elkaar hebt gezet kun je ervoor kiezen om twee opeenvolgende line breaks om te toveren in een nieuwe paragraaf? Dan moet je natuurlijk wel de paragrafen tekst goed bepalen, omdat je daar de <p>...</p> omheen moet zetten
    Geqxonvrijdag 23 februari 2007 @ 17:43
    quote:
    Op vrijdag 23 februari 2007 11:06 schreef Swetsenegger het volgende:

    [..]


    Goh er zitten ook - in je database veld... wat bloated. En je kan er ongeveer 1000 keer handiger mee uit de voeten.
    Ieder zijn ding. Ik werk liever gewoon met timestamps als integers, universeel. Pas bij het tonen in de browser zet ik het in DD-MM-YYYY formaat.
    JeRavrijdag 23 februari 2007 @ 17:50
    quote:
    Op vrijdag 23 februari 2007 10:08 schreef Geqxon het volgende:
    Het veld "Expires" is dan ook een doodsimpele integer van 11 tekens lang
    Een integer van 11 tekens lang?

    Een INT(11) betekent niets anders dan dat je een integer veld hebt die bij een geactiveerde optie ZEROFILL een getal weergeeft dat wordt geprepad met nullen totdat het 11 nummers bevat. Zonder die optie betekent die 11 helemaal niéts.
    JeRavrijdag 23 februari 2007 @ 17:52
    quote:
    Op vrijdag 23 februari 2007 11:06 schreef Swetsenegger het volgende:

    [..]


    Goh er zitten ook - in je database veld... wat bloated. En je kan er ongeveer 1000 keer handiger mee uit de voeten.
    Niet eens, MySQL slaat tijd en datum intern ook op aan de hand van timestamps. Op het moment dat je een SELECT doet of de waarden vergelijkt aan de hand van zo'n datum/tijd dan zet MySQL de boel automagisch om naar een bepaalde representatie.

    Verder ben ik benieuwd naar wat jij denkt meer te kunnen met een DATETIME / TIMESTAMP veld dan met een eigen timestamp die pas in de frontend voor presentatie wordt omgezet?
    Wiehoevrijdag 23 februari 2007 @ 19:01
    Hey,

    Nu moet ik ineens voor school bezig met PHP een aantal oprdachten maken waaronder de basis van cookies. Wanneer ik een script maak met een cookie er in, en het in xampp laad gebeurd er niets. Weet iemand toevallig of cookies aangezet moeten worden in xampp ofzo?

    Ik heb zelf mijn internet explorer al ingesteld dat er een prompt komt wanneer een cookie opgeslagen zou moeten worden. Maar hij prompt ook niet.
    JeRavrijdag 23 februari 2007 @ 19:36
    quote:
    Op vrijdag 23 februari 2007 19:01 schreef Wiehoe het volgende:
    Nu moet ik ineens voor school bezig met PHP een aantal oprdachten maken waaronder de basis van cookies. Wanneer ik een script maak met een cookie er in, en het in xampp laad gebeurd er niets. Weet iemand toevallig of cookies aangezet moeten worden in xampp ofzo?

    Ik heb zelf mijn internet explorer al ingesteld dat er een prompt komt wanneer een cookie opgeslagen zou moeten worden. Maar hij prompt ook niet.
    Laat eens wat code zien? Dan weten we ook meteen hoe je je cookies probeert op te slaan. Er is niet zoiets als het activeren van cookies in PHP, aangezien het in feite een HTTP-header is.
    Wiehoevrijdag 23 februari 2007 @ 19:54
    1
    2
    3
    4
    5
    6
    7
    <?php
    $count++;
    setcookie('count', $count);
    error_reporting(E_ALL);

    echo($count);
    ?>


    Dit moet dus oplopen volgens zo'n php boek.
    JeRavrijdag 23 februari 2007 @ 19:57
    quote:
    Op vrijdag 23 februari 2007 19:54 schreef Wiehoe het volgende:

    [ code verwijderd ]

    Dit moet dus oplopen volgens zo'n php boek.
    Allereerst zul je de superglobal $_COOKIE['count'] moeten gebruiken om de cookie op te vragen. Verder is het slim om een expire time op te geven in setcookie, zoiets als dit:
    1
    2
    3
    <?php
    setcookie
    ('count'$counttime() + 3600); // één uur is deze cookie geldig
    ?>
    Wiehoevrijdag 23 februari 2007 @ 20:02
    Bedankt, ik heb dit er van gemaakt, en het werkt:

    1
    2
    3
    4
    5
    6
    7
    <?php
    $count = $_COOKIE['count'] + 1;
    setcookie('count', $count, time() + 3600);
    error_reporting(E_ALL);

    echo $_COOKIE['count'];
    ?>


    Ik vind het overigens maar raar dat het dan in zo'n boek helemaal verkeerd staat beschreven. En dan geven ze wel specifiek aan dat er geen enter gelijk na de <?php mag komen. omdat die dan een Warning aangeeft.
    JeRavrijdag 23 februari 2007 @ 20:25
    quote:
    Op vrijdag 23 februari 2007 20:02 schreef Wiehoe het volgende:
    Ik vind het overigens maar raar dat het dan in zo'n boek helemaal verkeerd staat beschreven.
    Daarom ben ik ook absoluut geen fan van boeken om een taal te leren, zeker niet als de taal zelf in constante ontwikkeling is.
    Swetseneggervrijdag 23 februari 2007 @ 20:53
    quote:
    Op vrijdag 23 februari 2007 17:52 schreef JeRa het volgende:

    [..]

    Niet eens, MySQL slaat tijd en datum intern ook op aan de hand van timestamps. Op het moment dat je een SELECT doet of de waarden vergelijkt aan de hand van zo'n datum/tijd dan zet MySQL de boel automagisch om naar een bepaalde representatie.
    nog een reden om gewoon datetime te gebruiken.
    quote:
    Verder ben ik benieuwd naar wat jij denkt meer te kunnen met een DATETIME / TIMESTAMP veld dan met een eigen timestamp die pas in de frontend voor presentatie wordt omgezet?
    Niets méér, wel makkelijker met de datesub functie van mysql en dergelijke.
    Geqxonvrijdag 23 februari 2007 @ 20:56
    quote:
    Op vrijdag 23 februari 2007 17:50 schreef JeRa het volgende:

    [..]

    Een integer van 11 tekens lang?

    Een INT(11) betekent niets anders dan dat je een integer veld hebt die bij een geactiveerde optie ZEROFILL een getal weergeeft dat wordt geprepad met nullen totdat het 11 nummers bevat. Zonder die optie betekent die 11 helemaal niéts.
    Is het niet zo dat met INT(11) ik elke keer 11 tekens aan geheugen reserveer?
    quote:
    Op vrijdag 23 februari 2007 17:52 schreef JeRa het volgende:

    [..]

    Niet eens, MySQL slaat tijd en datum intern ook op aan de hand van timestamps. Op het moment dat je een SELECT doet of de waarden vergelijkt aan de hand van zo'n datum/tijd dan zet MySQL de boel automagisch om naar een bepaalde representatie.

    Verder ben ik benieuwd naar wat jij denkt meer te kunnen met een DATETIME / TIMESTAMP veld dan met een eigen timestamp die pas in de frontend voor presentatie wordt omgezet?
    Daarom is het ook zo dat ik het persoonlijk fijner vind. Zo maakt phpMyAdmin bv. er weer "03 December 2007" van, moet ik het bij query's weer omzetten met MYSQL_DATEFORMAT (oid) enz. enz. Ik moet bekennen dat ik er al lang niet mee gewerkt hebt, dus ik kan niet concreet zijn met mijn voorbeelden.


    Ik heb er in het verleden redelijk wat last van gehad, vandaar dat ik het nu weer gewoon met integers doe, en het pas in de frontend omzet. Zo kan ik er ook makkelijk mee rekenen
    JeRavrijdag 23 februari 2007 @ 21:00
    quote:
    Op vrijdag 23 februari 2007 20:53 schreef Swetsenegger het volgende:

    [..]

    nog een reden om gewoon datetime te gebruiken.
    Nadeel is wel dat MySQL (vaak overbodige) informatie opslaat zoals milliseconden en timezones en dus meer schijfruimte nodig heeft om iets op te slaan wat je waarschijnlijk nooit nodig zult hebben. Als je veel om performance geeft en je ontzettend veel records hebt (miljoenen in mijn geval) wil je de DATETIME toch echt vermijden
    quote:
    [..]

    Niets méér, wel makkelijker met de datesub functie van mysql en dergelijke.
    Dat is relatief, het ligt er maar net aan waar je de bewerkingen doet. Ik vind het persoonlijk veel gemakkelijker om alle tijdsberekeningen met unix epoch timestamps in PHP te doen en MySQL de resultaten daarvan te voeren in plaats van date/time strings aan MySQL door te geven. 90% van de dingen die ik zo doe gaan gemakkelijker (en ook duidelijker in de code) door timestamps te gebruiken, en voor die overige 10% gebruik ik timestamp -> datetime conversies in MySQL (dezelfde die MySQL impliciet toch al zou gebruiken als je DATETIME gebruikt)
    JeRavrijdag 23 februari 2007 @ 21:02
    quote:
    Op vrijdag 23 februari 2007 20:56 schreef Geqxon het volgende:

    [..]

    Is het niet zo dat met INT(11) ik elke keer 11 tekens aan geheugen reserveer?
    Bij lange na niet, een signed of unsigned integer in MySQL neemt gewoon 4 bytes in beslag die 11 is alléén voor ZEROFILL, that's it.
    quote:
    [..]

    Daarom is het ook zo dat ik het persoonlijk fijner vind. Zo maakt phpMyAdmin bv. er weer "03 December 2007" van, moet ik het bij query's weer omzetten met MYSQL_DATEFORMAT (oid) enz. enz. Ik moet bekennen dat ik er al lang niet mee gewerkt hebt, dus ik kan niet concreet zijn met mijn voorbeelden.

    Ik heb er in het verleden redelijk wat last van gehad, vandaar dat ik het nu weer gewoon met integers doe, en het pas in de frontend omzet. Zo kan ik er ook makkelijk mee rekenen
    Ik ben ook iemand van presentatie in de presentatielaag en niet in de opslaglaag, dus ik zou ook voor de timestamps gaan. Een RDBMS zie ik als een handig systeem om snel informatie aan elkaar te koppelen, maar wat ik vervolgens met die informatie doe laat ik toch echt aan de presentatielaag over
    Geqxonvrijdag 23 februari 2007 @ 21:07
    quote:
    Op vrijdag 23 februari 2007 21:02 schreef JeRa het volgende:

    [..]

    Bij lange na niet, een signed of unsigned integer in MySQL neemt gewoon 4 bytes in beslag die 11 is alléén voor ZEROFILL, that's it.
    Wat mij van Oracle SQL bij staat, is dat als ik een Varchar2(30) in mijn database heb, dat hij dan altijd 30 tekens aan geheugen inneemt, ongeacht wat er in staat. Daarom is het juist zo belangrijk dat je kijkt welke data in je database komt, en hoe groot dat normaliter is. Maar dat is zo te horen dus niet met MySQL integers
    JeRavrijdag 23 februari 2007 @ 21:10
    quote:
    Op vrijdag 23 februari 2007 21:07 schreef Geqxon het volgende:

    [..]

    Wat mij van Oracle SQL bij staat, is dat als ik een Varchar2(30) in mijn database heb, dat hij dan altijd 30 tekens aan geheugen inneemt, ongeacht wat er in staat. Daarom is het juist zo belangrijk dat je kijkt welke data in je database komt, en hoe groot dat normaliter is. Maar dat is zo te horen dus niet met integers
    Daar gaat iets helemaal fout

    Een VARCHAR2 (achterlijke benaming trouwens, ach ja ) neemt net zoveel tekens in beslag als de string lang is die wordt opgeslagen, echter is dat tot een maximum van 30 tekens. Een CHAR neemt áltijd 30 tekens in beslag, want kortere strings krijgen spaties aan het einde totdat er 30 tekens in beslag worden genomen.

    Een INT is echter een compleet ander verhaal, die kun je niet zomaar variabele lengten geven omdat de capaciteit daarvan vervolgens exponentieel toeneemt en de meeste processoren niet zo goed omgaan met 80-bits integers, enzo verwarrend dus, maar voor die zerofill feature is het toch zo gedaan.
    Swetseneggervrijdag 23 februari 2007 @ 21:17
    quote:
    Op vrijdag 23 februari 2007 21:00 schreef JeRa het volgende:

    [..]

    Nadeel is wel dat MySQL (vaak overbodige) informatie opslaat zoals milliseconden en timezones en dus meer schijfruimte nodig heeft om iets op te slaan wat je waarschijnlijk nooit nodig zult hebben. Als je veel om performance geeft en je ontzettend veel records hebt (miljoenen in mijn geval) wil je de DATETIME toch echt vermijden
    Lees de TT nog eens JeRa vooral na de blokhaken
    quote:
    Dat is relatief, het ligt er maar net aan waar je de bewerkingen doet. Ik vind het persoonlijk veel gemakkelijker om alle tijdsberekeningen met unix epoch timestamps in PHP te doen en MySQL de resultaten daarvan te voeren in plaats van date/time strings aan MySQL door te geven. 90% van de dingen die ik zo doe gaan gemakkelijker (en ook duidelijker in de code) door timestamps te gebruiken, en voor die overige 10% gebruik ik timestamp -> datetime conversies in MySQL (dezelfde die MySQL impliciet toch al zou gebruiken als je DATETIME gebruikt)
    Voordat ik wist dat mysql van die handige datum functies had deed ik ook zo ingewikkeld
    JeRavrijdag 23 februari 2007 @ 21:20
    quote:
    Op vrijdag 23 februari 2007 21:17 schreef Swetsenegger het volgende:

    [..]

    Lees de TT nog eens JeRa vooral na de blokhaken
    [..]

    Voordat ik wist dat mysql van die handige datum functies had deed ik ook zo ingewikkeld
    Waarom laat je MySQL niet meteen alle HTML genereren?
    Swetseneggervrijdag 23 februari 2007 @ 21:23
    quote:
    Op vrijdag 23 februari 2007 21:20 schreef JeRa het volgende:

    [..]

    Waarom laat je MySQL niet meteen alle HTML genereren?
    kom kom... beetje nuanceren mag wel. De datum functies van mysql zijn gewoon verdomd handig voor wat de gemiddelde hobby-ist er mee doet.
    JeRavrijdag 23 februari 2007 @ 21:30
    quote:
    Op vrijdag 23 februari 2007 21:23 schreef Swetsenegger het volgende:

    [..]

    kom kom... beetje nuanceren mag wel. De datum functies van mysql zijn gewoon verdomd handig voor wat de gemiddelde hobby-ist er mee doet.
    De functies die PHP biedt leveren ook een scala aan mogelijkheden, de vraag is waarom je de datum/tijd representatie in de opslaglaag al wilt hebben en niet pas bij de presentatie. Enerzijds valt er wat voor te zeggen voor het type data (je gebruikt een veld met een bepaald type om data met een bepaald type op te slaan) maar anderzijds is het voor veel dummies een stuk gemakkelijker om simpelweg te vergelijken tussen secondes aangezien ontzettend veel elementen in PHP dit ook vereisen
    Swetseneggervrijdag 23 februari 2007 @ 21:35
    quote:
    Op vrijdag 23 februari 2007 21:30 schreef JeRa het volgende:

    [..]

    De functies die PHP biedt leveren ook een scala aan mogelijkheden, de vraag is waarom je de datum/tijd representatie in de opslaglaag al wilt hebben en niet pas bij de presentatie. Enerzijds valt er wat voor te zeggen voor het type data (je gebruikt een veld met een bepaald type om data met een bepaald type op te slaan) maar anderzijds is het voor veel dummies een stuk gemakkelijker om simpelweg te vergelijken tussen secondes aangezien ontzettend veel elementen in PHP dit ook vereisen
    Ik gebruik het tot op heden alleen om zaken van een dag geleden (of een week of een maand) uit de database te trekken. dan is datesub gewoon verdomd handig. Ik hoef niet eerst in php de tijd te definieren voordat ik iets uit mijn db trek.
    Geqxonvrijdag 23 februari 2007 @ 21:42
    Je weet toch wel dat een dag 86400 seconden zijn?
    JeRavrijdag 23 februari 2007 @ 21:46
    quote:
    Op vrijdag 23 februari 2007 21:35 schreef Swetsenegger het volgende:

    [..]

    Ik gebruik het tot op heden alleen om zaken van een dag geleden (of een week of een maand) uit de database te trekken. dan is datesub gewoon verdomd handig. Ik hoef niet eerst in php de tijd te definieren voordat ik iets uit mijn db trek.
    Nee, in plaats daarvan definiëer je 'm in de opslaglaag. Ik zie geen verschil.
    Geqxonvrijdag 23 februari 2007 @ 21:57
    Nu we toch over timestamps aan het miepen zijn :+

    1
    2
    3
    <?php
    $timestamp
    = mktime(0,0,0,date("m",time()),date("d",time()),date("y",time()));
    ?>


    Het resultaat? De timestamp van vandaag, exact op 00:00:00. Ik vind het enorm ranzige code, en vroeg mij af hoe ik dat netter ga krijgen?
    Swetseneggervrijdag 23 februari 2007 @ 21:59
    quote:
    Op vrijdag 23 februari 2007 21:46 schreef JeRa het volgende:

    [..]

    Nee, in plaats daarvan definiëer je 'm in de opslaglaag. Ik zie geen verschil.
    Het bespaart me moeite want met een timestamp moet ik nadenken en
    WHERE thedate<=DATE_SUB(NOW(), INTERVAL 1 DAY)
    is gewoon easy en gemakkelijk en helder leesbaar enzo. Dat snap ik over een jaar nog Al dat gereken met microsecondes heb ik als voormalig uurwerkmaker een pleurishekel.

    Ik bedoel, het hele idee van microtime is om te huilen natuurlijk. Het aantal microseconden verstreken sinds 1 januari 1970? Welke bosmongool heeft dat verzonnen? Hou dan in godesnaam gewoon de algemeen geaccepteerde epoch aan van 01-01-0000.
    Swetseneggervrijdag 23 februari 2007 @ 22:00
    quote:
    Op vrijdag 23 februari 2007 21:57 schreef Geqxon het volgende:
    Nu we toch over timestamps aan het miepen zijn
    [ code verwijderd ]

    Het resultaat? De timestamp van vandaag, exact op 00:00:00. Ik vind het enorm ranzige code, en vroeg mij af hoe ik dat netter ga krijgen?
    Niet... dat gekut met tijd in php is gewoon ranzig.
    JeRavrijdag 23 februari 2007 @ 22:10
    quote:
    Op vrijdag 23 februari 2007 21:57 schreef Geqxon het volgende:
    Nu we toch over timestamps aan het miepen zijn
    [ code verwijderd ]

    Het resultaat? De timestamp van vandaag, exact op 00:00:00. Ik vind het enorm ranzige code, en vroeg mij af hoe ik dat netter ga krijgen?
    strtotime('00:00') ofzo?
    Geqxonvrijdag 23 februari 2007 @ 22:11
    quote:
    Op vrijdag 23 februari 2007 21:59 schreef Swetsenegger het volgende:

    [..]

    Het bespaart me moeite want met een timestamp moet ik nadenken en
    WHERE thedate<=DATE_SUB(NOW(), INTERVAL 1 DAY)
    is gewoon easy en gemakkelijk en helder leesbaar enzo. Dat snap ik over een jaar nog Al dat gereken met microsecondes heb ik als voormalig uurwerkmaker een pleurishekel.

    Ik bedoel, het hele idee van microtime is om te huilen natuurlijk. Het aantal microseconden verstreken sinds 1 januari 1970? Welke bosmongool heeft dat verzonnen? Hou dan in godesnaam gewoon de algemeen geaccepteerde epoch aan van 01-01-0000.
    Gelukkig hebben we ook negatieve timestamps
    quote:
    Op vrijdag 23 februari 2007 22:00 schreef Swetsenegger het volgende:

    [..]

    Niet... dat gekut met tijd in php is gewoon ranzig.
    Nee, javascript is daar lekker in
    JeRavrijdag 23 februari 2007 @ 22:13
    quote:
    Op vrijdag 23 februari 2007 21:59 schreef Swetsenegger het volgende:

    [..]

    Het bespaart me moeite want met een timestamp moet ik nadenken en
    WHERE thedate<=DATE_SUB(NOW(), INTERVAL 1 DAY)
    is gewoon easy en gemakkelijk en helder leesbaar enzo. Dat snap ik over een jaar nog Al dat gereken met microsecondes heb ik als voormalig uurwerkmaker een pleurishekel.

    Ik bedoel, het hele idee van microtime is om te huilen natuurlijk. Het aantal microseconden verstreken sinds 1 januari 1970? Welke bosmongool heeft dat verzonnen? Hou dan in godesnaam gewoon de algemeen geaccepteerde epoch aan van 01-01-0000.
    Ehm, waarom begin je opeens over microtime? time() is voldoende hoor en het refereert natuurlijk naar de standaard Unix times, die vooral op unix-like systemen wordt gebruikt.
    Geqxonvrijdag 23 februari 2007 @ 22:14
    quote:
    Note: If the number of the year is specified in a two digit format, the values between 0-69 are mapped to 2000-2069 and 70-100 to 1970-2000.
    Ik ruik een tweede milenium bug... en dat is waarom mijn opa altijd zei: DD-MM-YYYY !
    Swetseneggervrijdag 23 februari 2007 @ 22:16
    quote:
    Op vrijdag 23 februari 2007 22:13 schreef JeRa het volgende:

    [..]

    Ehm, waarom begin je opeens over microtime? time() is voldoende hoor en het refereert natuurlijk naar de standaard Unix times, die vooral op unix-like systemen wordt gebruikt.
    Nog steeds gezeik
    En erger... ik win er niets mee.
    JeRavrijdag 23 februari 2007 @ 22:18
    quote:
    Op vrijdag 23 februari 2007 22:16 schreef Swetsenegger het volgende:

    [..]

    Nog steeds gezeik
    Ontzettend handig als je relatief wilt werken, bijvoorbeeld wilt weten hoeveel tijd er tussen twee data zit. Als je dat wilt doen met DATETIME moet je eerst allerlei vage conversiefuncties gaan gebruiken
    Swetseneggervrijdag 23 februari 2007 @ 22:23
    quote:
    Op vrijdag 23 februari 2007 22:18 schreef JeRa het volgende:

    [..]

    Ontzettend handig als je relatief wilt werken, bijvoorbeeld wilt weten hoeveel tijd er tussen twee data zit. Als je dat wilt doen met DATETIME moet je eerst allerlei vage conversiefuncties gaan gebruiken
    SELECT unix_timestamp(date1) -
    unix_timestamp(date2) FROM table_name



    Maar dat klopt als je wil weten wat er voor tijd vertstreken is tussen twee records is dat lastig. Maar ik wil voor mijn huidige toepassingen altijd weten hoeveel tijd er tussen en record en NU zit. En daar zijn de mysql functies gewoon verdomd handig voor
    Tiemiezaterdag 24 februari 2007 @ 00:35
    Ik gebruik altijd int's voor timestamps...waarom? omdat 9 v/d 10x de database de bottleneck is in een (grote) website. de database is voor mij puur voor de opslag.
    ExCibularzaterdag 24 februari 2007 @ 09:43
    Ik ben bezig met een template parser. Nou loop ik alleen tegen een probleem aan de code doet vervangt de waardes uit de template niet:

    1
    2
    3
    foreach ($this->tags as $tag=>$data){
    str_replace("<%$tag%>" , $data , $this->output);
    }


    $tags is een class array met de tags uit de template en de vervang data. Als ik alle delen afzondelijk echo krijg ik ze gewoon te zien. Alleen het replacen gaat niet goed.


    Laat maar ik ben nog slaperig. Moet natuurlijk zijn

    1$this->output = str_replace("<%$tag%>" , $data , $this->output);


    [ Bericht 12% gewijzigd door ExCibular op 24-02-2007 09:52:02 ]
    wobbelzaterdag 24 februari 2007 @ 13:35
    Met PHP heb ik totaal geen problemen om meerdere rijen onder elkaar te krijgen dmv resultaten uit de database, maaar hoe krijg ik meerdere kolommen met mijn resultaten??

    Dit dus:


    En als ik een rij toevoeg aan de DB
    wobbelzaterdag 24 februari 2007 @ 14:17
    Aaah heb iets (bijna) werkend

    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
    <?php
    $MySQL_Landen_Select        
    "SELECT * FROM CMS_Countries ORDER BY Country ASC";
    $MySQL_Landen_Query        mysql_query $MySQL_Landen_Select 
                                                                        or die ( 
    $error->MySQL __FILE__$MySQL_Landen_Select__LINE__ ) );
            
            echo 
    "<table width="100%">";
            echo 
    '<tr><td>-</td>';
            while(
    $obj mysql_fetch_object($MySQL_Landen_Query)){
             echo 
    '<td>';
             echo 
    $obj->Country;
             echo
    '</td>';
            }
            echo
    '<tr>';
            echo
    '<td>LaagsteIQ</td>';
            
            while(
    $obj mysql_fetch_object($MySQL_Landen_Query)){
             echo
    '<td>';
             echo 
    $obj->IQLaag;
             echo
    '</td>';
            }
            echo
    '</tr>';
            echo
    '<tr>';
            echo
    '<td>HoogsteIQ</td>';
            while(
    $obj mysql_fetch_object($MySQL_Landen_Query)){
             echo
    '<td>';
             echo 
    $obj->IQHoog;
             echo
    '</td>';
            }
            echo
    '</tr>';
            echo 
    "</table>";        
    ?>


    Probleem is dat $MySQL_Landen_Query leeg is na de 1e mysql_fetch_object

    [ Bericht 6% gewijzigd door wobbel op 24-02-2007 14:26:33 ]
    Swetseneggerzaterdag 24 februari 2007 @ 14:19
    hoe ziet je database model er eigenlijk uit? heb je 1 tabel of 2 tabellen voor deze gegevens?
    wobbelzaterdag 24 februari 2007 @ 14:26
    quote:
    Op zaterdag 24 februari 2007 14:19 schreef Swetsenegger het volgende:
    hoe ziet je database model er eigenlijk uit? heb je 1 tabel of 2 tabellen voor deze gegevens?
    Staat nu in script, gewoon 1 tabel met 3 rijen
    Swetseneggerzaterdag 24 februari 2007 @ 14:34
    dan zou ik gewoon in een cel divjes onder elkaar gooien en zo voor elke kolom een cel.
    wobbelzaterdag 24 februari 2007 @ 14:37
    quote:
    Op zaterdag 24 februari 2007 14:34 schreef Swetsenegger het volgende:
    dan zou ik gewoon in een cel divjes onder elkaar gooien en zo voor elke kolom een cel.
    moet met tabel, ivm kopieeren plakken naar andere progsels enzo, maar waarom wordt die query geleegd na 1e object?
    JeRazaterdag 24 februari 2007 @ 15:52
    quote:
    Op zaterdag 24 februari 2007 14:37 schreef wobbel het volgende:

    [..]

    moet met tabel, ivm kopieeren plakken naar andere progsels enzo, maar waarom wordt die query geleegd na 1e object?
    Die while-loop zorgt ervoor dat je de resultset helemaal leegtrekt je zult je dus moeten beperken tot een bepaald aantal items dat je uit de resultset haalt.
    Fliepkezondag 25 februari 2007 @ 09:37
    Hoi,

    Ik zit met een klein probleempje. Ik heb een tabel waarin nieuwsposts staan en die hebben allemaal een mooi unix timestamp meegekregen. Ik wil nu echter voor een bepaalde periode de boel groeperen per dag. Hoe doe ik dit?

    SELECT COUNT( * )
    FROM `items`
    WHERE TYPE = 'nieuws'
    AND 'Postid'
    BETWEEN 1167609600
    AND 1172275200
    GROUP BY ................. wat moet hier staan?
    SuperRembozondag 25 februari 2007 @ 12:41
    1GROUP BY FROM_UNIXTIME(timestamp, '%Y%m%d')


    Zie MySQL Date and Time Functions
    Fliepkezondag 25 februari 2007 @ 12:48
    Thx
    JortKzondag 25 februari 2007 @ 13:32
    Vraagje:

    Ik ben met Wordpress bezig, en wil hier posts gaan importeren.

    Nu heb ik een veld post_name, welke in de URL word gezet, dus bijvoorbeeld http://www.domein.nl/2007/02/pagina-naam.html

    Nu wil ik een check doen wanneer ik een post invoer, en de postname bestaat al, dat die er -1 achter zet.

    Weet iemand hoe ik dit aan moet pakken?


    Niet meer nodig... zelf een work around bedacht

    [ Bericht 13% gewijzigd door JortK op 25-02-2007 14:49:47 ]
    JortKzondag 25 februari 2007 @ 14:53
    Wel gelijk een volgend vraagje dan maar

    Ik wil een stuk html code (in me Wordpress tabel) gaan inserten, maar ik krijg de volgende melding:

    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 'center'>PLAATJE

    Hij laat dus het plaatje zien...

    Hoe kan ik een stuk HTML code inserten in een long text?

    EDIT dit is me variabele die ik gebruik:

    1
    2
    3
    <?php
    $POSTCONTENT
    = "<div align='center'><a href='{$URL}' target='_blank'><img src='{$THUMB1}' border='0'></a>&nbsp;&nbsp;<a href='{$URL}' target='_blank'><img src='{$THUMB2}' border='0'></a></div>{$POST_DESCR}";
    ?>


    [ Bericht 44% gewijzigd door JortK op 25-02-2007 15:10:17 ]
    ralfiezondag 25 februari 2007 @ 15:11
    ziet ernaar uit dat je je quotjes niet geescaped hebt

    probeer je tekst eerst eens door mysql_real_escape_string() te halen
    JortKzondag 25 februari 2007 @ 15:25
    quote:
    Op zondag 25 februari 2007 15:11 schreef ralfie het volgende:
    ziet ernaar uit dat je je quotjes niet geescaped hebt

    probeer je tekst eerst eens door mysql_real_escape_string() te halen
    Was net bezig de quotes aan te passen ja... nu werkt het als een speer
    JortKzondag 25 februari 2007 @ 16:49
    Volgend vraagje, want hier stoei ik al 2 uur mee lol :')

    Ik heb een variabele welke een nummer ophaalt:

    1
    2
    3
    <?php
    SELECT MAX
    (ID)+AS ID FROM wp_posts
    ?>


    Nu wil ik deze waarde die ik terugkrijg, inserten in een tabel, hoe krijg ik dit voor elkaar, want ik kom er nu niet uit met die fetch functies :(
    SuperRembozondag 25 februari 2007 @ 17:37
    Wat heb je dan geprobeerd? Op php.net staat vrij duidelijk uitgelegd hoe je mysql_fetch_assoc gebruikt.
    JortKzondag 25 februari 2007 @ 17:52
    quote:
    Op zondag 25 februari 2007 17:37 schreef SuperRembo het volgende:
    Wat heb je dan geprobeerd? Op php.net staat vrij duidelijk uitgelegd hoe je mysql_fetch_assoc gebruikt.
    ik heb met die fetch_row geklooit
    JortKzondag 25 februari 2007 @ 19:06
    Ik kom er toch niet helemaal uit

    Ik heb deze source (een deel)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <?php
    $ID    
    =     "SELECT MAX(ID)+1 AS ID FROM wp_posts";
    $GUID = "http://localhost/{$POSTJAAR}/$POSTMAAND/{$POSTDAG}/{$POSTNAME}/";
    $BLOGPOST = mysql_fetch_assoc($result01);

    /* Result Library */
    $result01 = mysql_query($ID) or die (result01);

    $query_post2cat = "INSERT INTO wp_post2cat (post_id, category_id)
    VALUES ('{$BLOGPOST}', '{$CATEGORIE}')"
    ;

    $result03 = mysql_query($query_post2cat) or die (result03);

    $query01 = "INSERT INTO wp_posts (ID, post_author, post_date, post_date_gmt, post_content, post_title, post_category, post_excerpt, post_status, comment_status, ping_status, post_password, post_name, to_ping, pinged, post_modified, post_modified_gmt, post_content_filtered, post_parent, guid, menu_order, post_type, post_mime_type, comment_count)
    VALUES ('', '1', '{$POSTIME}', '{$POSTIME}', '{$POSTCONTENT}', '{$POSTITLE}', '{$CATEGORIE}', '', 'future', 'open', 'open', '', LOWER('{$POSTNAME}'), '', '', NOW(), DATE_SUB(NOW(), INTERVAL 1 HOUR), '', '0', LOWER('{$GUID}'), '0', 'post', '', '0')"
    ;

    $result02 = mysql_query($query01) or die (result02);
    ?>


    Ik krijg deze foutmelding:

    1Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in D:ProgramsXAMPPxampphtdocsnewform_make_blogpost.php on line 39


    Zou iemand een blik willen werken waarom ik deze melding krijg?

    Het gaat er dus om dat ik met de variabele BLOGPOST query_post2cat wil vullen
    bleibleizondag 25 februari 2007 @ 19:24
    Ik ben momenteel aan het zoeken naar een PHP functie maar krijg em niet gevonden.
    Ik wil namelijk tekst van een website inlezen.
    Beetje a la RSS feed maar dan zonder dat die tekst via RSS aangeboden wordt.
    Het inlezen van tekst die op een andere website staat.
    Kan dat in PHP?
    ralfiezondag 25 februari 2007 @ 19:32
    quote:
    Op zondag 25 februari 2007 19:06 schreef JortK het volgende:
    Ik kom er toch niet helemaal uit

    Ik heb deze source (een deel)
    [ code verwijderd ]

    Ik krijg deze foutmelding:
    [ code verwijderd ]

    Zou iemand een blik willen werken waarom ik deze melding krijg?

    Het gaat er dus om dat ik met de variabele BLOGPOST query_post2cat wil vullen
    je kunt niet eerst de gegevens uit een query uitlezen en daarna je query pas maken

    kijk nog eens naar de voorbeelden op bijv php.net en met name de volgorde van mysql_connect, mysql_query en mysql_fetch_assoc. weet je uberhaupt wel wat deze functies doen?
    quote:
    Op zondag 25 februari 2007 19:24 schreef bleiblei het volgende:
    Ik ben momenteel aan het zoeken naar een PHP functie maar krijg em niet gevonden.
    Ik wil namelijk tekst van een website inlezen.
    Beetje a la RSS feed maar dan zonder dat die tekst via RSS aangeboden wordt.
    Het inlezen van tekst die op een andere website staat.
    Kan dat in PHP?
    (bijna?) alle functies in php die bestanden kunnen inlezen kunnen ook bestanden op andere servers (webpagina's dus ook) inlezen. Kijk dus eens naar functies als file(), file_get_contents(), fopen(). Als je specifieke informatie moet vinden in die tekst, moet je waarschijnlijk wel met regexp's gaan werken: zie http://nl3.php.net/manual/nl/ref.pcre.php
    JortKzondag 25 februari 2007 @ 19:43
    quote:
    Op zondag 25 februari 2007 19:32 schreef ralfie het volgende:

    [..]

    je kunt niet eerst de gegevens uit een query uitlezen en daarna je query pas maken

    kijk nog eens naar de voorbeelden op bijv php.net en met name de volgorde van mysql_connect, mysql_query en mysql_fetch_assoc. weet je uberhaupt wel wat deze functies doen?
    [..]

    (bijna?) alle functies in php die bestanden kunnen inlezen kunnen ook bestanden op andere servers (webpagina's dus ook) inlezen. Kijk dus eens naar functies als file(), file_get_contents(), fopen(). Als je specifieke informatie moet vinden in die tekst, moet je waarschijnlijk wel met regexp's gaan werken: zie http://nl3.php.net/manual/nl/ref.pcre.php
    Hij werkt inmiddels ook weer... ik heb gedurende de dag zoveel zitten kloten dat de hele volgorde naar ze malle moer is
    Swetseneggerzondag 25 februari 2007 @ 20:00
    quote:
    Op zondag 25 februari 2007 19:24 schreef bleiblei het volgende:
    Ik ben momenteel aan het zoeken naar een PHP functie maar krijg em niet gevonden.
    Ik wil namelijk tekst van een website inlezen.
    Beetje a la RSS feed maar dan zonder dat die tekst via RSS aangeboden wordt.
    Het inlezen van tekst die op een andere website staat.
    Kan dat in PHP?
    Je kan hem includen of je kan misschien met file_get_contents of file wat proberen.
    bleibleizondag 25 februari 2007 @ 21:34
    Ah super! Ik zal er naar kijken!
    Dank jullie wel!
    CraZaaymaandag 26 februari 2007 @ 00:17
    quote:
    Op zondag 25 februari 2007 19:06 schreef JortK het volgende:

    Ik heb deze source (een deel)
    Half off topic: die uppercase variable namen zijn niet gangbaar. De conventie is dat variable namen lowercase zijn (en constants uppercase).
    Lightmaandag 26 februari 2007 @ 08:01
    quote:
    Op zondag 25 februari 2007 16:49 schreef JortK het volgende:
    Volgend vraagje, want hier stoei ik al 2 uur mee lol

    Ik heb een variabele welke een nummer ophaalt:
    [ code verwijderd ]

    Nu wil ik deze waarde die ik terugkrijg, inserten in een tabel, hoe krijg ik dit voor elkaar, want ik kom er nu niet uit met die fetch functies
    Waarom wil je eigenlijk MAX(id)+1 ophalen? Je kunt beter het ID veld in de database op auto-increment zetten. Dan zorgt mysql er zelf voor dat het volgende beschikbare nummer wordt gebruikt, en het voorkomt meteen dat nummers dubbel worden gebruikt.
    JortKmaandag 26 februari 2007 @ 09:30
    quote:
    Op maandag 26 februari 2007 08:01 schreef Light het volgende:

    [..]

    Waarom wil je eigenlijk MAX(id)+1 ophalen? Je kunt beter het ID veld in de database op auto-increment zetten. Dan zorgt mysql er zelf voor dat het volgende beschikbare nummer wordt gebruikt, en het voorkomt meteen dat nummers dubbel worden gebruikt.
    Is ook al geregeld... Wordpress doet dat zelf al
    Swetseneggermaandag 26 februari 2007 @ 15:25
    Is er nog iemand opzoek naar een technisch webmaster functie in de regio Rdam?
    Neverstopmaandag 26 februari 2007 @ 15:43
    quote:
    Op maandag 26 februari 2007 15:25 schreef Swetsenegger het volgende:
    Is er nog iemand opzoek naar een technisch webmaster functie in de regio Rdam?
    Heb interesse, zie je PM inbox.

    [ Bericht 2% gewijzigd door Neverstop op 26-02-2007 16:02:39 ]
    super-muffinmaandag 26 februari 2007 @ 15:51
    quote:
    Op vrijdag 23 februari 2007 17:24 schreef JeRa het volgende:

    [..]

    Afhankelijk van hoe je je CMS in elkaar hebt gezet kun je ervoor kiezen om twee opeenvolgende line breaks om te toveren in een nieuwe paragraaf? Dan moet je natuurlijk wel de paragrafen tekst goed bepalen, omdat je daar de <p>...</p> omheen moet zetten
    Mijn CMS is nog in de beginfase. Als ik zoek op nl2p in Google krijg ik wel een aantal goede suggesties.
    Dank
    Swetseneggermaandag 26 februari 2007 @ 17:58
    Mijn hoster is vandaag over gegaan naar php5 en omdat hij naar eigen zeggen een probleem in een site aantrof heeft hij een wijziging in een query doorgevoerd:

    Oud
    1
    2
    3
    4
    5
    6
    7
    $query="SELECT parent.name AS parentname, node.menu_id, node.name, node.lft, node.rgt, 
            COUNT( parent.name ) AS depth, c.link
            FROM nested_menu AS node, nested_menu AS parent
            LEFT JOIN connection c ON (node.menu_id=c.menu_id)
            WHERE node.lft BETWEEN parent.lft AND parent.rgt
            GROUP BY node.menu_id
            ORDER BY node.lft";

    Nieuw
    1
    2
    3
    4
    5
    6
    7
    8
    $query="SELECT parent.name AS parentname, node.menu_id, node.name, node.lft, node.rgt,
            COUNT( parent.name ) AS depth, c.link
            FROM nested_menu AS node
                    LEFT JOIN `connection` c ON (node.menu_id=c.menu_id)
                    , nested_menu AS parent
            WHERE node.lft BETWEEN parent.lft AND parent.rgt
            GROUP BY node.menu_id
            ORDER BY node.lft";


    Ik begrijp het verschil eigenlijk niet. Dit is toch gewoon hetzelfde :?
    Orealomaandag 26 februari 2007 @ 18:14
    Hoi,

    Ik wil graag 1 command gebruiken om uit verschillende databases 1 nummer te halen, voorbeeld.

    we hebben 3 databases :
    Pizza
    Macaroni
    Spaghetti

    Ze hebben allemaal tabel groente.
    Wat ik dus wil is het volgende :

    Select * from Pizza where groente = wortel
    Select * from Macaroni where groente = wortel
    Select * from Spaghetti where groente = wortel

    echter wil ik niet 3x wortel intikken.
    Zoiets dus :

    A = wortel

    Select * from Pizza where groente = A
    Select * from Macaroni where groente = A
    Select * from Spaghetti where groente = A

    Zodat ik wortel aan kan passen aan bijvoorbeeld geraspte wortel, zonder het opnieuw 3x in te tikken.
    Neverstopmaandag 26 februari 2007 @ 18:58
    quote:
    Op maandag 26 februari 2007 17:58 schreef Swetsenegger het volgende:
    Mijn hoster is vandaag over gegaan naar php5 en omdat hij naar eigen zeggen een probleem in een site aantrof heeft hij een wijziging in een query doorgevoerd:

    Oud
    [ code verwijderd ]

    Nieuw
    [ code verwijderd ]

    Ik begrijp het verschil eigenlijk niet. Dit is toch gewoon hetzelfde
    Hij gaat over op PHP5 en hij wijzigt een MySQL query..
    Neem aan dat de queries helemaal niks te maken hebben met de versie van PHP.
    super-muffinmaandag 26 februari 2007 @ 19:03
    quote:
    Op maandag 26 februari 2007 18:14 schreef Orealo het volgende:
    Hoi,

    Ik wil graag 1 command gebruiken om uit verschillende databases 1 nummer te halen, voorbeeld.

    we hebben 3 databases :
    Pizza
    Macaroni
    Spaghetti

    Ze hebben allemaal tabel groente.
    Wat ik dus wil is het volgende :

    Select * from Pizza where groente = wortel
    Select * from Macaroni where groente = wortel
    Select * from Spaghetti where groente = wortel

    echter wil ik niet 3x wortel intikken.
    Zoiets dus :

    A = wortel

    Select * from Pizza where groente = A
    Select * from Macaroni where groente = A
    Select * from Spaghetti where groente = A

    Zodat ik wortel aan kan passen aan bijvoorbeeld geraspte wortel, zonder het opnieuw 3x in te tikken.
    SELECT * FROM Pizza, Macaroni, Spagettie WHERE groente = A
    HuHumaandag 26 februari 2007 @ 19:04
    quote:
    Op maandag 26 februari 2007 18:14 schreef Orealo het volgende:
    Hoi,

    Ik wil graag 1 command gebruiken om uit verschillende databases 1 nummer te halen, voorbeeld.

    we hebben 3 databases :
    Pizza
    Macaroni
    Spaghetti

    Ze hebben allemaal tabel groente.
    Wat ik dus wil is het volgende :

    Select * from Pizza where groente = wortel
    Select * from Macaroni where groente = wortel
    Select * from Spaghetti where groente = wortel

    echter wil ik niet 3x wortel intikken.
    Zoiets dus :

    A = wortel

    Select * from Pizza where groente = A
    Select * from Macaroni where groente = A
    Select * from Spaghetti where groente = A

    Zodat ik wortel aan kan passen aan bijvoorbeeld geraspte wortel, zonder het opnieuw 3x in te tikken.
    Er is een verschil tussen databases en tabellen hè. In een database zitten tabellen.

    1
    2
    3
    4
    5
    6
    7
    <?php
    $a 
    "wortel";

    $query_1 "SELECT * FROM pizza WHERE groente = '{$a}';";
    $query_2 "SELECT * FROM macaroni WHERE groente = '{$a}';";
    $query_3 "SELECT * FROM spaghetti WHERE groente = '{$a}';";
    ?>


    Of:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    $a 
    "wortel";

    $query "SELECT * 
    FROM pizza, macaroni, spaghetti 
    WHERE pizza.groente = '{$a}'
    OR macaroni.groente = '{$a}'
    OR spaghetti.groente = '{$a}';"
    ;
    ?>
    HuHumaandag 26 februari 2007 @ 19:05
    quote:
    Op maandag 26 februari 2007 19:03 schreef super-muffin het volgende:

    [..]

    SELECT * FROM Pizza, Macaroni, Spagettie WHERE groente = A
    Moet je niet expliciet aangeven uit welke tabel je de 'groente' wilt hebben, omdat deze niet ondubbelzinnig is?
    sabanmaandag 26 februari 2007 @ 19:53
    Ik kom ergens niet helemaal uit, al een heel lang tijd geen php gedaan :@

    Stel je maakt een session aan door middel van:
    1
    2
    3
    <?php
        $_SESSION
    ['count'] = 0;
    ?>


    Daarna wil je de session verwerken in je query, maar hoe doe je dat? Onderstaande is niet correct:
    1
    2
    3
    <?php
    $query
    = "SELECT mededeling FROM `mededelingen` LIMIT $_SESSION['count'] , 0";
    ?>


    Ook niet als ik de [ en ] backslash.
    Hoe moet het dus precies?
    Swetseneggermaandag 26 februari 2007 @ 20:17
    quote:
    Op maandag 26 februari 2007 18:58 schreef Neverstop het volgende:

    [..]

    Hij gaat over op PHP5 en hij wijzigt een MySQL query..
    Neem aan dat de queries helemaal niks te maken hebben met de versie van PHP.
    Ook dat, hij is ook over gegaan naar mysql 5
    dus php4 -> php5 en mysql4 -> mysql5

    Maar daarnaast.... wat is het verschil tussen de queries
    Swetseneggermaandag 26 februari 2007 @ 20:18
    quote:
    Op maandag 26 februari 2007 19:53 schreef saban het volgende:
    Ik kom ergens niet helemaal uit, al een heel lang tijd geen php gedaan :@

    Stel je maakt een session aan door middel van:
    [ code verwijderd ]

    Daarna wil je de session verwerken in je query, maar hoe doe je dat? Onderstaande is niet correct:
    [ code verwijderd ]

    Ook niet als ik de [ en ] backslash.
    Hoe moet het dus precies?
    1$query = "SELECT mededeling FROM mededelingen LIMIT ".$_SESSION['count']." , 0";

    overigens zal limit 0,0 weinig terug geven gok ik :)
    sabanmaandag 26 februari 2007 @ 20:20
    quote:
    Op maandag 26 februari 2007 20:18 schreef Swetsenegger het volgende:

    [..]
    [ code verwijderd ]

    overigens zal limit 0,0 weinig terug geven gok ik
    Bedankt, even verder php'en.
    Ach de 0 was maar een voorbeeld
    JeRamaandag 26 februari 2007 @ 21:24
    quote:
    Op maandag 26 februari 2007 17:58 schreef Swetsenegger het volgende:
    Mijn hoster is vandaag over gegaan naar php5 en omdat hij naar eigen zeggen een probleem in een site aantrof heeft hij een wijziging in een query doorgevoerd:

    Oud
    [ code verwijderd ]

    Nieuw
    [ code verwijderd ]

    Ik begrijp het verschil eigenlijk niet. Dit is toch gewoon hetzelfde
    Allereerst: een hoster die queries wijzigt had ie je wel vantevoren gemeld dat ze over zouden stappen op PHP5 en MySQL5?

    Ten tweede: beide queries zouden moeten werken in beide versies van MySQL, dus ik ben erg benieuwd naar het 'probleem'.

    Ten derde: er is voor zover ik kan zien geen verschil tussen de queries. Heb je al geprobeerd de eerste i.p.v. de laatste query uit te voeren?
    Xcaliburmaandag 26 februari 2007 @ 21:29
    quote:
    Op maandag 26 februari 2007 20:17 schreef Swetsenegger het volgende:
    Ook dat, hij is ook over gegaan naar mysql 5
    dus php4 -> php5 en mysql4 -> mysql5

    Maar daarnaast.... wat is het verschil tussen de queries
    vage actie

    Op het eerste gezicht zou dit weinig uit moeten maken, tenzij ik over een quote heenkijk ofzo?
    Vind de nieuwe optie wel netter trouwens, maar daar zal ie het niet voor gedaan hebben
    Swetseneggermaandag 26 februari 2007 @ 21:55
    quote:
    Op maandag 26 februari 2007 21:24 schreef JeRa het volgende:

    [..]

    Allereerst: een hoster die queries wijzigt had ie je wel vantevoren gemeld dat ze over zouden stappen op PHP5 en MySQL5?
    Nee en ondanks dat het meer een vriend dan zakenrelatie is ben ik er op zijn zachts niet blij mee, want ik ben de hele avond al kleine dingentjes aan het fixen in een stuk of 5 verschillende sites.
    quote:
    Ten tweede: beide queries zouden moeten werken in beide versies van MySQL, dus ik ben erg benieuwd naar het 'probleem'.
    Dat dacht ik ook en ben dus net zo benieuwd
    quote:
    Ten derde: er is voor zover ik kan zien geen verschil tussen de queries. Heb je al geprobeerd de eerste i.p.v. de laatste query uit te voeren?
    Min of meer, het is onderdeel van een hierarchisch menu die zonder probleem ook op een andere website draait... bij dezelfde hoster.
    JeRamaandag 26 februari 2007 @ 22:09
    quote:
    Op maandag 26 februari 2007 21:55 schreef Swetsenegger het volgende:

    [..]

    Nee en ondanks dat het meer een vriend dan zakenrelatie is ben ik er op zijn zachts niet blij mee, want ik ben de hele avond al kleine dingentjes aan het fixen in een stuk of 5 verschillende sites.
    Dat niet alleen, ik zou het persoonlijk niet echt kunnen waarderen dat iemand zonder vraag of waarschuwing in mijn bestanden gaat zitten neuzen.
    quote:
    Min of meer, het is onderdeel van een hierarchisch menu die zonder probleem ook op een andere website draait... bij dezelfde hoster.
    Ik heb zo het vermoeden dat er helemaal geen probleem met die query is. Hij heeft de tabel 'connection' in backticks gezet, maar 'connection' is helemaal geen reserved word in MySQL.
    Swetseneggermaandag 26 februari 2007 @ 22:11
    quote:
    Op maandag 26 februari 2007 22:09 schreef JeRa het volgende:

    [..]

    Dat niet alleen, ik zou het persoonlijk niet echt kunnen waarderen dat iemand zonder vraag of waarschuwing in mijn bestanden gaat zitten neuzen.
    [..]

    Ik heb zo het vermoeden dat er helemaal geen probleem met die query is. Hij heeft de tabel 'connection' in backticks gezet, maar 'connection' is helemaal geen reserved word in MySQL.
    Dat begreep ik dus ook niet.
    Staat trouwens de error_reporting strakker in PHP5?
    Want ik ben dus voornamelijk de hele avond bezig warnings af te vangen.

    Ja ik weet het het is in eerste instantie slordig programmeren van mij wanneer ik met een var aan de slag ga die alleen in bepaalde situaties bestaat (en nu dus in de andere situaties een smerige warning oplevert)
    Xcaliburmaandag 26 februari 2007 @ 22:21
    quote:
    Op maandag 26 februari 2007 22:11 schreef Swetsenegger het volgende:
    Ja ik weet het het is in eerste instantie slordig programmeren van mij wanneer ik met een var aan de slag ga die alleen in bepaalde situaties bestaat (en nu dus in de andere situaties een smerige warning oplevert)
    misschien moet je eens op de hoogste error reporting (E_ALL) gaan ontwikkelen?
    In eerste instantie schrik je je een ongeluk, maar daarna ben je wel van het gezeik af
    Swetseneggermaandag 26 februari 2007 @ 22:33
    quote:
    Op maandag 26 februari 2007 22:21 schreef Xcalibur het volgende:

    [..]

    misschien moet je eens op de hoogste error reporting (E_ALL) gaan ontwikkelen?
    In eerste instantie schrik je je een ongeluk, maar daarna ben je wel van het gezeik af
    Dat doe ik alleen als het niet werkt
    Ik vind het ook wat gezeur hoor..., warnings. Als een var niet bestaat, bestaat hij niet
    Xcaliburmaandag 26 februari 2007 @ 22:36
    ik doe het standaard
    weet ik tenminste zeker dat het op een andere server zonder problemen werkt...
    CraZaaymaandag 26 februari 2007 @ 22:48
    quote:
    Op maandag 26 februari 2007 22:33 schreef Swetsenegger het volgende:

    Ik vind het ook wat gezeur hoor..., warnings. Als een var niet bestaat, bestaat hij niet
    Swetseneggermaandag 26 februari 2007 @ 22:57
    deze doet het dus echt niet :?
    1
    2
    3
    4
    5
    6
    7
    $query="SELECT parent.name AS parentname, node.menu_id, node.name, node.lft, node.rgt, 
            COUNT( parent.name ) AS depth, c.link
            FROM nested_menu AS node, nested_menu AS parent
            LEFT JOIN connection c ON (node.menu_id=c.menu_id)
            WHERE node.lft BETWEEN parent.lft AND parent.rgt
            GROUP BY node.menu_id
            ORDER BY node.lft";
    quote:
    You have an error [...] near 'connection c on (node.menu_id=c.menu_id)
    plaats ik vervolgens backticks
    quote:
    unknown column 'node.menu_id' in 'on clause'
    Dus blijkbaar is connection toch een reserved name. Maar fout 2 snap ik geen ruk van.
    Deze werkt dus wel

    Nieuw
    1
    2
    3
    4
    5
    6
    7
    8
    $query="SELECT parent.name AS parentname, node.menu_id, node.name, node.lft, node.rgt,
            COUNT( parent.name ) AS depth, c.link
            FROM nested_menu AS node
                    LEFT JOIN `connection` c ON (node.menu_id=c.menu_id)
                    , nested_menu AS parent
            WHERE node.lft BETWEEN parent.lft AND parent.rgt
            GROUP BY node.menu_id
            ORDER BY node.lft";
    Swetseneggermaandag 26 februari 2007 @ 22:58
    quote:
    Op maandag 26 februari 2007 22:48 schreef CraZaay het volgende:

    [..]

    Lightmaandag 26 februari 2007 @ 23:10
    quote:
    Op maandag 26 februari 2007 20:17 schreef Swetsenegger het volgende:

    [..]

    Ook dat, hij is ook over gegaan naar mysql 5
    dus php4 -> php5 en mysql4 -> mysql5

    Maar daarnaast.... wat is het verschil tussen de queries
    De regel met FROM is aangepast. Zou geen verschil mogen uitmaken volgens mij.
    super-muffinmaandag 26 februari 2007 @ 23:15
    quote:
    Op maandag 26 februari 2007 19:05 schreef HuHu het volgende:

    [..]

    Moet je niet expliciet aangeven uit welke tabel je de 'groente' wilt hebben, omdat deze niet ondubbelzinnig is?
    Inderdaad, niet aan gedacht, en kreeg mijn post niet gewijzigd.
    Swetseneggerdinsdag 27 februari 2007 @ 07:52
    quote:
    Op maandag 26 februari 2007 23:10 schreef Light het volgende:

    [..]

    De regel met FROM is aangepast. Zou geen verschil mogen uitmaken volgens mij.
    Ja precies, de nested menu AS parent is van de FROM regel achter de LEFT JOIN geplakt.
    En dan krijg ik dus die 2e fout niet.... wazig.
    JeRadinsdag 27 februari 2007 @ 08:10
    quote:
    Op dinsdag 27 februari 2007 07:52 schreef Swetsenegger het volgende:

    [..]

    Ja precies, de nested menu AS parent is van de FROM regel achter de LEFT JOIN geplakt.
    En dan krijg ik dus die 2e fout niet.... wazig.
    Wat krijg je als je de oorspronkelijke query uitvoert, met backticks om 'connection' heen?
    Swetseneggerdinsdag 27 februari 2007 @ 08:16
    quote:
    Op dinsdag 27 februari 2007 08:10 schreef JeRa het volgende:

    [..]

    Wat krijg je als je de oorspronkelijke query uitvoert, met backticks om 'connection' heen?
    Fout 2:
    quote:
    plaats ik vervolgens backticks

    1unknown column 'node.menu_id' in 'on clause'
    JeRadinsdag 27 februari 2007 @ 08:33
    quote:
    INNER JOIN and , (comma) are semantically equivalent in the absence of a join condition: both produce a Cartesian product between the specified tables (that is, each and every row in the first table is joined to each and every row in the second table).

    However, the precedence of the comma operator is less than than of INNER JOIN, CROSS JOIN, LEFT JOIN, and so on. If you mix comma joins with the other join types when there is a join condition, an error of the form Unknown column 'col_name' in 'on clause' may occur. Information about dealing with this problem is given later in this section.
    Bron: http://dev.mysql.com/doc/refman/5.0/en/join.html

    Swetseneggerdinsdag 27 februari 2007 @ 08:38
    quote:
    Als ik het goed begrijp een mysql equivalent van een Meneer Van Dle Wacht Op Antwoord fout?
    Dus een komma join mixen met een gewone Join zorgt ervoor dat de gewone 'voorgaat' op de komma?
    JeRadinsdag 27 februari 2007 @ 08:42
    quote:
    Op dinsdag 27 februari 2007 08:38 schreef Swetsenegger het volgende:

    [..]

    Dus een komma join mixen met een gewone Join zorgt ervoor dat de gewone 'voorgaat' op de komma?
    Juist, en daardoor bestaat de kolomnaam in de conditie dus nog niet
    Swetseneggerdinsdag 27 februari 2007 @ 09:23
    Duidelijk.

    Verder niemand hier opzoek naar een technisch webmaster functie in de regio Rdam?
    Joenedinsdag 27 februari 2007 @ 09:32
    quote:
    Op dinsdag 27 februari 2007 09:23 schreef Swetsenegger het volgende:
    Duidelijk.

    Verder niemand hier opzoek naar een technisch webmaster functie in de regio Rdam?
    je gaat weer wat anders doen of je zoekt collega's ?
    Swetseneggerdinsdag 27 februari 2007 @ 09:42
    quote:
    Op dinsdag 27 februari 2007 09:32 schreef Joene het volgende:

    [..]

    je gaat weer wat anders doen of je zoekt collega's ?
    Ik ga weer wat anders doen
    Joenedinsdag 27 februari 2007 @ 09:46
    quote:
    Op dinsdag 27 februari 2007 09:42 schreef Swetsenegger het volgende:

    [..]

    Ik ga weer wat anders doen
    Je hebt het switch virus lekker te pakken momenteel, wat ga je doen ?
    Chandlerdinsdag 27 februari 2007 @ 09:55
    hoe kan ik met regex meerdere regels uitlezen?

    bv
    1
    2
    3
    4
    5
    start:

    bla
    bladediebla
    eind:


    nu wil ik alles uitlezen tussen start: en eind:

    ? (w.*?) werkt iig niet...
    ralfiedinsdag 27 februari 2007 @ 10:02
    quote:
    Op dinsdag 27 februari 2007 09:55 schreef Chandler het volgende:
    hoe kan ik met regex meerdere regels uitlezen?

    bv
    [ code verwijderd ]

    nu wil ik alles uitlezen tussen start: en eind:

    ? (w.*?) werkt iig niet...
    daarvoor moet je de s modifier gebruiken, bij
    /start:(.*?)eind:/s
    Swetseneggerdinsdag 27 februari 2007 @ 10:07
    quote:
    Op dinsdag 27 februari 2007 09:46 schreef Joene het volgende:

    [..]

    Je hebt het switch virus lekker te pakken momenteel, wat ga je doen ?
    terug naar mijn oude baas
    sabandinsdag 27 februari 2007 @ 10:14
    quote:
    Op dinsdag 27 februari 2007 10:07 schreef Swetsenegger het volgende:

    [..]

    terug naar mijn oude baas
    Waar werk je nu en wat doe je, ik wil je job wel overnemen
    Joenedinsdag 27 februari 2007 @ 10:17
    quote:
    Op dinsdag 27 februari 2007 10:07 schreef Swetsenegger het volgende:

    [..]

    terug naar mijn oude baas
    Men
    Swetseneggerdinsdag 27 februari 2007 @ 10:27
    quote:
    Op dinsdag 27 februari 2007 10:17 schreef Joene het volgende:

    [..]

    Men
    Tja... offer I can't refuse
    Joenedinsdag 27 februari 2007 @ 10:30
    quote:
    Op dinsdag 27 februari 2007 10:27 schreef Swetsenegger het volgende:

    [..]

    Tja... offer I can't refuse
    Mooi dan toch , nou suc6 dan maar weer
    Chandlerdinsdag 27 februari 2007 @ 10:31
    @Ralfie: je hebt idd gelijk die w was helemaal verkeerd

    maar nu het volgende, hoe kan ik in een regexje alles opvragen TOT een lege nieuwe regel?

    [ Bericht 42% gewijzigd door Chandler op 27-02-2007 10:41:55 ]
    Swetseneggerdinsdag 27 februari 2007 @ 10:48
    quote:
    Op dinsdag 27 februari 2007 10:31 schreef Chandler het volgende:
    @Ralfie: je hebt idd gelijk die w was helemaal verkeerd

    maar nu het volgende, hoe kan ik in een regexje alles opvragen TOT een lege nieuwe regel?
    \n?

    godverdomme, tering slash bug
    slash slash n?
    ralfiedinsdag 27 februari 2007 @ 10:51
    /start:(.*?)^\s+$/ms
    Chandlerdinsdag 27 februari 2007 @ 11:00
    quote:
    Op dinsdag 27 februari 2007 10:48 schreef Swetsenegger het volgende:

    [..]

    \n?

    godverdomme, tering slash bug
    slash slash n?
    nee, dat werkte niet tenminste niet in de pogingen die ik had ondernomen.
    quote:
    Op dinsdag 27 februari 2007 10:51 schreef ralfie het volgende:
    /start:(.*?)^\s+$/ms
    veel korter dan dat ik in gedachten had...

    hoe moet ik deze lezen? kun je eens heel kort een omschrijving geven van het geen dat hier staat.

    (.*?) snap ik = alles wat er maar te pakken valt....
    \ \ s+$ moet dan tot een nieuwline zijn?
    ralfiedinsdag 27 februari 2007 @ 11:05
    quote:
    Op dinsdag 27 februari 2007 11:00 schreef Chandler het volgende:

    [..]

    nee, dat werkte niet tenminste niet in de pogingen die ik had ondernomen.
    [..]

    veel korter dan dat ik in gedachten had...

    hoe moet ik deze lezen? kun je eens heel kort een omschrijving geven van het geen dat hier staat.

    (.*?) snap ik = alles wat er maar te pakken valt....
    \ \ s+$ moet dan tot een nieuwline zijn?
    de m modifier zorgt ervoor dat ^en $ niet het begin en eind van de hele string, maar elke regel apart matchen.
    \s+ matcht spaties/tabs etc (1 of meer) mss is \s* beter, matched die ook regels zonder spaties

    ^\s+$ matched dus een hele regel met daarop 1 of meer lege karakters. (en ^\s*$ een regel met 0 of meer)
    SuperRembodinsdag 27 februari 2007 @ 11:50
    quote:
    Op dinsdag 27 februari 2007 09:23 schreef Swetsenegger het volgende:
    Duidelijk.

    Verder niemand hier opzoek naar een technisch webmaster functie in de regio Rdam?
    Nee, maar we zoeken nog wel een paar developers. Zie sig.

    [/spam]
    JortKdinsdag 27 februari 2007 @ 11:56
    quote:
    Op dinsdag 27 februari 2007 11:50 schreef SuperRembo het volgende:

    [..]

    Nee, maar we zoeken nog wel een paar developers. Zie sig.

    [/spam]
    De link naar introductie via je pagina doet het niet staat aspxx ipv aspx
    HuHudinsdag 27 februari 2007 @ 12:21
    quote:
    Op dinsdag 27 februari 2007 11:50 schreef SuperRembo het volgende:

    [..]

    Nee, maar we zoeken nog wel een paar developers. Zie sig.

    [/spam]
    Je 'rechtermuisknopafvangding' is een beetje overactief. Ik kan ook niet de middle-mouse-button gebruiken om een pagina in een andere tab te openen.
    Chandlerdinsdag 27 februari 2007 @ 12:24
    tnx ralfie... ben weer ietsje wijzer
    JeRadinsdag 27 februari 2007 @ 12:29
    quote:
    Op dinsdag 27 februari 2007 12:21 schreef HuHu het volgende:

    [..]

    Je 'rechtermuisknopafvangding' is een beetje overactief. Ik kan ook niet de middle-mouse-button gebruiken om een pagina in een andere tab te openen.
    Inderdaad, SuperRembo, zorg er eens voor dat die alert van de site gaat als ik naar een baan zocht was dat al een punt waarop ik zou afhaken. Een javascript right mouse click alert is tot daaraan toe, eentje die niet voor 100% werkt duidt op een halve developer ergens en ik zou niet willen werken bij een bedrijf waar je de helft van de tijd bezig bent de troep van je collega's op te ruimen.
    CraZaaydinsdag 27 februari 2007 @ 12:49
    quote:
    Op dinsdag 27 februari 2007 12:21 schreef HuHu het volgende:

    [..]

    Je 'rechtermuisknopafvangding' is een beetje overactief. Ik kan ook niet de middle-mouse-button gebruiken om een pagina in een andere tab te openen.
    Daarnaast ben ik meer dan benieuwd waar al die teksten en foto's dan gedeponeerd zijn
    HuHudinsdag 27 februari 2007 @ 13:27
    quote:
    Op dinsdag 27 februari 2007 12:49 schreef CraZaay het volgende:

    [..]

    Daarnaast ben ik meer dan benieuwd waar al die teksten en foto's dan gedeponeerd zijn
    Page -> View Source
    SuperRembodinsdag 27 februari 2007 @ 15:24
    quote:
    Op dinsdag 27 februari 2007 12:29 schreef JeRa het volgende:

    [..]

    Inderdaad, SuperRembo, zorg er eens voor dat die alert van de site gaat als ik naar een baan zocht was dat al een punt waarop ik zou afhaken. Een javascript right mouse click alert is tot daaraan toe, eentje die niet voor 100% werkt duidt op een halve developer ergens en ik zou niet willen werken bij een bedrijf waar je de helft van de tijd bezig bent de troep van je collega's op te ruimen.
    Wat mij betreft zou ie er ook direct weg mogen. Gelukkig werkt de persoon die de website bouwt niet aan de code van het product. Dat soort punten hebben op dit moment lage prioriteit, als we meer devvers zouden hebben dan was het zo gefixt. De collega's die troep produceerden zijn inmiddels ex-collega's waar we dus vervanging voor zoeken
    quote:
    Op dinsdag 27 februari 2007 12:49 schreef CraZaay het volgende:
    Daarnaast ben ik meer dan benieuwd waar al die teksten en foto's dan gedeponeerd zijn
    Copyrights zijn allemaal netjes voor elkaar.
    CraZaaydinsdag 27 februari 2007 @ 16:01
    quote:
    Op dinsdag 27 februari 2007 15:24 schreef SuperRembo het volgende:

    Copyrights zijn allemaal netjes voor elkaar.
    Zeldzaam off topic, maar goed

    'Copyright' is een loze term hier, maar ik neem aan dat je auteursrecht bedoelt? Daarvoor hoef en kun je nog steeds niets deponeren (anders vertel me maar eens waar de afbeeldingen en teksten die op de site gebruikt worden gedeponeerd zijn). Ik gok dat we het enkel over het deponeren van het woord- en beeldmerk hebben bij een merkenbureau. Op de door jou geschreven teksten en gemaakte foto's rust vanzelf auteursrecht.
    SuperRembodinsdag 27 februari 2007 @ 16:16
    Aha, bedoel je dat. Ik dacht dat je suggereerde dat het een bijelkaar gejat zooitje was
    Orealodinsdag 27 februari 2007 @ 16:21
    quote:
    Op maandag 26 februari 2007 19:04 schreef HuHu het volgende:

    [..]

    Er is een verschil tussen databases en tabellen hè. In een database zitten tabellen.
    [ code verwijderd ]

    Of:
    [ code verwijderd ]
    Thanks, kan het ook in SQL zelf ?
    Kzit hier direct in een sql database, en php werkt niet..
    Geqxondinsdag 27 februari 2007 @ 16:25
    quote:
    Op dinsdag 27 februari 2007 16:21 schreef Orealo het volgende:

    [..]

    Thanks, kan het ook in SQL zelf ?
    Kzit hier direct in een sql database, en php werkt niet..
    Gokje:
    1
    2
    3
    4
    5
    SELECT * 
    FROM pizza, macaroni, spaghetti 
    WHERE pizza.groente = 'wortel'
    OR macaroni.groente = 'wortel'
    OR spaghetti.groente = 'wortel'
    Orealodinsdag 27 februari 2007 @ 16:37
    quote:
    Op dinsdag 27 februari 2007 16:25 schreef Geqxon het volgende:

    [..]

    Gokje:
    [ code verwijderd ]
    Relaxed, thanks!!

    en kan ik dan ook de dubbele eruit filteren?
    SuperRembodinsdag 27 februari 2007 @ 16:47
    quote:
    Op dinsdag 27 februari 2007 16:25 schreef Geqxon het volgende:
    Gokje:
    [ code verwijderd ]
    Dan krijg je al snel heeeeel veel resultaten. Met een union krijg je niet te veel

    1
    2
    3
    4
    5
    SELECT * FROM pizza WHERE pizza.groente = 'wortel'
    UNION ALL
    SELECT * FROM macaroni WHERE macaroni.groente = 'wortel'
    UNION ALL
    SELECT * FROM spaghetti WHERE spaghetti.groente = 'wortel'


    Maar ik denk dat je datamodel niet handig is. Je zou beter 1 tabel 'gerechten' kunnen hebben waar alles in staat.
    Orealodinsdag 27 februari 2007 @ 16:49
    quote:
    Op dinsdag 27 februari 2007 16:47 schreef SuperRembo het volgende:

    [..]

    Dan krijg je al snel heeeeel veel resultaten. Met een union krijg je niet te veel
    [ code verwijderd ]

    Maar ik denk dat je datamodel niet handig is. Je zou beter 1 tabel 'gerechten' kunnen hebben waar alles in staat.
    Tja, bedrijfsspul.
    Er worden kopieen van bepaalde records in andere tabellen gezet, maar wegens 'opschoning' is niet alles meer even veel, vandaar moet er tijdelijk in alle tabellen gekeken worden totdat deze zijn samengevoegd.

    Vandaar dat ik de dubbele eruit wil, en dat kan met union?
    Geqxondinsdag 27 februari 2007 @ 16:54
    quote:
    Op dinsdag 27 februari 2007 16:47 schreef SuperRembo het volgende:

    [..]

    Dan krijg je al snel heeeeel veel resultaten. Met een union krijg je niet te veel
    [ code verwijderd ]

    Maar ik denk dat je datamodel niet handig is. Je zou beter 1 tabel 'gerechten' kunnen hebben waar alles in staat.
    Of een tabel gerechten, een tabel ingredienten en een koppeltabel.
    ExCibulardinsdag 27 februari 2007 @ 22:38
    Ik krijg de volgende foutmelding:
    quote:
    Fatal error: Cannot redeclare class dbase in C:\htdocsclasscls_dbase.php on line 2
    Hoe corrigeer ik deze fout, maar vooral hoe voorkom ik deze melding?
    Geqxondinsdag 27 februari 2007 @ 22:49
    En kun je misschien een klein stukje broncode geven?
    CraZaaydinsdag 27 februari 2007 @ 23:13
    quote:
    Op dinsdag 27 februari 2007 22:38 schreef ExCibular het volgende:
    Hoe corrigeer ik deze fout, maar vooral hoe voorkom ik deze melding?
    Mijn gok zou zijn: de class maar één keer declareren
    ExCibulardinsdag 27 februari 2007 @ 23:27
    Ik ben op dit moment bezig een soort miniframework op te zetten. Dat is op dit moment nog verre van af maar het komt er op neer dat er een klasse die met user_var een applicatie opstart. Deze applicatie geeft (op dit moment nog alleen) tekst terug en dat moet in de template geparsed worden. De tekst komt uit de database via een class cls_dbase.php

    index.php
    1
    2
    3
    4
    5
    //start template class
    require 'class/cls_template.php';
    $page = new templateparser($main,$user_var);
    $page->parse_template();
    $page->print_template();


    De betreffende template voor teksten wil een menu uit de database halen:
    template.php
    1
    2
    3
    4
    5
    6
    7
    8
    class menu extends templateparser{
    function menu_ver($current,$active) {
    require 'class/cls_dbase.php';
    $menu = new dbase(bluecons);
    $menuitems = $menu->db_fetch_multid("SELECT titel, url FROM titels WHERE menu='$current' ORDER BY TID");
    //doe iets
    return $menu_ver;
    }}
    CraZaaydinsdag 27 februari 2007 @ 23:49
    Twee keer "'require 'class/cls_dbase.php'" dus

    Probeer het eens met require_once() zou ik zeggen.
    ExCibularwoensdag 28 februari 2007 @ 07:18
    quote:
    Op dinsdag 27 februari 2007 23:49 schreef CraZaay het volgende:
    Twee keer "'require 'class/cls_dbase.php'" dus

    Probeer het eens met require_once() zou ik zeggen.
    require_once verhelpt het probleem

    thanx

    Kan je zonder negatieve consequenties overal require vervangen voor require_once?
    JeRawoensdag 28 februari 2007 @ 08:31
    quote:
    Op woensdag 28 februari 2007 07:18 schreef ExCibular het volgende:

    [..]

    Kan je zonder negatieve consequenties overal require vervangen voor require_once?
    Zolang jouw includes alleen definities van functies en classes bevatten wél, bevatten ze ook inline code dan moet je eerst nagaan of het niet uitmaakt dat de code maar één keer wordt uitgevoerd
    CraZaaywoensdag 28 februari 2007 @ 09:11
    Wat JeRa zegt, al kun je je afvragen of er niet by design al iets mis is als je require_once() nodig hebt. Als je in bestand 1 het bestand met de class required, en daarbinnen een ander bestand include wat dat ook doet, dan ben je er beter mee om die dubbele require gewoon weg te laten.
    mscholwoensdag 28 februari 2007 @ 10:30
    klein vraagje m.b.t. phpmyadmin 2.10 :
    quote:
    Server versie: 4.0.26-nt
    Protocol version: 10
    Server: 10.0.0.180 via TCP/IP
    Gebruiker: milo@fia181-83.dsl.hccnet.nl
    waar haalt hij dat dik gedrukte gedeelte vandaan?
    dit vraag ik omdat dat inmiddels niet meer gebruikt mag worden... (werkt voor de rest prima hoor maar dit is toch niet echt netjes)
    JeRawoensdag 28 februari 2007 @ 10:34
    quote:
    Op woensdag 28 februari 2007 10:30 schreef mschol het volgende:
    klein vraagje m.b.t. phpmyadmin 2.10 :
    [..]

    waar haalt hij dat dik gedrukte gedeelte vandaan?
    gethostbyaddr(). Oftewel, een simpele reverse DNS lookup.

    Doe maar eens dit
    1
    2
    3
    <?php
    echo gethostbyaddr('62.251.83.181');
    ?>
    quote:
    dit vraag ik omdat dat inmiddels niet meer gebruikt mag worden... (werkt voor de rest prima hoor maar dit is toch niet echt netjes)
    Wat mag er niet gebruikt worden en waarom is het niet netjes?
    mscholwoensdag 28 februari 2007 @ 10:46
    quote:
    Op woensdag 28 februari 2007 10:34 schreef JeRa het volgende:

    [..]

    gethostbyaddr(). Oftewel, een simpele reverse DNS lookup.

    Doe maar eens dit
    [ code verwijderd ]

    [..]

    Wat mag er niet gebruikt worden en waarom is het niet netjes?
    aha oke...

    het mag opzich wel (die domeinnaam) echter vind ik het niet netjes staan, en klopt hij ook niet (ik krijg a62-251-83-181.adsl.xs4all.nl terug)
    en er is ook een "normale" domeinnaam aangekoppeld, home.mschol.eu, en die heb ik liever, echter kan ik er wel mee leven als dat niet werkt
    JeRawoensdag 28 februari 2007 @ 10:50
    quote:
    Op woensdag 28 februari 2007 10:46 schreef mschol het volgende:

    [..]

    aha oke...

    het mag opzich wel (die domeinnaam) echter vind ik het niet netjes staan, en klopt hij ook niet (ik krijg a62-251-83-181.adsl.xs4all.nl terug)
    Dat daar iets anders wordt gevonden dan bij jou thuis komt waarschijnlijk doordat je misschien laatst bent overgestapt? Het duurt altijd even voordat DNS-servers helemaal up-to-date zijn
    quote:
    en er is ook een "normale" domeinnaam aangekoppeld, home.mschol.eu, en die heb ik liever, echter kan ik er wel mee leven als dat niet werkt
    Jouw domeinnaam -> IP-adres translatie vind plaats door een DNS-request, maar voor een reverse DNS-request wordt de 'beheerder' van jouw IP-adres geraadpleegd en dat is jouw provider, gegeven dat je je domeinnaam naar jouw ISP IP-adres laat verwijzen meer info.
    mscholwoensdag 28 februari 2007 @ 10:55
    quote:
    Op woensdag 28 februari 2007 10:50 schreef JeRa het volgende:

    [..]

    Dat daar iets anders wordt gevonden dan bij jou thuis komt waarschijnlijk doordat je misschien laatst bent overgestapt? Het duurt altijd even voordat DNS-servers helemaal up-to-date zijn
    dit is overstappen is al ruim een half jaar geleden gebeurd.
    quote:
    Jouw domeinnaam -> IP-adres translatie vind plaats door een DNS-request, maar voor een reverse DNS-request wordt de 'beheerder' van jouw IP-adres geraadpleegd en dat is jouw provider, gegeven dat je je domeinnaam naar jouw ISP IP-adres laat verwijzen meer info.
    aha oke.
    morpheus_at_workwoensdag 28 februari 2007 @ 10:57
    is er een mogelijkheid om het volgende te doen

    ik heb een tabel met

    Project + uren + maand + jaar

    Ik wil een Top 3 per maand draaien per project
    BereNDDwoensdag 28 februari 2007 @ 11:06
    quote:
    Op woensdag 28 februari 2007 10:57 schreef morpheus_at_work het volgende:
    is er een mogelijkheid om het volgende te doen

    ik heb een tabel met

    Project + uren + maand + jaar

    Ik wil een Top 3 per maand draaien per project
    Lekker duidelijk vraag, een top drie waarvan? Uren, projecten waaraan gewerkt is? Projecten die al te lang lopen?
    Aibmiwoensdag 28 februari 2007 @ 12:04
    Kort vraagje. Ik heb een SQL select statement, een redelijk simpele. Maar, ik wil als een bepaalde boolean op 1 staat een kolom tonen in de query, en als die boolean op 0 staat wil ik de andere laten zien.
    De output moet dit zijn bij een true:

    Nummer|Kosten_hoog

    En bij een false:
    Nummer|Kosten_laag
    morpheus_at_workwoensdag 28 februari 2007 @ 12:06
    quote:
    Op woensdag 28 februari 2007 11:06 schreef BereNDD het volgende:

    [..]

    Lekker duidelijk vraag, een top drie waarvan? Uren, projecten waaraan gewerkt is? Projecten die al te lang lopen?
    Scherpe vraag

    Top 3 van de projecten waarop de meeste uren geboekt zijn per maand / jaar

    mysql kent geen top dus zal zoiezo bij met limit moeten
    JeRawoensdag 28 februari 2007 @ 12:09
    quote:
    Op woensdag 28 februari 2007 12:04 schreef Aibmi het volgende:
    Kort vraagje. Ik heb een SQL select statement, een redelijk simpele. Maar, ik wil als een bepaalde boolean op 1 staat een kolom tonen in de query, en als die boolean op 0 staat wil ik de andere laten zien.
    De output moet dit zijn bij een true:

    Nummer|Kosten_hoog

    En bij een false:
    Nummer|Kosten_laag
    Dat kun je in PHP zo doen:
    1$query = 'SELECT ..., ' . (($boolean) ? 'kolomtrue'' : 'kolomfalse') . ' FROM ...';
    JeRawoensdag 28 februari 2007 @ 12:09
    quote:
    Op woensdag 28 februari 2007 12:06 schreef morpheus_at_work het volgende:

    [..]

    Scherpe vraag

    Top 3 van de projecten waarop de meeste uren geboekt zijn per maand / jaar

    mysql kent geen top dus zal zoiezo bij met limit moeten
    Er is volgens mij geen standaard 'goede' manier om dat te doen, alhoewel Swetsenegger geloof ik ooit ook zo'n query nodig had dus misschien kan die nog wat tips geven.
    BereNDDwoensdag 28 februari 2007 @ 12:23
    quote:
    Op woensdag 28 februari 2007 12:06 schreef morpheus_at_work het volgende:

    [..]

    Scherpe vraag

    Top 3 van de projecten waarop de meeste uren geboekt zijn per maand / jaar

    mysql kent geen top dus zal zoiezo bij met limit moeten
    1SELECT project,uren,maand FROM projecten ORDER BY uren DESC LIMIT 3


    (of ASC voor de minste uren)

    In de database moeten 'uren' dan wel een INTEGER veld wezen
    Aibmiwoensdag 28 februari 2007 @ 12:24
    quote:
    Op woensdag 28 februari 2007 12:09 schreef JeRa het volgende:

    [..]

    Dat kun je in PHP zo doen:
    [ code verwijderd ]
    Helaas zal het toch echt in een gewone query moeten Geen webpagina.
    Aibmiwoensdag 28 februari 2007 @ 12:30
    Ik zit overigens te denken aan een stored procedure, die ik het unieke ID meegeef, en die dan als output het juiste getal terugvoert, omdat je in een stored procedure wel gewoon IFs kunt gebruiken. Is dat een goed idee?
    JeRawoensdag 28 februari 2007 @ 12:41
    quote:
    Op woensdag 28 februari 2007 12:23 schreef BereNDD het volgende:

    [..]
    [ code verwijderd ]

    (of ASC voor de minste uren)

    In de database moeten 'uren' dan wel een INTEGER veld wezen
    Dat zou inderdaad kunnen, ik dacht dat hij een top 3 pér maand van alle projecten wilde
    JeRawoensdag 28 februari 2007 @ 12:41
    quote:
    Op woensdag 28 februari 2007 12:30 schreef Aibmi het volgende:
    Ik zit overigens te denken aan een stored procedure, die ik het unieke ID meegeef, en die dan als output het juiste getal terugvoert, omdat je in een stored procedure wel gewoon IFs kunt gebruiken. Is dat een goed idee?
    Het is het enige idee als je niets anders dan SQL wilt praktiseren
    super-muffinwoensdag 28 februari 2007 @ 14:05
    Ik heb een tabel met de kolommen artiest en album.
    In mijn query staat het gesorteerd op alfabet bij artiest, en zo wil ik het hebben.
    Maar hoe kan ik binnen die artiest sorteren op alfabet op de kolom album?
    CraZaaywoensdag 28 februari 2007 @ 14:36
    quote:
    Op woensdag 28 februari 2007 14:05 schreef super-muffin het volgende:
    Ik heb een tabel met de kolommen artiest en album.
    In mijn query staat het gesorteerd op alfabet bij artiest, en zo wil ik het hebben.
    Maar hoe kan ik binnen die artiest sorteren op alfabet op de kolom album?
    "ORDER BY artiest, album"
    Desdinovawoensdag 28 februari 2007 @ 14:37
    @super-muffin
    ORDER BY Artiest ASC, Album ASC of denk ik te simpel?


    Ik heb ooit eens iets gezien van $var{1,2}. ik dacht eigenlijk dat het een verkapte versie van substr() was.. het valt alleen niet mee om op zoiets te zoeken, dus kan iemand mij uitleggen hoe het werkt en wat het doet?
    super-muffinwoensdag 28 februari 2007 @ 14:42
    Nee Desdinova, ik dacht te moeilijk

    Bedankt beiden
    -edit;
    Toch niet bedankt Het werkt niet. Ga wel even verder zoeken


    -edit2:
    Wat heb ik geleerd vandaag: Kijk eens goed naar de kolomnamen voor dat je zegt dat het niet werkt.
    JeRawoensdag 28 februari 2007 @ 14:47
    quote:
    Op woensdag 28 februari 2007 14:42 schreef super-muffin het volgende:
    -edit;
    Toch niet bedankt Het werkt niet. Ga wel even verder zoeken
    Voor zover jouw vraag klopt is dat toch echt het antwoord hoor
    quote:
    Op woensdag 28 februari 2007 14:42 schreef super-muffin het volgende:
    -edit2:
    Wat heb ik geleerd vandaag: Kijk eens goed naar de kolomnamen voor dat je zegt dat het niet werkt.
    Zie je wel
    JeRawoensdag 28 februari 2007 @ 14:49
    quote:
    Op woensdag 28 februari 2007 14:37 schreef Desdinova het volgende:
    Ik heb ooit eens iets gezien van $var{1,2}. ik dacht eigenlijk dat het een verkapte versie van substr() was.. het valt alleen niet mee om op zoiets te zoeken, dus kan iemand mij uitleggen hoe het werkt en wat het doet?
    Als je een string hebt kun je middels die curly brackets een karakter op positie x (met 0 als eerste teken) als volgt ophalen:

    $string{x}

    Maar aangeraden wordt om de array-like brackets te gebruiken:

    $string[x]

    Dat doet precies hetzelfde zie ook deze paragraaf.
    Desdinovawoensdag 28 februari 2007 @ 15:04
    quote:
    Op woensdag 28 februari 2007 14:49 schreef JeRa het volgende:

    [..]

    Als je een string hebt kun je middels die curly brackets een karakter op positie x (met 0 als eerste teken) als volgt ophalen:

    $string{x}

    Maar aangeraden wordt om de array-like brackets te gebruiken:

    $string[x]

    Dat doet precies hetzelfde zie ook deze paragraaf.
    ok thanks. Ik zie niks staan in de vorm van {0,2}, behalve bij de reguliere expressie erboven ergens. maar dit zal wel een ander iets zijn.

    het is dus geen verkapte versie van substr() begrijp ik.
    JeRawoensdag 28 februari 2007 @ 15:04
    quote:
    Op woensdag 28 februari 2007 15:04 schreef Desdinova het volgende:

    [..]

    ok thanks. Ik zie niks staan in de vorm van {0,2}, behalve bij de reguliere expressie erboven ergens. maar dit zal wel een ander iets zijn.

    het is dus geen verkapte versie van substr() begrijp ik.
    Nee, en die vorm die jij bedoelde ($string{x,y}) bestaat niet voor zover ik weet wel in regular expressions natuurlijk.
    wipes66woensdag 28 februari 2007 @ 21:56
    Kent iemand toevallig een database programma voor sqlite?
    Swetseneggerwoensdag 28 februari 2007 @ 22:26
    quote:
    Op woensdag 28 februari 2007 21:56 schreef wipes66 het volgende:
    Kent iemand toevallig een database programma voor sqlite?
    je bedoelt een manager ofzo?
    http://sourceforge.net/projects/sqlitemanager/
    super-muffindonderdag 1 maart 2007 @ 17:28
    Even een vraagje, zijn sessie´s door spambot´s ofzo uit te lezen?
    CraZaaydonderdag 1 maart 2007 @ 17:36
    quote:
    Op donderdag 1 maart 2007 17:28 schreef super-muffin het volgende:
    Even een vraagje, zijn sessie´s door spambot´s ofzo uit te lezen?
    Nee. De sessie is alleen uit te lezen door je eigen scripts.
    s00zdonderdag 1 maart 2007 @ 19:52
    Ja nou kom ik weer met mijn problemen :P

    Heb een hele chille MySQL query in elkaar gedraaid die nog werkt ook:

    1
    2
    3
    <?php
    $sql    
    = "SELECT * FROM projects LEFT JOIN clients ON (projects.client_id = clients.id ) WHERE projects.client_id = '".$_GET['klant']."' LIMIT ".$page." , 1";
    ?>


    Maar nu...

    Het gaat om de LIMIT.

    Heb er een paginatie bij gemaakt (script met "prev - 1 - 2 - 3 - 4 - next") , en ik krijg bijvoorbeeld bij deze query 4 resultaten eruit, dan laat hij het eerste resultaat niet zien, maar alleen de laatste 3.
    Het systeem werkt wel prima, alleen als ik dus resultaat 1 bekijk, dan krijg ik uit de query resultaat 2 te zien.
    Als ik dan dus op pagina 4 kijk, krijg ik niks te zien.

    Heb ook al alle variabelen geprint om te zien of het daar aan ligt, maar op de eerste pagina staat de LIMIT gewoon netjes op 1, 1.....

    Iemand een idee waarom hij op pagina 1 niet gewoon netjes resultaat 1 laat zien?
    Xcaliburdonderdag 1 maart 2007 @ 19:54
    misschien moet je eens bij 0 beginnen met tellen
    s00zdonderdag 1 maart 2007 @ 19:59
    quote:
    Op donderdag 1 maart 2007 19:54 schreef Xcalibur het volgende:
    misschien moet je eens bij 0 beginnen met tellen
    Heb ik ook al geprobeerd, maar toen gaf hij een error....... r r r

    als ik dus zeg: LIMIT 0, 1

    Dan zegt hij dat er een syntax error is, maar dan laat hij wel weer de juiste pagina zien bij pagina 1.. erg raar.
    JeRadonderdag 1 maart 2007 @ 20:00
    quote:
    Op donderdag 1 maart 2007 19:59 schreef s00z het volgende:

    [..]

    Heb ik ook al geprobeerd, maar toen gaf hij een error....... r r r
    0,1, niet 1,0 dus
    s00zdonderdag 1 maart 2007 @ 20:04
    quote:
    Op donderdag 1 maart 2007 20:00 schreef JeRa het volgende:

    [..]

    0,1, niet 1,0 dus
    Ja, dan doet hij het helemaal niet meer
    Xcaliburdonderdag 1 maart 2007 @ 20:18
    quote:
    SELECT * FROM `clients` LIMIT 0 , 30
    volgens mijn phpMyAdmin is dit toch echt een goede query
    Xcaliburdonderdag 1 maart 2007 @ 20:19
    trouwens: $_GET['klant'] is nogal SQL injection gevoelig
    s00zdonderdag 1 maart 2007 @ 20:54
    quote:
    Op donderdag 1 maart 2007 20:19 schreef Xcalibur het volgende:
    trouwens: $_GET['klant'] is nogal SQL injection gevoelig
    Ja weet ik, maar moet het eerst draaiende krijgen, daarna ga ik me wel druk maken over beveiliging...

    Zoiets:
    1
    2
    3
    4
    5
    6
    <?php
    $unsafeContentPage
    = isset($_GET['content']) ? $_GET['content'] : 'home';
    if (!
    preg_match('~^[a-z_]+$~i', $unsafeContentPage)) {
        
    // Iets of iemand probeert iets fouts mee te geven
    $unsafeContentPage = 'home';
    ?>




    Krijg het echt niet lekker met die 0 erin...

    Okay het is gelukt... heb maar weer een extra variabele gemaakt met een rekensommetje en nou werkt het wel als ik zeg LIMIT 0,1

    Ik denk dat ik zo'n server draai met een soort "oostindische wil"
    Xcaliburdonderdag 1 maart 2007 @ 21:23
    kwam het niet door de spaties rond de komma ofzo?
    s00zdonderdag 1 maart 2007 @ 21:26
    quote:
    Op donderdag 1 maart 2007 21:23 schreef Xcalibur het volgende:
    kwam het niet door de spaties rond de komma ofzo?
    nu maar zo gedaan:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
       
    if($_GET['page']) // Is page defined?

        
    {

            
    $page $_GET['page']; // Set to the page defined

        
    }else{

            
    $page 1// Set to default page 1

        
    }
    $limitminimalizer $page '1';
    ?>


    En dan:
    1
    2
    3
    <?php
    LIMIT 
    ".$limitminimalizer." 1
    ?>
    CraZaaydonderdag 1 maart 2007 @ 22:50
    $limitminimalizer = $page - '1';

    Je trekt een string van een integer af? (ja, het werkt in PHP, maar da's nog geen reden om het te doen )
    sabandonderdag 1 maart 2007 @ 22:58
    Wat is de standaard poort voor mysql? Dat is 3306 toch?
    Ik heb op mijn server thuis port 3306 opengezet, maar is nog steeds van buiten af niet bereikbaar.
    quote:
    php connect.inc.php
    Kan niet verbinden: Lost connection to MySQL server during query
    Moet er ook nog een ander port open?
    Geqxondonderdag 1 maart 2007 @ 22:59
    quote:
    Op donderdag 1 maart 2007 22:58 schreef saban het volgende:
    Wat is de standaard poort voor mysql? Dat is 3306 toch?
    Ik heb op mijn server thuis port 3306 opengezet, maar is nog steeds van buiten af niet bereikbaar.
    [..]

    Moet er ook nog een ander port open?
    3306 voor MySQL en 80 voor Apache.
    sabandonderdag 1 maart 2007 @ 23:04
    quote:
    Op donderdag 1 maart 2007 22:59 schreef Geqxon het volgende:

    [..]

    3306 voor MySQL en 80 voor Apache.
    Vaag dat het niet werkt.
    Apache is wel bereikbaar, op dezelfde manier heb ik 3306 ook opengezet, maar kan geen verbinding tot stand brengen.
    Misschien staat mijn shell provider het niet toe.

    Kan iemand zijn IP PM'en zodat ik het in de firewall gooi, zodat je even een poging kan wagen on verbinding tot stand te brengen?
    Xcaliburdonderdag 1 maart 2007 @ 23:15
    quote:
    Op donderdag 1 maart 2007 22:58 schreef saban het volgende:
    Moet er ook nog een ander port open?
    laat je router / modem / whatever het wel door?
    misschien kan je daar een logfile zien van geblokkeerde requests?
    CraZaaydonderdag 1 maart 2007 @ 23:16
    quote:
    Op donderdag 1 maart 2007 22:58 schreef saban het volgende:
    Wat is de standaard poort voor mysql? Dat is 3306 toch?
    Ik heb op mijn server thuis port 3306 opengezet, maar is nog steeds van buiten af niet bereikbaar.
    Kun je je MySQL server helemaal niet bereiken, of kom je er gewoon niet in met je user? In het laatste geval moet je je user niet alleen toegang geven vanaf localhost waarschijnlijk.
    Xcaliburdonderdag 1 maart 2007 @ 23:16
    quote:
    Op donderdag 1 maart 2007 21:26 schreef s00z het volgende:

    [..]

    nu maar zo gedaan:
    [ code verwijderd ]

    En dan:
    [ code verwijderd ]
    dan zou het zonder het hernoemen van die variabele ook moeten werken
    sabandonderdag 1 maart 2007 @ 23:16
    quote:
    Op donderdag 1 maart 2007 23:15 schreef Xcalibur het volgende:

    [..]

    laat je router / modem / whatever het wel door?
    misschien kan je daar een logfile zien van geblokkeerde requests?
    Daar heb ik hem dus ook open gezet.
    Mijn router ondersteund geen logfiles

    Een deel van je IP is ook voldoende voor de firewall.
    sabandonderdag 1 maart 2007 @ 23:17
    quote:
    Op donderdag 1 maart 2007 23:16 schreef CraZaay het volgende:

    [..]

    Kun je je MySQL server helemaal niet bereiken, of kom je er gewoon niet in met je user? In het laatste geval moet je je user niet alleen toegang geven vanaf localhost waarschijnlijk.
    mysql_error zegt:
    Lost connection to MySQL server during query

    User heeft toegang vanaf %, dus overal vandaan.
    Lightdonderdag 1 maart 2007 @ 23:23
    quote:
    Op donderdag 1 maart 2007 22:50 schreef CraZaay het volgende:
    $limitminimalizer = $page - '1';

    Je trekt een string van een integer af? (ja, het werkt in PHP, maar da's nog geen reden om het te doen )
    Nog leuker, als $_GET['page'] niet leeg of nul is dan is $page ook een string. En dan trek je dus een string van een string af in de hoop dat er een integer uit komt
    s00zvrijdag 2 maart 2007 @ 01:18
    quote:
    Op donderdag 1 maart 2007 23:23 schreef Light het volgende:

    [..]

    Nog leuker, als $_GET['page'] niet leeg of nul is dan is $page ook een string. En dan trek je dus een string van een string af in de hoop dat er een integer uit komt
    Maar het werkt prima!
    En anders niet.

    Jullie hadden ook niet echt zinvolle suggesties als ik zo brutaal mag zijn

    Maar wel tof dat jullie me ook proberen te helpen, nu moet ik nog mijn site een beetje veilig maken tegen injectie enzo, en hierboven heb ik een stuk gequote dat ik daartegen wil gebruiken..

    Zal dat voldoende zijn denken jullie?

    Hierzo:
    1
    2
    3
    4
    5
    6
    <?php
    $unsafeContentPage 
    = isset($_GET['content']) ? $_GET['content'] : 'home';
    if (!
    preg_match('~^[a-z_]+$~i'$unsafeContentPage)) {
        
    // Iets of iemand probeert iets fouts mee te geven
    $unsafeContentPage 'home';
    ?>
    CraZaayvrijdag 2 maart 2007 @ 08:53
    quote:
    Op vrijdag 2 maart 2007 01:18 schreef s00z het volgende:

    [..]

    Maar het werkt prima!
    En anders niet.
    Ja, PHP is zo loosely typed dat het niet uit maakt. Het ligt niet aan jou dus

    Over je injection 'probleem', daar kan ik je helaas niet mee werken. Als ik iets met PHP doe gebruik ik meestal een framework met ActiveRecord-achtige functionaliteit waar standaard injection in voorkomen wordt.
    ralfievrijdag 2 maart 2007 @ 09:44
    quote:
    Op vrijdag 2 maart 2007 01:18 schreef s00z het volgende:

    [..]

    Maar het werkt prima!
    En anders niet.

    Jullie hadden ook niet echt zinvolle suggesties als ik zo brutaal mag zijn

    Maar wel tof dat jullie me ook proberen te helpen, nu moet ik nog mijn site een beetje veilig maken tegen injectie enzo, en hierboven heb ik een stuk gequote dat ik daartegen wil gebruiken..

    Zal dat voldoende zijn denken jullie?

    Hierzo:
    [ code verwijderd ]
    het is niet logisch om daar van alles zelf voor te maken als er prachtige functies zijn die dit automatisch doen. Kijk bijvoorbeeld is naar:
    1
    2
    3
    4
    <?php
    $query
    =mysql_escape_string($_GET['page']);
    $query=mysql_real_escape_string($_GET['page']);
    ?>
    Mocht je ergens numerieke waarden willen, gebruik je een van deze twee
    1
    2
    3
    4
    <?php
    $query
    =intval($_GET['id'])
    $query=floatval($_GET['value'])
    ?>

    afhankelijk van of je een heel getal (integer) will hebben of niet (float)

    Tenslotte kun je ervoor kiezen om, als er alleen een beperkt aantal mogelijkheden zijn, deze direct te vergelijken, zoals:
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    $allpages
    =array('home','forum','contact','intro','about');
    if (
    in_array($_GET['page'],$allpages)) {
       
    $page=$_GET['page'];
    } else {
       
    $page=$allpages[0];
    }
    ?>

    suc6
    splendorvrijdag 2 maart 2007 @ 11:27
    Ik heb een vraagje mbt $_FILES in php.
    Wanneer ik een bestand upload door middel van een upload veld dan is er geen $_POST maar hij maakt er automatisch $_FILES van. Dit variable heeft:

    $_FILES['userfile']['name']
    The original name of the file on the client machine.

    $_FILES['userfile']['type']
    The mime type of the file, if the browser provided this information. An example would be "image/gif". This mime type is however not checked on the PHP side and therefore don't take its value for granted.

    $_FILES['userfile']['size']
    The size, in bytes, of the uploaded file.

    $_FILES['userfile']['tmp_name']
    The temporary filename of the file in which the uploaded file was stored on the server.

    $_FILES['userfile']['error']

    van php.net

    Maar ik wil niet alleen de orginile bestandsnaam ['name'] maar het hele pad, dus: C:\blabla\bla\file.ext
    Is dit mogelijk? Of wordt dit clientside nooit doorgestuurd?

    Ik wil dit omdat ik nogal een lang formulier heb en als je een veld niet of niet goed invuldt dan krijg je netjes een rijtje errors en staan alle waarden nog steeds in het formulier, maar het file veld onthoudt ie de waarde niet van.

    JeRavrijdag 2 maart 2007 @ 11:29
    @splendor

    Standaard wordt het 'echte' pad niet doorgegeven, maar er is wel een truukje voor. Je kunt met javascript vlak voordat je een formulier submit de waarde uitlezen en in een hidden field zetten.

    Nadeel: je kunt niet in die file inputs wegschrijven dat om te voorkomen dat een website opeens mag bepalen welke bestanden jij verstuurt, dat zou een enorm lek betekenen.
    mscholvrijdag 2 maart 2007 @ 11:29


    [ Bericht 100% gewijzigd door mschol op 02-03-2007 11:29:59 ]
    splendorvrijdag 2 maart 2007 @ 11:35
    quote:
    Op vrijdag 2 maart 2007 11:29 schreef JeRa het volgende:
    @splendor

    Standaard wordt het 'echte' pad niet doorgegeven, maar er is wel een truukje voor. Je kunt met javascript vlak voordat je een formulier submit de waarde uitlezen en in een hidden field zetten.

    Nadeel: je kunt niet in die file inputs wegschrijven dat om te voorkomen dat een website opeens mag bepalen welke bestanden jij verstuurt, dat zou een enorm lek betekenen.
    Tnx, daar was ik al bang voor ja.

    Nouja wat een oplossing zou zijn is het file uploaden los maken van een groot ander formulier, met een eigen submit knop. Is een handeling meer voor de gebruiker maar scheelt een hoop ellende.
    ralfievrijdag 2 maart 2007 @ 12:09
    quote:
    Op vrijdag 2 maart 2007 11:35 schreef splendor het volgende:

    [..]

    Tnx, daar was ik al bang voor ja.

    Nouja wat een oplossing zou zijn is het file uploaden los maken van een groot ander formulier, met een eigen submit knop. Is een handeling meer voor de gebruiker maar scheelt een hoop ellende.
    zou anders toch niet handig werken, de gebruiker zou elke keer dat het formulier een fout bevat onnnodig het bestand opnieuw moeten uploaden
    CraZaayvrijdag 2 maart 2007 @ 12:39
    quote:
    Op vrijdag 2 maart 2007 11:27 schreef splendor het volgende:

    Maar ik wil niet alleen de orginile bestandsnaam ['name'] maar het hele pad, dus: C:\blabla\bla\file.ext
    Is dit mogelijk? Of wordt dit clientside nooit doorgestuurd?

    Ik wil dit omdat ik nogal een lang formulier heb en als je een veld niet of niet goed invuldt dan krijg je netjes een rijtje errors en staan alle waarden nog steeds in het formulier, maar het file veld onthoudt ie de waarde niet van.
    Zelfs al kan PHP het hele pad ergens vandaag toveren, dan nog heb je er niets aan. Je kunt de file input in de html namelijk niet populeren met een value uit veiligheidsoverwegingen.
    s00zvrijdag 2 maart 2007 @ 12:42
    quote:
    Op vrijdag 2 maart 2007 09:44 schreef ralfie het volgende:

    [..]

    het is niet logisch om daar van alles zelf voor te maken als er prachtige functies zijn die dit automatisch doen. Kijk bijvoorbeeld is naar:
    [ code verwijderd ]

    Mocht je ergens numerieke waarden willen, gebruik je een van deze twee
    [ code verwijderd ]

    afhankelijk van of je een heel getal (integer) will hebben of niet (float)

    suc6
    Juist, dus als iemand een query in wil vullen mtb injectie (want dat is injectie toch?) dan 'beschadigd' de variabele als het ware als er bij float een letter wordt ingevuld...

    Weet namelijk niet precies wat je kan doen om een database te beschadigen oid.

    Heb even rondgeklooid met die dingen die je me gaf, en ze zullen de dbase in ieder geval ongevoelig maken voor andere input dan cijfers.
    Nu alleen nog zorgen dat ik de woorden escape.
    JeRavrijdag 2 maart 2007 @ 12:52
    quote:
    Op vrijdag 2 maart 2007 11:35 schreef splendor het volgende:

    [..]

    Nouja wat een oplossing zou zijn is het file uploaden los maken van een groot ander formulier, met een eigen submit knop. Is een handeling meer voor de gebruiker maar scheelt een hoop ellende.
    Sommige sites gebruiken een apart systeem voor het uploaden van bestanden. Een gebruiker kan dan los bestanden uploaden zodat deze dan tijdelijk ergens worden weggezet en gekoppeld aan de sessie. Als vervolgens het formulier een fout bevat, dan zijn de bestanden niet verloren gegaan nadeel is dat je dan af en toe de boel moet laten schoonmaken zodra een sessie verloopt.
    Darkomenvrijdag 2 maart 2007 @ 13:19
    1
    2
    3
    4
    5
    R60: if($POST){
    R61: $query ="INSERT INTO `kasboek` ( `id` , `datum` , `type` , `rekeningnr` , `van` , `categorie` , `default` , `bedrag` , `commentaar` ) VALUES ('', '".$POST[datum]."' , '".$POST[type]."', '".$POST[rekeningnr]."', '".$POST[van]."', '".$POST[categorie]."', '".$POST[`default`]."','".$POST[bedrag]."', '".$POST[commentaar]."');";
    R62: $result = mysql_query($query) or ( $error = mysql_error());
    R63: $data .= ($result) ? 'Afschrift toegevoegd' : 'Er ging wat fout:<br />'.$result;
    R64:}

    $POST is gewoon de gecontroleerde $_POST

    En nu de foutmelding:

    Warning: shell_exec() has been disabled for security reasons in C:domains\_adminkasboek.php on line 61




    Edit: '".$POST[`default`]."' veranderd in '".$POST['default']."
    Maar wat een gare waarschuwing'
    HuHuvrijdag 2 maart 2007 @ 13:24
    't Staat er toch vrij duidelijk? Je kan shell_exec() niet gebruiken wegens veiligheidsredenen.

    Eerst goed lezen, er staat helemaal geen shell_exec() .
    Swetseneggervrijdag 2 maart 2007 @ 13:26
    Sowieso... waarom die backticks?
    HuHuvrijdag 2 maart 2007 @ 13:26
    Overigens moet je binnen die $POST dingen waarschijnlijk wel quotes gebruiken, dus $POST['bedrag'] in plaats van $POST[bedrag].
    Darkomenvrijdag 2 maart 2007 @ 13:36
    ja code is niet echt netjes.

    Waarom de ticks, default is gereserveerd
    JeRavrijdag 2 maart 2007 @ 13:46
    quote:
    Op vrijdag 2 maart 2007 13:26 schreef Swetsenegger het volgende:
    Sowieso... waarom die backticks?
    Als je dat consequent doet kan er nooit een probleem komen met reserved words wat weer wel raar is, is dat MySQL heeft gekozen voor backticks en niet de ANSI dubbele quotes.
    Darkomenvrijdag 2 maart 2007 @ 13:48
    Ik loop het nog wel na en dan word het wel consequent gedaan maar ben soms een luie donder
    Geqxonvrijdag 2 maart 2007 @ 15:06
    Ik ben op het moment vaak met fopen bezig, en ik wil graag bijhouden hoeveel bandbreedte ik er doorheen jaag.

    Op het moment doe ik dat door elke keer als ik een file open en deze regel voor regel met een foreach doorneem, de string lengte van de huidige regel te pakken, en de lengte hiervan bij een variabele toe te voegen. Dat door 1024 delen en ik heb het aantal kilobyte.

    Zit ik toevallig in de goede richting?
    JeRavrijdag 2 maart 2007 @ 15:27
    quote:
    Op vrijdag 2 maart 2007 15:06 schreef Geqxon het volgende:
    Ik ben op het moment vaak met fopen bezig, en ik wil graag bijhouden hoeveel bandbreedte ik er doorheen jaag.

    Op het moment doe ik dat door elke keer als ik een file open en deze regel voor regel met een foreach doorneem, de string lengte van de huidige regel te pakken, en de lengte hiervan bij een variabele toe te voegen. Dat door 1024 delen en ik heb het aantal kilobyte.

    Zit ik toevallig in de goede richting?
    Ja...maar als je het hele bestand inleest is het natuurlijk veel simpeler om filesize() te gebruiken
    Geqxonvrijdag 2 maart 2007 @ 15:28
    quote:
    Op vrijdag 2 maart 2007 15:27 schreef JeRa het volgende:

    [..]

    Ja...maar als je het hele bestand inleest is het natuurlijk veel simpeler om filesize() te gebruiken
    Een website in dit geval, dus volgens mij is dat niet mogelijk.

    * Geqxon duikt TextMate weer even in

    Edit Bingo!

    1
    2
    3
    4
    5
    <?php
               $headers
    = get_headers($url, 1);
               if ((!
    array_key_exists("Content-Length", $headers))) { return false; }
               return
    $headers["Content-Length"];
    ?>


    Edit

    Met mijn regelteller methode: 41960 bytes
    Met bovenstaande methode: 52848 bytes

    Zat ik toch goed, al gebruik ik wel de header informatie. Ik gok dat het verschil is omdat hij dan ook het heen-en-weer verkeer + de header informatie meetelt.

    [ Bericht 33% gewijzigd door Geqxon op 02-03-2007 15:38:43 ]
    Pilesvrijdag 2 maart 2007 @ 15:35
    Even een kort vraagje: $_POST, $_GET en $_COOKIE moet je altijd 'beveiligen' tegen gevaarlijke waardes, maar hoe zit dat met $_SESSION? Kan een gebruiker/hacker daar ook in veranderen?
    s00zvrijdag 2 maart 2007 @ 15:40
    iemand nog tips voor mijn security wat ik hierboven beschrijf?
    HuHuvrijdag 2 maart 2007 @ 16:08
    quote:
    Op vrijdag 2 maart 2007 15:35 schreef Piles het volgende:
    Even een kort vraagje: $_POST, $_GET en $_COOKIE moet je altijd 'beveiligen' tegen gevaarlijke waardes, maar hoe zit dat met $_SESSION? Kan een gebruiker/hacker daar ook in veranderen?
    Nee, dat kan de gebruiker niet. De $_SESSION wordt alleen op de server gebruikt.

    De client krijgt echter wel en cookie op zijn pc met het sessie-id erin. Dus die moet je wel controleren op het moment dat je het sessie-id uitleest.
    Pilesvrijdag 2 maart 2007 @ 16:32
    quote:
    Op vrijdag 2 maart 2007 16:08 schreef HuHu het volgende:

    [..]

    Nee, dat kan de gebruiker niet. De $_SESSION wordt alleen op de server gebruikt.

    De client krijgt echter wel en cookie op zijn pc met het sessie-id erin. Dus die moet je wel controleren op het moment dat je het sessie-id uitleest.
    Ik maak nu een random-hash aan die ik opsla in de database (met een user_id erbij) en in de sessie. Met de sessie haal ik het user_id weer uit de database enzovoorts

    Is dat veilig genoeg?
    Geqxonvrijdag 2 maart 2007 @ 16:49
    Grrrr, lekkere provider heb ik toch:
    quote:
    Fatal error: Call to undefined function: get_headers() in /home/buyshitn/public_html/peppisodelite/index.php on line 189
    Toch maar de regels tellen

    Edit: Mijn script wordt nu toch wel iets té optimistisch: Bandwidth used: 295.16 kB (126 kB/s). Op een 512kbit lijntje

    [ Bericht 25% gewijzigd door Geqxon op 02-03-2007 16:57:35 ]
    HuHuvrijdag 2 maart 2007 @ 17:02
    quote:
    Op vrijdag 2 maart 2007 16:32 schreef Piles het volgende:

    [..]

    Ik maak nu een random-hash aan die ik opsla in de database (met een user_id erbij) en in de sessie. Met de sessie haal ik het user_id weer uit de database enzovoorts

    Is dat veilig genoeg?
    Men zou de cookie met het sessie-id kunnen aanpassen, om zo SQL-injection te doen. Dus voordat je het sessie-id in een query gebruikt moet je deze controleren.
    Pilesvrijdag 2 maart 2007 @ 17:08
    quote:
    Op vrijdag 2 maart 2007 17:02 schreef HuHu het volgende:

    [..]

    Men zou de cookie met het sessie-id kunnen aanpassen, om zo SQL-injection te doen. Dus voordat je het sessie-id in een query gebruikt moet je deze controleren.
    Dan doen we dat
    super-muffinvrijdag 2 maart 2007 @ 17:24
    quote:
    Op vrijdag 2 maart 2007 16:49 schreef Geqxon het volgende:
    Grrrr, lekkere provider heb ik toch:
    [..]

    Toch maar de regels tellen

    Edit: Mijn script wordt nu toch wel iets té optimistisch: Bandwidth used: 295.16 kB (126 kB/s). Op een 512kbit lijntje
    Heeft jou editor geen line numbers?
    sabanvrijdag 2 maart 2007 @ 18:02
    quote:
    Op vrijdag 2 maart 2007 17:24 schreef super-muffin het volgende:

    [..]

    Heeft jou editor geen line numbers?
    Niet die regels
    JeRavrijdag 2 maart 2007 @ 18:09
    quote:
    Op vrijdag 2 maart 2007 15:28 schreef Geqxon het volgende:

    [..]

    Een website in dit geval, dus volgens mij is dat niet mogelijk.
    Heb je het geprobeerd? PHP heeft stream wrappers, kans is dat het dus wel werkt.

    edit: volgens de documentatie pas sinds PHP 5.0, en maar voor een beperkt aantal wrappers. Waarschijnlijk niet dus
    Kwelitvrijdag 2 maart 2007 @ 19:31
    Okay mensen,

    Ik zou volgend jaar graag een eigen webshop willen beginnen.

    Aangezien ik echt een complete N00b ben, zou ik niet eens weten waar ik zou moeten beginnen.

    De site zou er een beetje uit moeten komen te zien als die van de H&M of Abercrombie oid. Dus met verschillende categorieen, dat mensen zich moet registreren om een bestelling te plaatsen en dat je als je gaat afrekenen een plaatje ziet van alle bestelde items.
    Qua uiterlijk hoeft het uiteraard niet (meteen) zo strak met pics etc, het gaat me meer om de structuur, de lay-out kan altijd nog verfraaid worden.

    Wat is het handigst om eerste te leren; HTML, PHP, CSS, Dreamweaver, Frontpage of iets anders? Het plan is om elke dag een stukje te doen/leren.

    Ik verwacht ook niet dat jullie me alles voorkauwen, maar een duw in de goeie richting zou fijn zijn. En welke goeie/leerzame sites raden jullie aan? En zeg niet 'google is your friend' want via google vind je er zoveel dat je door de bomen het bos niet ziet.

    Ik wil de webshop zelf opbouwen, dus ook comments zoals 'n00b dit kun je beter laten doen' kunnen achterwege blijven.

    Jullie hebben het ook allemaal moeten leren.

    En nogmaals ik heb geen haast. Het streven is om de shop in 2008 af te hebben.

    Alvast bedankt!
    CraZaayvrijdag 2 maart 2007 @ 19:37
    Begin eens met HTML en CSS te leren, bijvoorbeeld via www.w3schools.com

    Je kunt immers wel beginnen met PHP, maar uiteindelijk moet je het resultaat toch in HTML tonen. Lijkt mij handig om dat eerst te kunnen
    HuHuvrijdag 2 maart 2007 @ 19:42
    Inderdaad eerst HTML en CSS leren voor de basis. Met een programma als Dreamweaver leer je dan wel vanzelf omgaan als je de HTML en CSS begrijpt. Daarna PHP gaan leren.

    Maar een complete webshop bouwen is wel een aardig project waarbij je wel op heel veel dingen moet letten. Je kan natuurlijk ook eens je licht laten schijnen op iets als osCommerce. Dat is een standaardpakket, zodat je het wiel niet opnieuw hoeft uit te vinden. Je kan dan je opgedane HTML, CSS en PHP kennis gebruiken om osCommerce naar je wensen aan te passen.

    Je hoeft dan niet hele basic dingen zelf helemaal uit te gaan vinden, aangezien iets als osCommerce dat al over-en-over heeft uitgedacht, geprobeerd en getest.
    Kwelitzaterdag 3 maart 2007 @ 11:28
    quote:
    Op vrijdag 2 maart 2007 19:37 schreef CraZaay het volgende:
    Begin eens met HTML en CSS te leren, bijvoorbeeld via www.w3schools.com

    Je kunt immers wel beginnen met PHP, maar uiteindelijk moet je het resultaat toch in HTML tonen. Lijkt mij handig om dat eerst te kunnen
    Heel erg bedankt voor die site, hier heb ik wat aan . Ik ga hem ff doorspitten
    quote:
    Op vrijdag 2 maart 2007 19:42 schreef HuHu het volgende:
    Inderdaad eerst HTML en CSS leren voor de basis. Met een programma als Dreamweaver leer je dan wel vanzelf omgaan als je de HTML en CSS begrijpt. Daarna PHP gaan leren.

    Maar een complete webshop bouwen is wel een aardig project waarbij je wel op heel veel dingen moet letten. Je kan natuurlijk ook eens je licht laten schijnen op iets als osCommerce. Dat is een standaardpakket, zodat je het wiel niet opnieuw hoeft uit te vinden. Je kan dan je opgedane HTML, CSS en PHP kennis gebruiken om osCommerce naar je wensen aan te passen.

    Je hoeft dan niet hele basic dingen zelf helemaal uit te gaan vinden, aangezien iets als osCommerce dat al over-en-over heeft uitgedacht, geprobeerd en getest.
    Dat osCommerce ken ik niet ja hoe bedoel je n00b
    Maar ik ga daar maar es op googlen, jij ook bedankt
    Swetseneggerzaterdag 3 maart 2007 @ 11:38
    quote:
    Op vrijdag 2 maart 2007 19:42 schreef HuHu het volgende:
    Inderdaad eerst HTML en CSS leren voor de basis. Met een programma als Dreamweaver leer je dan wel vanzelf omgaan als je de HTML en CSS begrijpt. Daarna PHP gaan leren.

    Maar een complete webshop bouwen is wel een aardig project waarbij je wel op heel veel dingen moet letten. Je kan natuurlijk ook eens je licht laten schijnen op iets als osCommerce. Dat is een standaardpakket, zodat je het wiel niet opnieuw hoeft uit te vinden. Je kan dan je opgedane HTML, CSS en PHP kennis gebruiken om osCommerce naar je wensen aan te passen.

    Je hoeft dan niet hele basic dingen zelf helemaal uit te gaan vinden, aangezien iets als osCommerce dat al over-en-over heeft uitgedacht, geprobeerd en getest.
    Maar aan de andere kant léér je ontzettend veel van het maken van een webshop en kan je hem helemaal aan je wensen aanpassen

    weet ik uit ervaring
    HuHuzaterdag 3 maart 2007 @ 11:47
    quote:
    Op zaterdag 3 maart 2007 11:38 schreef Swetsenegger het volgende:

    [..]

    Maar aan de andere kant léér je ontzettend veel van het maken van een webshop en kan je hem helemaal aan je wensen aanpassen

    weet ik uit ervaring
    Dat is zeker waar, maar jij was dan ook geen n00b meer toen je begon met 't bouwen ervan .
    Swetseneggerzaterdag 3 maart 2007 @ 11:48
    quote:
    Op zaterdag 3 maart 2007 11:47 schreef HuHu het volgende:

    [..]

    Dat is zeker waar, maar jij was dan ook geen n00b meer toen je begon met 't bouwen ervan .
    Niet volslagen nee....
    Kwelitzaterdag 3 maart 2007 @ 12:54
    Ziet er erg goed uit Swets!! Heb je die helemaal 'from scratch' in elkaar gezet?
    Wat was jouw voorkennis als ik vragen, omdat je aangeeft dat je voordat je begon geen volslagen n00b was?

    [ Bericht 3% gewijzigd door Kwelit op 03-03-2007 13:36:23 (die c stond er al O-)) ]
    Swetseneggerzaterdag 3 maart 2007 @ 13:28
    quote:
    Op zaterdag 3 maart 2007 12:54 schreef Kwelit het volgende:
    Ziet er erg goed uit Swets!! Heb je die helemaal 'from sratch' in elkaar gezet?
    bedankt en ja
    quote:
    Wat was jouw voorkennis als ik vragen, omdat je aangeeft dat je voordat je begon geen volslagen n00b was?
    Ik was een jaar met php bezig voordat ik hieraan begon. En voor ik aan php begon had ik in een grijs verleden programmeer ervaring opgedaan in MSX basic en Z80/MSX assembly.
    Tuvai.netzaterdag 3 maart 2007 @ 14:20
    Ik ben ook eerst een aantal jaren met HTML, CSS en PHP bezig geweest voordat ik echt grote applicaties als uitgebreide CMS systemen en webshops ging maken. Wil je echt in een jaar tijd alle weetjes, ditjes en datjes van het maken van bijvoorbeeld een webshop willen kennen dan zul je toch echt dagelijks d'r mee moeten gaan experimenteren hoor. Ik heb dat ook flink wat jaren gedaan alvorens ik 'commercieel' ging doen.
    splendorzaterdag 3 maart 2007 @ 15:13
    ik voer een htmlspecialchars uit op al mijn POST variablen standaard voor ik er iets mee ga doen, en het ziet er naar uit dat karakters als \ en ' en " netjes omgezet worden maar moet ik alsnog een addslashes uitvoeren voor een post waarde de database ingaat? Want als ik dat doe en het komt de database uit zit alles vol met slashes en kan ik overal waar ik het wil gaan gebruiken eerst stripslashes uitvoeren.
    Swetseneggerzaterdag 3 maart 2007 @ 15:18
    quote:
    Op zaterdag 3 maart 2007 15:13 schreef splendor het volgende:
    ik voer een htmlspecialchars uit op al mijn POST variablen standaard voor ik er iets mee ga doen, en het ziet er naar uit dat karakters als \ en ' en " netjes omgezet worden maar moet ik alsnog een addslashes uitvoeren voor een post waarde de database ingaat? Want als ik dat doe en het komt de database uit zit alles vol met slashes en kan ik overal waar ik het wil gaan gebruiken eerst stripslashes uitvoeren.

    gebruik de stripslashes_deep functie die halverwege de pagina staat. Schrijf je variabelen met mysql_real_escape_string naar de database.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <?php
    function stripslashes_deep($value)
    {
       
    $value = is_array($value) ?
                   
    array_map('stripslashes_deep', $value) :
                   
    stripslashes($value);

       return
    $value;
    }

    if(isset(
    $_POST['submit']{

        if(
    get_magic_quotes_gpc()){
            
    $_POST = stripslashes_deep($_POST);
        }

        
    $query="INSERT INTO tabel
                (id,iets)
                VALUES(0,'"
    .mysql_real_escape_string($_POST['iets'])."')";
    }
    ?>


    [ Bericht 34% gewijzigd door Swetsenegger op 03-03-2007 15:23:50 ]
    splendorzaterdag 3 maart 2007 @ 15:50
    quote:
    Op zaterdag 3 maart 2007 15:18 schreef Swetsenegger het volgende:

    [..]


    gebruik de stripslashes_deep functie die halverwege de pagina staat. Schrijf je variabelen met mysql_real_escape_string naar de database.
    [ code verwijderd ]
    Hmm, maar even een vraag dan.. stel je hebt ergens in je query iets als
    SET bla = 'ab'cd'
    en dus zal ie over de zeik gaan.

    doe ik dan addslashes dan wordt het
    SET bla = 'ab\'cd'
    maar in de database zelf komt dan toch ab'cd te staan? en niet ab\'cd ?

    Ik snap niet goed waarom ik na een addslashes toch nog een stripslashes moet uitvoeren?

    [ Bericht 1% gewijzigd door splendor op 03-03-2007 16:13:21 ]
    Geqxonzaterdag 3 maart 2007 @ 16:10
    In je database komt dan ab backslash-singlequote cd te staan. Daarom moet je de slashes nog even strippen.
    splendorzaterdag 3 maart 2007 @ 16:12
    quote:
    Op zaterdag 3 maart 2007 16:10 schreef Geqxon het volgende:
    In je database komt dan ab backslash-singlequote cd te staan. Daarom moet je de slashes nog even strippen.
    Ja maar ik snap niet goed waarom dat is? Is het niet mogelijk om mysql te vertellen om het als waarde te behandelen maar wel de \ eruit te halen? Of is dat gewoon iets wat mysql niet doet en daarom moet je zo moeilijk doen in php?
    HuHuzaterdag 3 maart 2007 @ 16:17
    Waarschijnlijk gaat het ergens een keertje dubbelop en komt er dus 'ab\'cd' te staan in je query. In de database komt dan 'ab'cd' te staan, waardoor je bij het eruit halen nogmaals een stripslashes moet doen.

    Als er een ' in je data zit, maar deze wordt niet ge-escaped, dan weet MySQL niet of daar je data ophoud en de query verder gaat, of dat het bij je data hoort. Vandaar dat je altijd moet escapen met slashes.
    splendorzaterdag 3 maart 2007 @ 16:32
    quote:
    Op zaterdag 3 maart 2007 16:17 schreef HuHu het volgende:
    Waarschijnlijk gaat het ergens een keertje dubbelop en komt er dus 'ab\'cd' te staan in je query. In de database komt dan 'ab'cd' te staan, waardoor je bij het eruit halen nogmaals een stripslashes moet doen.

    Als er een ' in je data zit, maar deze wordt niet ge-escaped, dan weet MySQL niet of daar je data ophoud en de query verder gaat, of dat het bij je data hoort. Vandaar dat je altijd moet escapen met slashes.
    Zou het kunnen zijn omdat ik eerst htmlspecialchars uitvoer? En dat een addslashes daarna een beetje dubbelop is dus.
    Ik ga eens proberen om eerst addslashes te doen en dan htmlspecialchars.
    HuHuzaterdag 3 maart 2007 @ 16:35
    Waarom doe je een htmlspecialchars() vóór het opslaan in de database? Je kan dat toch gewoon doen net voor het moment dat je 't gaat tonen?
    splendorzaterdag 3 maart 2007 @ 16:40
    quote:
    Op zaterdag 3 maart 2007 16:35 schreef HuHu het volgende:
    Waarom doe je een htmlspecialchars() vóór het opslaan in de database? Je kan dat toch gewoon doen net voor het moment dat je 't gaat tonen?
    Ik heb een module gemaakt die OO een compleet formulier kan opbouwen, verwerken en filteren. Dus wil ik ergens $_POST['iets'] gebruiken, dan is dat al helemaal gefilterd en veilig, scheelt een hoop controles overal die je toch weer kunt vergeten.
    Je kunt overigens gewoon zeggen $clsTextField->htmlspecialchars = false; en dan doet ie dat niet, of ik kan hem zelfs standaard op false zetten, maar het leek me veilig om standaard elk POST variable daar mee te behandelen.

    Kan het overigens zijn dat htmlspecialchars zelf al een addslashes uitvoert? En dat het daarom dubbel gebeurt bij mij?
    HuHuzaterdag 3 maart 2007 @ 17:00
    De htmlspecialchars() zet een ' om naar $lquot; ofzo, dus er blijft helemaal niets over om te escapen voor de addslashes() voor zover ik weet.
    splendorzaterdag 3 maart 2007 @ 17:13
    Ik heb even een aantal dingen geprobeerd, wanneer ik een variable met quotes of slashes erin zo probeer door te sturen krijg je een foutmelding in de query, logisch.
    Echter wanneer precies datzelfde variable met dezelfde waarde via een POST de query in gaat, krijg ik geen error en staat het netjes in de database.
    Oftewel formulieren voeren ergens al een addslashes uit? Maar stel dat ikhet POST variable echo, dan staan er inderdaad extra slashes voor.

    Dus het is logisch dat ik overal dubbele quotes kreeg en later weer stripslashes moest uitvoeren.

    Maar wat zorgt ervoor dat een formulier slashes krijgt? Firefox/IE? Apache? Een instelling in mijn php.ini?
    Swetseneggerzaterdag 3 maart 2007 @ 17:34
    quote:
    Op zaterdag 3 maart 2007 15:50 schreef splendor het volgende:

    [..]

    Hmm, maar even een vraag dan.. stel je hebt ergens in je query iets als
    SET bla = 'ab'cd'
    en dus zal ie over de zeik gaan.
    nee
    quote:
    doe ik dan addslashes dan wordt het
    SET bla = 'ab\'cd'
    maar in de database zelf komt dan toch ab'cd te staan? en niet ab\'cd ?
    Met mysql_real_escape_string zal inderdaad ab'cd in de db staan, met addslashes staat ab\'cd in de db
    quote:
    Ik snap niet goed waarom ik na een addslashes toch nog een stripslashes moet uitvoeren?
    omdat er dan dus een slash in je database veld staat.
    Swetseneggerzaterdag 3 maart 2007 @ 17:37
    quote:
    Op zaterdag 3 maart 2007 16:12 schreef splendor het volgende:

    [..]

    Ja maar ik snap niet goed waarom dat is? Is het niet mogelijk om mysql te vertellen om het als waarde te behandelen maar wel de \ eruit te halen? Of is dat gewoon iets wat mysql niet doet en daarom moet je zo moeilijk doen in php?
    je moet gewoon mysql_real_escape_string gebruiken en niet addslashes en stripslashes.
    Swetseneggerzaterdag 3 maart 2007 @ 17:41
    quote:
    Op zaterdag 3 maart 2007 17:13 schreef splendor het volgende:
    Ik heb even een aantal dingen geprobeerd, wanneer ik een variable met quotes of slashes erin zo probeer door te sturen krijg je een foutmelding in de query, logisch.
    Echter wanneer precies datzelfde variable met dezelfde waarde via een POST de query in gaat, krijg ik geen error en staat het netjes in de database.
    Oftewel formulieren voeren ergens al een addslashes uit? Maar stel dat ikhet POST variable echo, dan staan er inderdaad extra slashes voor.

    Dus het is logisch dat ik overal dubbele quotes kreeg en later weer stripslashes moest uitvoeren.

    Maar wat zorgt ervoor dat een formulier slashes krijgt? Firefox/IE? Apache? Een instelling in mijn php.ini?
    Magic quotes zal waarschijnlijk aanstaan.