FOK!forum / Digital Corner / [PHP/(My)SQL] voor dummies - Deel 76
Swetseneggerdonderdag 27 augustus 2009 @ 13:02

cd niet bijgeleverd

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

Vorige delen:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74

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
  • Moozziedonderdag 27 augustus 2009 @ 13:02
    quote:
    Op donderdag 27 augustus 2009 12:58 schreef Swetsenegger het volgende:

    [..]

    35
    [..]

    eh sorry
    Dat gezeik dat de jouwe korter is. I dont care. Als het maar doet wat het moet doen en duidelijk is.
    Ik kan wel een compact script schijven van 10 regels en dat nu begrijpen. Maar ik moet het over een jaar nog steeds begrijpen als ik het weer in zie omdat er iets aangepast moet worden. Dan schrijf ik liever een duidelijk script van 20 regels wat ik na een jaar meteen weer snap door de duidelijkheid en nodige comments
    Moozziedonderdag 27 augustus 2009 @ 13:03
    quote:
    Op donderdag 27 augustus 2009 13:00 schreef GlowMouse het volgende:
    Ha ha, nu moet jij een nieuwe aanmaken.
    Lol
    Xcaliburdonderdag 27 augustus 2009 @ 13:04
    Darkomendonderdag 27 augustus 2009 @ 13:05
    tvp
    Swetseneggerdonderdag 27 augustus 2009 @ 13:05
    quote:
    Op donderdag 27 augustus 2009 13:02 schreef Moozzie het volgende:

    [..]

    Dat gezeik dat de jouwe korter is.
    Zeiken Hij vraagt commentaar ik zeg dat het script me in eerste instantie wat lang leek en geef direct aan dat ik niet inhoudelijk gekeken heb. Vervolgens geeft hij aan nieuwsgierig te zijn.
    quote:
    I dont care.
    Nou gelet op je overtrokken reactie blijkbaar wel.
    quote:
    Als het maar doet wat het moet doen en duidelijk is.
    Ik kan wel een compact script schijven van 10 regels en dat nu begrijpen. Maar ik moet het over een jaar nog steeds begrijpen als ik het weer in zie omdat er iets aangepast moet worden. Dan schrijf ik liever een duidelijk script van 20 regels wat ik na een jaar meteen weer snap door de duidelijkheid en nodige comments
    Ja, ik heb volgens mij nergens a. een waarde oordeel aan het script gehangen of b. aanleiding gegeven om voor jou te denken dat ik er anders over denk.

    Doe ff normaal.
    Chandlerdonderdag 27 augustus 2009 @ 13:08
    quote:
    Op donderdag 27 augustus 2009 12:58 schreef GlowMouse het volgende:

    [..]

    Beter: je returnt de data die je nodig hebt voor de output. Serieus, als ik zo'n script tegenkom als het jouwe dan begin ik liever opnieuw.

    En Chandler: voorkom toepassen van functies op kolomnamen omdat dat niet indexeerbaar is.
    Doel je op de date_format? kun je eens meer info geven?

    @Swets; mijn class is bedoeld om de data uit te lezen en eventueel in te voeren, zo beknopt maar flexibel mogelijk. Meer heeft een poll eingelijk niet nodig.
    Swetseneggerdonderdag 27 augustus 2009 @ 13:09
    Ik heb een vraagje. Ik heb een site die wat tweets naar twitter verstuurt. En in die tweets staat een euro teken. Nu doe ik dat met & euro; zodat ik een crossplatform euroteken krijg. Maar.... voor twitter zijn ook allerlei desktop applicaties en die zijn in de regel NIET webbased. En in plaats van een mooi teken zie die nu dus de html entity.

    Zend dan gewoon het euroteken daadwerkelijk mee, maar dan heb ik het probleem dat een ¤ er op bv OSX of Linux er als æ ofzo uitziet.

    Hoe krijg ik een cross platform, cross applicatie euroteken?
    GlowMousedonderdag 27 augustus 2009 @ 13:10
    bv.
    UNIX_TIMESTAMP(date_started) < ....
    omschrijven naar
    date_started < FROM_UNIXTIME(...)

    en
    UNIX_TIMESTAMP(date_started) < NOW()
    klopt niet eens: NOW() is geen unix timestamp.
    Swetseneggerdonderdag 27 augustus 2009 @ 13:11
    quote:
    Op donderdag 27 augustus 2009 13:08 schreef Chandler het volgende:

    @Swets; mijn class is bedoeld om de data uit te lezen en eventueel in te voeren, zo beknopt maar flexibel mogelijk. Meer heeft een poll eingelijk niet nodig.
    Het was geen kritiek hoor, het viel me op.
    Lightdonderdag 27 augustus 2009 @ 13:11
    quote:
    Op donderdag 27 augustus 2009 11:38 schreef Swetsenegger het volgende:

    Ik heb een vraagje. Ik heb een site die wat tweets naar twitter verstuurt. En i9n die tweets staat een euro teken. Nu doe ik dat met & euro; zodat ik een crossplatform euroteken krijg. Maar.... voor twitter zijn ook allerlei desktop applicaties en die zijn in de regel NIET webbased. En in plaats van een mooi teken zie die nu dus de html entity.

    Zend dan gewoon het euroteken daadwerkelijk mee, maar dan heb ik het probleem dat een ¤ er op bv OSX of Linux er als æ ofzo uitziet.

    Hoe krijg ik een cross platform, cross applicatie euroteken?
    Twitter gebruikt UTF-8 (iig voor de website). Dan zou je dus zonder problemen ¤ moeten kunnen gebruiken en heb je geen html entity nodig.
    Swetseneggerdonderdag 27 augustus 2009 @ 13:14
    quote:
    Op donderdag 27 augustus 2009 13:11 schreef Light het volgende:

    [..]

    Twitter gebruikt UTF-8 (iig voor de website). Dan zou je dus zonder problemen ¤ moeten kunnen gebruiken en heb je geen html entity nodig.
    Ja, maar desktop apps zijn niet altijd UTF-8. Dus krijg ik op OSX in een twitter app bv geen ¤ te zien. Ik vraag me af of ik niet wat in ASCII kan doen ofzo.

    -edit- hoewel ik nu in m'n blackberry keurig een ¤ te zien krijg. Toen ik de ¤ er op mijn apple in had geplakt was dat niet zo. Blijkbaar staat mijn apple omgeving niet op UTF-8 ingesteld. Vanavond eens kijken.

    [ Bericht 12% gewijzigd door Swetsenegger op 27-08-2009 13:21:54 ]
    Moozziedonderdag 27 augustus 2009 @ 13:35
    quote:
    Op donderdag 27 augustus 2009 10:34 schreef Chandler het volgende:
    Mag ik commentaar op mijn class? wil nameljik leren en juist door te spelen leer ik dus.

    PS ik gebruik mijn eigen mysql class, deze werkt nog niet middels PDO maar komt ooit nog
    [ code verwijderd ]
    Der zijn wel een hoop dingen die ik anders zou doen.
    Ik ga het niet allemaal in 1 keer opneurien want heb wel meer te doen

    Vandaag bij aflevering 1 van wat zou moozzie doen zullen we het hebben over je database.
    Let op! Dit is wat ik zou doen, wil niet altijd zeggen dat het beter is.

    Even voor de gemak jouw database erbij pakken

    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
    tinyPoll
      id            (int)
      title         (varchar * 64)
      comment       (text)
      date_started  (date)
      date_ended    (date)
      answers       (tinyint)
      votes         (int)
      views         (int)
      
    tinyPollAnswers
       id           (int)
       pollID       (int)
       answer       (varchar * 64)
       votes        (int)

    tinyPollVotesIp
       id           (int)
       ip           (varchar * 64)
       hostname     (varchar * 128)

    tinyPollVotes
       ipID         (int)
       pollID       (int)
       answerID     (int)
       votedate     (date)


    Jouw benaming vind ik dus ronduit bagger.
    Het lijkt misschien leuk maar jij hebt in bijna elke tabel een 'id' veld.
    Greaaat... dan krijg je dus dingen als dit (let op dit is je eigen query)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT
        tinyPoll.id
    FROM
        tinyPoll
        LEFT JOIN tinyPollAnswers ON tinyPollAnswers.pollID = tinyPoll.id
    WHERE
            tinyPoll.id = '" . $this->db->escape($pollID) . "'
        AND tinyPollAnswers.id = '" . $this->db->escape($answerID) . "'
        AND UNIX_TIMESTAMP(date_ended) >  NOW()
    LIMIT 1

    Nu krijg je dus tinyPoll.id, tinyPollAnswers.id etc.
    En wil je die 2 velden ophalen moet je ze nog hernamen ook (tinyPollAnswers.id AS answer_id etc)

    Dit is hoe ik je tabellen zou noemen

    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
    tiny_poll
      tpo_id
      tpo_title
      tpo_comment
      tpo_date_started
      tpo_date_ended
      tpo_answers
      tpo_votes
      tpo_views
      
    tiny_poll_answer
       tpa_id
       tpa_tpo_id
       tpa_answer
       tpa_votes

    tiny_poll_votes_ip
       tpi_id
       tpi_ip
       tpi_hostname

    tiny_poll_vote
       tpv_tpi_id
       tpv_tpo_id
       tpv_tpa_id
       tpv_votedate


    Note: ik hou er niet van om me tabellen aan elkaar te schrijven omdat als je dan een lijst hebt van 100 tabellen onder elkaar in phpmyadmin het best onoverzichtelijk lezen is. Ik doe er altijd een _ tussen als spatie wat een net iets overzichterlijker lijstje maakt in phpmyadmin. Je kan natuurlijk tinyPoll houden etc als je dat wilt. Dat is verders net zo goed. Waar het me in dit voorbeeld omgaat is de benaming van je velden en niet je tabellen.

    Oke wat ik heb gedaan is voor elk veld de afkorting van de tabel gezet.
    Het id van de tabel tiny_poll heet nu dus tpo_id

    Als ik naar een record in de tabel tiny_poll wil refereren doe ik dus met xxx_tpo_id (xxx = de prefix van de tabel waar dit veld in staat)
    De tabel tiny_poll_vote is een mooi voorbeeld.
    tpv_tpi_id refereert naar tpi_id uit de tabel tiny_poll_votes_ip etc

    Nu zou je query er zo uitzien

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT
        tpo_id
    FROM
        tiny_poll
        LEFT JOIN tiny_poll_answer ON tpa_tpo_id = tpo_id
    WHERE
            tpa_tpo_id = '" . $this->db->escape($pollID) . "'
        AND tpa_id = '" . $this->db->escape($answerID) . "'
        AND UNIX_TIMESTAMP(tpo_date_ended) >  NOW()
    LIMIT 1


    Wat vind ik de voordelen?
    - Je hebt nooit dubbele velden
    - Je hoeft niet de tabel naam op te schrijven als je dubbele velden hebt (zoals id bij jou)
    - Het joinen van tabellen (tpa_tpo_id = tpo_id) is lekker makkelijk.
    - Je kan elk veld selecten zonder dat je het hoeft te hernamen. Wat als gevolg dus heeft dat je overal in het script dus tpo_id kan gebruiken ipv dat je het in je ene script opslaat als poll_id en in je andere script als PollID.

    Verders over je database
    - Maak je int unsigned, dan kunnen ze langer mee en je votes, id etc kunnen toch niet negatief zijn
    - Zelf ben ik meer van de Char dan varchar (waar kan, in combinatie met een text veld gaat dat natuurlijk niet) Char is inderdaad groter in vele gevallen maar je tabel blijft wel fixt length. Waardoor het zoeken dus sneller gaat

    Als je dit al gemieren neuk vind laat ik me comentaar op je class wel achterwegen want dat wordt nog erger
    GlowMousedonderdag 27 augustus 2009 @ 13:43
    Wat ids betreft zou ik consequent overal pollid,answerid en ipid gebruiken, maar afgezien daarvan zie ik het probleem niet.

    >> Je hebt nooit dubbele velden
    Zelfde veldnaam is zelfde data, geen probleem dus.
    >> Je hoeft niet de tabel naam op te schrijven als je dubbele velden hebt (zoals id bij jou)
    Alias
    >> Het joinen van tabellen (tpa_tpo_id = tpo_id) is lekker makkelijk.
    USING(id) is nog makkelijker
    >> Je kan elk veld selecten zonder dat je het hoeft te hernamen. Wat als gevolg dus heeft dat je overal in het script dus tpo_id kan gebruiken ipv dat je het in je ene script opslaat als poll_id en in je andere script als PollID.
    Zelfde veldnaam is zelfde data, geen probleem dus.

    >> Zelf ben ik meer van de Char dan varchar (waar kan, in combinatie met een text veld gaat dat natuurlijk niet) Char is inderdaad groter in vele gevallen maar je tabel blijft wel fixt length. Waardoor het zoeken dus sneller gaat
    En er minder in je geheugen past, waardoor het juist heel veel trager wordt.
    Moozziedonderdag 27 augustus 2009 @ 13:46
    quote:
    Op donderdag 27 augustus 2009 13:43 schreef GlowMouse het volgende:
    >> Zelf ben ik meer van de Char dan varchar (waar kan, in combinatie met een text veld gaat dat natuurlijk niet) Char is inderdaad groter in vele gevallen maar je tabel blijft wel fixt length. Waardoor het zoeken dus sneller gaat
    En er minder in je geheugen past, waardoor het juist heel veel trager wordt.
    Mwa dus totaal niet mee eens. Wij hebben hier tabellen met miljoenen records en hadden eerst varchar. De hele boel liep daarop vast omdat het dus dynamic tabellen werden. Door er fixt tabellen van te maken werd de tabel wel groter maar onwijs veel sneller.
    Swetseneggerdonderdag 27 augustus 2009 @ 13:48
    Zoals hier wel weer uit blijkt is het ook een kwestie van smaak, want ik krijg dus jeuk van dit soort benamingen

    1tpa_tpo_id


    Als we het er dan toch over hebben dat je over een jaar terug leest, snap je in eerste instantie van dit soort afkortingen ook niets meer. ID's per tabel benoemen is met het oog op joins inderdaad wel duidelijker.
    Moozziedonderdag 27 augustus 2009 @ 13:50
    quote:
    Op donderdag 27 augustus 2009 13:48 schreef Swetsenegger het volgende:
    Zoals hier wel weer uit blijkt is het ook een kwestie van smaak, want ik krijg dus jeuk van dit soort benamingen
    [ code verwijderd ]

    Als we het er dan toch over hebben dat je over een jaar terug leest, snap je in eerste instantie van dit soort afkortingen ook niets meer. ID's per tabel benoemen is met het oog op joins inderdaad wel duidelijker.
    Het went vanzelf
    Maar ik ga er niet over in discussie. Ik geef mijn vissie en als je het niets lijkt dan probeer je het toch niet
    Chandlerdonderdag 27 augustus 2009 @ 13:59
    quote:
    Op donderdag 27 augustus 2009 13:10 schreef GlowMouse het volgende:
    bv.
    UNIX_TIMESTAMP(date_started) < ....
    omschrijven naar
    date_started < FROM_UNIXTIME(...)

    en
    UNIX_TIMESTAMP(date_started) < NOW()
    klopt niet eens: NOW() is geen unix timestamp.
    Lol, ik gebruikte altijd unix_timestamp icm now() maar weet dat unix_timestamp nogal heerlijk sloom is qua functie...

    dus zo zou het goed moeten zijn.

    1date_started =< FROM_UNIXTIME(NOW(), '%Y-%m-%d')

    @Moozzie:
    Bedankt voor je reactie, zelf vind ik jou opzet qua tabellen namen erg onoverzichtelijk, om overal maar een _ na te zetten. Je hebt wel een punt met tinyPoll_Answers etc...
    Netzoals swets vind ik dat je een script over een jaar nog moet kunnen begrijpen, en in dit geval maakt het weinig uit welke namen de cellen hebben aangezien het script ze eenmalig uitleest en returned aan het script at deze class/functie aanroept. Verder zullen deze tabellen ook niet gebruikt worden anders dan via deze class.

    Ook blijf ik kiezen voor varchar aangezien de velden die geinsert worden qua data niet veranderd gaan worden (ip, hostname, titel, antwoord(en) en comment) en denk dat het nogal scheelt als je 1000 votes per dag hebt.

    Ik zou graag meer mierengeneuk zien op de class aangezien ik daar nog steeds niet erg handig in ben en vaak het nut en de logica er niet van snap

    @GlowMouse:
    Ben het dus ook aardig met jou eens m.b.t using en de tabel/cell namen

    @Swets:

    Dat heb ik dus ook, je moet eerst het gehele script doorlezen wil je weten waar welke afkorting voor staat

    @Moozzie:

    Graag zie ik meer van je visie; om zo mijn visie eventueel te versterken en of aan te passen (lijkt wel scripten zo )

    [ Bericht 40% gewijzigd door Chandler op 27-08-2009 14:11:05 ]
    Xcaliburdonderdag 27 augustus 2009 @ 14:01
    quote:
    Op donderdag 27 augustus 2009 13:48 schreef Swetsenegger het volgende:
    Zoals hier wel weer uit blijkt is het ook een kwestie van smaak, want ik krijg dus jeuk van dit soort benamingen
    [ code verwijderd ]
    Eens.

    Verder ben ik van mening dat je databasevelden moeten kloppen qua naam. Een veld met een ID noem je dus id, en niet weetikveelwat_id. Aangezien de ID in een tabel staat weet je al waar het om gaat. Ja, dan moet je het wel een je query fixen, so what?

    In de praktijk maakt het weinig uit natuuriljk, net wat je gewend bent. Als het maar consequent is
    In de ene tabel ID gebruiken en in de andere tabel TabelID is echt killing...
    GlowMousedonderdag 27 augustus 2009 @ 14:29
    >> date_started =< FROM_UNIXTIME(NOW(), '%Y-%m-%d')
    nee, het moet zijn date_started <= NOW()

    >> Ook blijf ik kiezen voor varchar aangezien de velden die geinsert worden qua data niet veranderd gaan worden (ip,
    ip kan (ipv6 buiten beschouwing latend) best in een int mbv INET_ATON

    >> Wij hebben hier tabellen met miljoenen records en hadden eerst varchar. De hele boel liep daarop vast omdat het dus dynamic tabellen werden. Door er fixt tabellen van te maken werd de tabel wel groter maar onwijs veel sneller.
    Had je een hoop updates? Het kan zijn dat je rijen gefragmenteerd werden. En als je varchar(255) gebruikte en nu char(100) omdat je wel op lengte let, maakt dat ook behoorlijk uit, bv als je in geheugen sorteert.
    Moozziedonderdag 27 augustus 2009 @ 14:33
    quote:
    Op donderdag 27 augustus 2009 14:29 schreef GlowMouse het volgende:
    >> date_started =< FROM_UNIXTIME(NOW(), '%Y-%m-%d')
    nee, het moet zijn date_started <= NOW()

    >> Ook blijf ik kiezen voor varchar aangezien de velden die geinsert worden qua data niet veranderd gaan worden (ip,
    ip kan (ipv6 buiten beschouwing latend) best in een int mbv INET_ATON

    >> Wij hebben hier tabellen met miljoenen records en hadden eerst varchar. De hele boel liep daarop vast omdat het dus dynamic tabellen werden. Door er fixt tabellen van te maken werd de tabel wel groter maar onwijs veel sneller.
    Had je een hoop updates? Het kan zijn dat je rijen gefragmenteerd werden. En als je varchar(255) gebruikte en nu char(100) omdat je wel op lengte let, maakt dat ook behoorlijk uit, bv als je in geheugen sorteert.
    Nope het ging fout bij de selects
    GlowMousedonderdag 27 augustus 2009 @ 14:35
    na updates gaat het fout bij selects ja, bij rij-fragmentatie.
    Moozziedonderdag 27 augustus 2009 @ 14:37
    quote:
    Op donderdag 27 augustus 2009 14:35 schreef GlowMouse het volgende:
    na updates gaat het fout bij selects ja, bij rij-fragmentatie.
    Nee de records werden niet geupdate
    Er werden alleen inserts op uitgevoerd om um te vullen en selects om te bekijken. Maar de selects waren te traag. na de tabel fixt length te hebben gemaakt liep het gesmeerd
    Chandlerdonderdag 27 augustus 2009 @ 15:05
    Tnx GlowMouse heb de aanpassingen doorgevoerd en blijkt goed te werken
    Chandlerdonderdag 27 augustus 2009 @ 16:14
    Ik heb gelijk de functie createPoll en listPolls toegevoegd, weer een handige class voor mijn verzameling
    uppie83donderdag 27 augustus 2009 @ 18:00
    quote:
    Op woensdag 26 augustus 2009 10:11 schreef Swetsenegger het volgende:
    Dan geef je toch een header('location:.'$_SERVER['PHP_SELF'].'); na het instellen van de sessie.
    Ik neem aan dat deze voor mij bedoeld was. Begrijp alleen even niet wat je bedoeld
    Swetseneggerdonderdag 27 augustus 2009 @ 18:12
    quote:
    Op donderdag 27 augustus 2009 18:00 schreef uppie83 het volgende:

    [..]

    Ik neem aan dat deze voor mij bedoeld was. Begrijp alleen even niet wat je bedoeld
    dat je de pagina een keer refreshed als je de sessie heb ingesteld
    uppie83donderdag 27 augustus 2009 @ 18:22
    quote:
    Op donderdag 27 augustus 2009 18:12 schreef Swetsenegger het volgende:

    [..]

    dat je de pagina een keer refreshed als je de sessie heb ingesteld
    Dat is idd wel een oplossing, maar meer symptoombestrijding ipv probleemoplossend.
    Swetseneggerdonderdag 27 augustus 2009 @ 18:23
    quote:
    Op donderdag 27 augustus 2009 18:22 schreef uppie83 het volgende:

    [..]

    Dat is idd wel een oplossing, maar meer symptoombestrijding ipv probleemoplossend.
    Nee dat is het niet. Cookies en Sessies (de laatste weet ik niet zeker) werken pas de volgende keer dat de pagina geladen wordt.
    uppie83donderdag 27 augustus 2009 @ 18:32
    quote:
    Op donderdag 27 augustus 2009 18:23 schreef Swetsenegger het volgende:

    [..]

    Nee dat is het niet. Cookies en Sessies (de laatste weet ik niet zeker) werken pas de volgende keer dat de pagina geladen wordt.
    Hmm dat geeft weer ideeen Bedankt! Zal het sessoin verhaal wel verhuizen naar de index zelf aangezien de index minstens een keer moet reloaden voordat dit script wordt uitgevoerd.

    Vind het echter wel raar dat het voor het hernoemen wel perfect werkte nadat ik ?random='.microtime(true). achter de src bij de image had gezet.
    GlowMousedonderdag 27 augustus 2009 @ 18:38
    session_register niet meer gebruiken, is niet nodig.

    En de eerste keer zou het al goed moeten gaan.
    quote:
    Op donderdag 27 augustus 2009 18:23 schreef Swetsenegger het volgende:

    [..]

    Nee dat is het niet. Cookies en Sessies (de laatste weet ik niet zeker) werken pas de volgende keer dat de pagina geladen wordt.
    Bij sessies zeker niet; komt omdat je sessievars direct via de superglobal instelt.
    uppie83donderdag 27 augustus 2009 @ 19:58
    quote:
    Op donderdag 27 augustus 2009 18:38 schreef GlowMouse het volgende:
    session_register niet meer gebruiken, is niet nodig.

    En de eerste keer zou het al goed moeten gaan.
    [..]

    Bij sessies zeker niet; komt omdat je sessievars direct via de superglobal instelt.
    Maar de eerste keer gaat het niet goed (heb nog geen tijd gehad om het een en ander naar index te verplaatsen, dus ik heb het nog over de oude situatie zoals die in de laatste post met code stond beschreven)... of komt dat doordat ik ook session_register nog een keer gebruik?
    raaavidonderdag 27 augustus 2009 @ 22:33


    hier staat dus hoe ik een background img toevoeg.
    maar wat nou als ik hem

    1. niet herhalend
    2. links midden uitgelijnd wil hebben

    Hoe moet dat ?
    GlowMousedonderdag 27 augustus 2009 @ 22:33
    Niet met PHP/MySQL.
    Xcaliburdonderdag 27 augustus 2009 @ 22:49
    quote:
    Op donderdag 27 augustus 2009 18:23 schreef Swetsenegger het volgende:

    [..]

    Nee dat is het niet. Cookies en Sessies (de laatste weet ik niet zeker) werken pas de volgende keer dat de pagina geladen wordt.
    Sessies niet, die kun je direct gebruiken.
    Als je wilt dat ze als sessie bewaard blijven heb je wel output naar je browser nodig, anders gaan ze verloren. Gelukkig is daar session_write_close() voor, die kun je dus aanroepen voor een redirect, zodat je sessie bewaard blifjt
    raaavidonderdag 27 augustus 2009 @ 22:49
    quote:
    Op donderdag 27 augustus 2009 22:33 schreef GlowMouse het volgende:
    Niet met PHP/MySQL.
    Eujah moet ik mn eigen topic aanmaken dan?
    GlowMousedonderdag 27 augustus 2009 @ 22:51
    quote:
    Op donderdag 27 augustus 2009 22:49 schreef raaavi het volgende:

    [..]

    Eujah moet ik mn eigen topic aanmaken dan?
    Je kunt het ook in het centrale 'ik ben zwanger'-topic posten natuurlijk, met dezelfde logica als dat je het hier postte.
    GlowMousedonderdag 27 augustus 2009 @ 22:52
    quote:
    Op donderdag 27 augustus 2009 22:49 schreef Xcalibur het volgende:

    [..]

    Sessies niet, die kun je direct gebruiken.
    Als je wilt dat ze als sessie bewaard blijven heb je wel output naar je browser nodig, anders gaan ze verloren. Gelukkig is daar session_write_close() voor, die kun je dus aanroepen voor een redirect, zodat je sessie bewaard blifjt
    Hij stuurt toch output? Session_write_close() heb ik echt nog nooit gezien ergens.
    Darkomendonderdag 27 augustus 2009 @ 23:01
    quote:
    Op donderdag 27 augustus 2009 22:49 schreef raaavi het volgende:

    [..]

    Eujah moet ik mn eigen topic aanmaken dan?
    css voor dummies: [CSS] voor dummies - deel 12
    Xcaliburdonderdag 27 augustus 2009 @ 23:05
    quote:
    Op donderdag 27 augustus 2009 22:52 schreef GlowMouse het volgende:

    Hij stuurt toch output? Session_write_close() heb ik echt nog nooit gezien ergens.
    Ja, dat zou hier het probleem niet moeten zijn
    Session_write_close gebruik ik standaard voor iedere redirect, just in case
    Chandlervrijdag 28 augustus 2009 @ 10:00
    @Moozzie: nog meer comments over m'n class?
    SuperRembovrijdag 28 augustus 2009 @ 17:30
    Chandler, je gebruikt steeds date/time waarden en unix timespamp waarden door elkaar. Je moet of date/time waarden vergelijk of unix timestamps.
    Dus als je een kolom als date definieerd, vergelijk 'm dan met CURDATE(), of NOW().
    Als je een kolom als integer en je zet er timestamps in, vergelijk 'm dan met UNIX_TIMESTAMP().

    Het prefixen van kolomnamen met een afkorting van de tabelnaam vind ik onzinnig. Alleen voor een PK id kolom is 't wel handig om er de naam van de tabel in te verwerken, maar gebruik die dan ook voor lalle kolommen die er naar verwijzen.

    Probeer in ieder geval consequent te zijn. Ook in naamgeving, sommige namen zijn bij jou lowercase (votedate), andere camel case (tinyPoll) en sommige met underscores (date_started).

    Wat is eigenlijk de gedachte achter de lengte van velden in machten van 2? Het ljikt me sterk dat het supergeoptimaliseerde waarden zijn. Gebruik dan ook gewoon lengtes van 50 of 100 tekens. Wel zomakkelijk, en minder vreemd voor een gebruiker. ('De titel mag maximaal 64 tekens lang zijn' )
    Chandlervrijdag 28 augustus 2009 @ 18:38
    @SuperRembo;

    Ik zal het proberen te onthouden (alles over de dates)
    En heb het script nu al aangepast op mijn nieuwe style testTestTest

    Ennuh ja ik zal idd eens andere waarden gebruiken, maar 64/128 werkt zo fijn
    uppie83vrijdag 28 augustus 2009 @ 18:58
    session_start(); in de index erbij werkte ook niet (evenals de beide session_start(); bij het image.php en form bestand op de eerste regel zetten).
    SuperRembovrijdag 28 augustus 2009 @ 21:09
    quote:
    Op vrijdag 28 augustus 2009 18:38 schreef Chandler het volgende:
    @SuperRembo;

    Ik zal het proberen te onthouden (alles over de dates)
    Je hoeft het niet allemaal te onthouden, je kan het makkelijk opzoeken.
    quote:
    Ennuh ja ik zal idd eens andere waarden gebruiken, maar 64/128 werkt zo fijn
    Wat is er zo fijn aan 64 of 128
    Tuvai.netvrijdag 28 augustus 2009 @ 21:36
    quote:
    Op vrijdag 28 augustus 2009 17:30 schreef SuperRembo het volgende:
    Het prefixen van kolomnamen met een afkorting van de tabelnaam vind ik onzinnig. Alleen voor een PK id kolom is 't wel handig om er de naam van de tabel in te verwerken, maar gebruik die dan ook voor lalle kolommen die er naar verwijzen.
    Ben ik niet helemaal met je eens. Ik heb bijvoorbeeld heel vaak 'name', 'desc' en/of 'content' kolommen in verschillende tabellen. Als je deze tabellen gaat joinen dan moet je al gaan aliassen om de correcte kolom te kunnen benaderen in je code, of je moet in je daadwerkelijke query de hele tabelnaam als identifier mee gaan geven. Dan heb ik toch liever een kleine maar duidelijke prefix. Maar goed, da's weer een kwestie van voorkeur natuurlijk. Ik werk heel vaak met grote, relationele databases waar t.b.v. de normalisatie gebruik wordt gemaakt van een behoorlijk aantal stamtabellen. Ik moet er niet aan denken om dan op query-niveau te gaan aliassen.

    Tevens TVP.
    Xcaliburvrijdag 28 augustus 2009 @ 22:38
    quote:
    Op vrijdag 28 augustus 2009 21:36 schreef Tuvai.net het volgende:
    Als je deze tabellen gaat joinen dan moet je al gaan aliassen om de correcte kolom te kunnen benaderen in je code, of je moet in je daadwerkelijke query de hele tabelnaam als identifier mee gaan geven. Dan heb ik toch liever een kleine maar duidelijke prefix.
    ik heb dan weer een hekel aan luie programmeurs die de hele bende gaan afkorten
    geef mij maar fijne aliassen en overzichtelijke namen
    Tuvai.netvrijdag 28 augustus 2009 @ 23:07
    quote:
    Op vrijdag 28 augustus 2009 22:38 schreef Xcalibur het volgende:

    [..]

    ik heb dan weer een hekel aan luie programmeurs die de hele bende gaan afkorten
    geef mij maar fijne aliassen en overzichtelijke namen
    Ik kort helemaal niks af, ik zet juist overal een prefix voor.

    Aliasing is handig, maar totaal niet leuk meer in bijvoorbeeld een view waarin 20 tabellen gejoined of zo.
    Xcaliburvrijdag 28 augustus 2009 @ 23:49
    ik verdenk je ervan dat die prefix een afkorting is
    Of dat je tabellen aliast met 1 letter
    uppie83zaterdag 29 augustus 2009 @ 00:39
    Grof gezegd is dit momenteel mijn form:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <?php
    session_start
    ();
    require (
    "php/XXX/secFunctions.php");
     
    $_SESSION['sessionString'] = randomString(5);
    session_write_close();
     
    if(!IsSet(
    $_POST['stage']))
    {

    <
    form action=" echo $_SERVER["PHP_SELF"]; ?id=gbadd" method="POST">
    .
    <
    img width="150" height="100" border="0" src="image.php?random='.microtime(true).'" alt=&#8221;secImage&#8221;> <br />
    <input size="50" maxlength="60" type="text" name="sec"><br />
     echo 
    "session:"Print_r ($_SESSION); 
    <
    input type="hidden" name="stage" value=1>
    </
    form>

    } else {
    ?>


    image.php:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    header
    "Content-Type: image/png");
    header"Expires: Mon, 20 Dec 1998 01:00:00 GMT" );
    header"Last-Modified: " gmdate("D, d M Y H:i:s") . " GMT" );
    header"Cache-Control: no-cache, must-revalidate" );
    header"Pragma: no-cache" );
     
    session_start();
    require (
    "php/XXX/secFunctions.php");
    createSecImage(150100100$_SESSION['sessionString']);
    ?>


    Probleem blijft echter dat de eerste keer dat de pagina van de form bezocht wordt er nog geen text in het plaatje staat. Wel bij de print_r
    GlowMousezaterdag 29 augustus 2009 @ 01:00
    heb je een linkje?
    uppie83zaterdag 29 augustus 2009 @ 01:20
    quote:
    Op zaterdag 29 augustus 2009 01:00 schreef GlowMouse het volgende:
    heb je een linkje?
    nope, draait helaasch intern. Is er iets dat je nodig hebt om de grote hamvraag die mij al dagen bezig houdt te kunnen beantwoorden, dan post ik dat echter graag.
    GlowMousezaterdag 29 augustus 2009 @ 01:21
    Kwestie van eerst zien, dan geloven
    uppie83zaterdag 29 augustus 2009 @ 01:40
    Begrijp ik het goed dat je niet gelooft dat het niet werkt? :p
    GlowMousezaterdag 29 augustus 2009 @ 01:41
    quote:
    Op zaterdag 29 augustus 2009 01:40 schreef uppie83 het volgende:
    Begrijp ik het goed dat je niet gelooft dat het niet werkt? :p
    Heel goed
    uppie83zaterdag 29 augustus 2009 @ 01:46
    quote:
    Op zaterdag 29 augustus 2009 01:41 schreef GlowMouse het volgende:

    [..]

    Heel goed
    Beetje rare reactie. Ik zit niet voor niets al dagen te nagelbijten op dit probleem. Of denk je dat ik hier mensen voor jan met de korte achternaam laat zweten op een probleem dat eigenlijk al is opgelost?
    GlowMousezaterdag 29 augustus 2009 @ 01:48
    Als ik vergelijkbare code al vaak probleemloos heb toegepast, is het toch niet zo gek dat ik eerst wat wil zien voor ik het geloof?
    uppie83zaterdag 29 augustus 2009 @ 01:50
    quote:
    Op zaterdag 29 augustus 2009 01:48 schreef GlowMouse het volgende:
    Als ik vergelijkbare code al vaak probleemloos heb toegepast, is het toch niet zo gek dat ik eerst wat wil zien voor ik het geloof?
    Ok verkeer begrepen
    Ik zal eens kijken of ik wat online kan gooien.
    dr.dunnozaterdag 29 augustus 2009 @ 02:11
    iemand een samenvatting van het voorgaande?
    verkapte tvp
    Xcaliburzaterdag 29 augustus 2009 @ 09:50
    Dat script wat je gepost hebt kan nooit werken....
    Of zit FOK weer allerlei <?php tags te verwijderen naar eigen inzicht ofzo?
    Lamzak_zaterdag 29 augustus 2009 @ 13:02
    Ik ben een echte newbie in php, maar kan iemand mij uitleggen waarom ik deze foutmelding krijg?:


    Warning: Cannot modify header information - headers already sent by (output started at /index.php:2) in /index.php on line 35

    1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1 /DTD/xhtml1-transitional.dtd">
    2 <?php
    3 include("config.php");
    4 $querytekst = "SELECT * FROM teksten";
    .......
    35 header('Location: ' . $_SERVER['REQUEST_URI']);
    GlowMousezaterdag 29 augustus 2009 @ 13:06
    quote:
    Remember that header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP. It is a very common error to read code with include(), or require(), functions, or another file access function, and have spaces or empty lines that are output before header() is called. The same problem exists when using a single PHP/HTML file.
    De beste oplossing is om jezelf een tweedeling aan te leren: je voegt een regel /******************/ toe met daarboven geen html, en daaronder geen dataverwerking meer (zoals queries).
    Lightzaterdag 29 augustus 2009 @ 13:07
    quote:
    Op zaterdag 29 augustus 2009 13:02 schreef Lamzak_ het volgende:
    Ik ben een echte newbie in php, maar kan iemand mij uitleggen waarom ik deze foutmelding krijg?:


    Warning: Cannot modify header information - headers already sent by (output started at /index.php:2) in /index.php on line 35

    1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1 /DTD/xhtml1-transitional.dtd">
    2 <?php
    3 include("config.php");
    4 $querytekst = "SELECT * FROM teksten";
    .......
    35 header('Location: ' . $_SERVER['REQUEST_URI']);
    De regel met de doctype-declaratie is output. Als je die gehad hebt, kun je geen headers meer aanpassen en geeft de functie header() zo'n foutmelding.
    Lamzak_zaterdag 29 augustus 2009 @ 13:10
    quote:
    Op zaterdag 29 augustus 2009 13:07 schreef Light het volgende:

    [..]

    De regel met de doctype-declaratie is output. Als je die gehad hebt, kun je geen headers meer aanpassen en geeft de functie header() zo'n foutmelding.
    dus als ik die onder dat eerste stuk mysql->php zet, dan hoort het te functioneren?
    Lightzaterdag 29 augustus 2009 @ 13:23
    quote:
    Op zaterdag 29 augustus 2009 13:10 schreef Lamzak_ het volgende:

    [..]

    dus als ik die onder dat eerste stuk mysql->php zet, dan hoort het te functioneren?
    Het moet in ieder geval na alle header()-regels, dus sowieso na regel 35.
    Pizzahutzaterdag 29 augustus 2009 @ 14:04
    Voor mijn CMS gebruik ik voor tekst fckeditor, werk er al een tijd mee een vind het heerlijk werken.
    Alleen is er een mogelijkheid om een page-break in te voeren, nu neem ik aan dat dit een optie is om een pagina te halveren, alleen hoe werkt dit? Ik voeg een page-break in maar in de output zie ik vrij weinig van die page-break.
    GlowMousezaterdag 29 augustus 2009 @ 14:08
    hoe dat werkt?
    quote:
    Op donderdag 27 augustus 2009 22:33 schreef GlowMouse het volgende:
    Niet met PHP/MySQL.
    Tuvai.netzaterdag 29 augustus 2009 @ 14:09
    quote:
    Op zaterdag 29 augustus 2009 14:04 schreef Pizzahut het volgende:
    Voor mijn CMS gebruik ik voor tekst fckeditor, werk er al een tijd mee een vind het heerlijk werken.
    Alleen is er een mogelijkheid om een page-break in te voeren, nu neem ik aan dat dit een optie is om een pagina te halveren, alleen hoe werkt dit? Ik voeg een page-break in maar in de output zie ik vrij weinig van die page-break.
    Die optie maakt een HTML element aan met de CSS eigenschap page-break-after. Dat wordt op z'n beurt weer gebruikt wanneer je bijvoorbeeld een webpagina gaat afdrukken.
    Pizzahutzaterdag 29 augustus 2009 @ 14:24
    quote:
    Op zaterdag 29 augustus 2009 14:09 schreef Tuvai.net het volgende:

    [..]

    Die optie maakt een HTML element aan met de CSS eigenschap page-break-after. Dat wordt op z'n beurt weer gebruikt wanneer je bijvoorbeeld een webpagina gaat afdrukken.
    ah zo, thx!
    Lamzak_zaterdag 29 augustus 2009 @ 14:50
    quote:
    Op zaterdag 29 augustus 2009 13:23 schreef Light het volgende:

    [..]

    Het moet in ieder geval na alle header()-regels, dus sowieso na regel 35.
    Ej, toppertje, bedankt


    In dit topic ga ik vaker te vinden zijn, ik durf daadwerkelijk code te plaatsen etc
    uppie83zaterdag 29 augustus 2009 @ 16:01
    Ik ben er inmiddels achter dat het niet ligt aan de caching van het plaatje, maar aan het feit dat de sessievariabele de eerste ronde gewoon nog niet bekend is. Heb met een logfile gekeken wat de waardes waren van de $_SESSION['sessionString']
    GSMboymaandag 31 augustus 2009 @ 20:35
    Vast iets simpels. maar hoe kan je eigenlijk van een zin, steeds elke 3 woorden max. pakken?

    Dus:

    Fok is een bazig site heur, luitjes!
    Dat dat een Array wordt like
    1
    2
    3
    4
    5
    array(
    [0] => Fok is een
    [1] => bazige site heur,
    [2] => luitjes!
    )


    Wie o wie?
    Ik weet dat je met count() alle elementen uit de array kan tellen, en dat je de modulo moet gebruiken met %, maar verder?
    Kan iemand me een voorbeeldje geven? Vast iets kleins
    GlowMousemaandag 31 augustus 2009 @ 20:42
    Probeer eens http://nl2.php.net/manual/en/function.preg-split.php
    GSMboymaandag 31 augustus 2009 @ 20:45
    quote:
    Arrgh, reguliere expressies, noooes...
    Nee, daar ben ik slecht in. Iemand die me een duwtje in de rug kan geven . vast niet veel werk, maar de missende schakel weet ik niet om dus per 3 woorden te splitten in een array.
    GlowMousemaandag 31 augustus 2009 @ 20:58
    Ga maar even prutsen, is goed voor je Je kunt met /(.*) (.*) (.*) /U beginnen als pattern. Die U zorgt ervoor dat er geen spaties zitten in de (.*).
    GSMboymaandag 31 augustus 2009 @ 21:06
    Ja, hoor.. ben wat verder:
    1
    2
    $zin = preg_split("/(.*) (.*) (.*) /U", "leenttje leerde lotje lopen langs de lange lindenlaan.");
    print_r($zin);

    maar dit geeft:
    Array ( [0] => [1] => [2] => lange lindenlaan. )

    Niet helemaal juist dus?
    GlowMousemaandag 31 augustus 2009 @ 21:07
    http://nl3.php.net/preg_split
    Goed lezen naar de flags.
    GSMboymaandag 31 augustus 2009 @ 21:15
    Ik lees, en kijk?
    Maar het wel echt wil echt niet werken?

    1
    2
    $zin = preg_split("/(.*) (.*) (.*) /U", "leenttje leerde lotje lopen langs de lange lindenlaan.",-1, PREG_SPLIT_DELIM_CAPTURE );
    print_r($zin);

    Moet toch iets simpels zijn?
    Trollface.maandag 31 augustus 2009 @ 21:22
    Probeer je op spaties te scheiden? Dan gewoon:
    1
    2
    3
    <?php
    explode
    (" "$string);
    ?>


    Edit: disregard that, ik snap het. Laat maar.
    GlowMousemaandag 31 augustus 2009 @ 21:23
    Lees nou eens goed de handleiding bij die flags; een iets ander pattern en je hebt dit:
    1
    2
    3
    4
    5
    6
    7
    8
    Array
    (
        [0] =>
        [1] => leenttje leerde lotje
        [2] =>
        [3] => lopen langs de
        [4] => lange lindenlaan.
    )

    En beter krijg ik het niet.
    GSMboymaandag 31 augustus 2009 @ 21:24
    Ik lees, maar ik kom er niet uit?
    Ik snap wel dat jij developer bent en meer weet dan ik. Maar vertellen welke flags ik moet hebben?
    Heb al zoveel geprobeerd Ik vraag het niets voor niets hier

    Ik zit al 5 minuten te kloten ermee? Dus?

    Ik kan anders ook die hele pregsplit() achterwege laten en exploden.. Maar hoe kan ik dan per 3 elementen pakken?
    Daar wil ik naar toe?
    GlowMousemaandag 31 augustus 2009 @ 21:25
    Ga maar opzoeken wat de haakjes doen
    Xcaliburmaandag 31 augustus 2009 @ 21:27
    quote:
    Op maandag 31 augustus 2009 21:24 schreef GSMboy het volgende:
    Ik zit al 5 minuten te kloten ermee? Dus?
    Als dit jouw attentionspan is, stel ik voor dat je iets anders gaat doen
    SBS6 kijken ofzo...
    GSMboymaandag 31 augustus 2009 @ 21:30
    quote:
    Op maandag 31 augustus 2009 21:27 schreef Xcalibur het volgende:

    [..]

    Als dit jouw attentionspan is, stel ik voor dat je iets anders gaat doen
    SBS6 kijken ofzo...
    Ja, TV staat naast me. En nee SBS6 staat er niet op, campingzender.
    heb wel even wat slordigs geschreven met explode, en dan per 3 woorden in een var opslaan.
    Ranzig, maar het werkt.

    Had me graag verdiept in de materie en kennis van preg_split en reguliere expressies, maar dat leer je echt niet in een half uur tijd hoor , vooral niet als het nieuw is en je maar enkele keren per maand je PHP-editor opent.

    maar thanks voor de ideen

    [ Bericht 26% gewijzigd door GSMboy op 31-08-2009 21:36:50 ]
    jakeesmaandag 31 augustus 2009 @ 22:29
    hallo ik ben bezig met een website om de score bij te houden van mijn zaalvoetbalteam.

    Ik probeer het volgende te bereiken. Ik haal eerst in een multiselect alle spelers op. Na het kiezen van 5/6 spelers in de multi-select box wil ik 5/6 rijen wegschrijven naar de tabel. Nu lukt het wel om de spelers in de multi-select box te schrijven maar het wegschrijven lukt niet. Ik krijg in het bestand dat ik aanroep kan ik de waardes al niet uitlezen. Kan iemand me wat tips geven? De code die ik nu gebruik:
    htm bestand
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <html>
       <body>
       <h1>Toevoegen Wedstrijdverloop </h1>
       <form action="3.1.3_controleWedstrijdVerloop.php" method="post">
          <p>Team1: <select multiple="multiple" name="team1[]" size="20">   
          <?php
             $conn = mysql_connect("localhost", "root ","") or die(mysql_error());
             $db = mysql_select_db("zaalvoetbal", $conn) or die(mysql_error());
             $sql = 'SELECT spelers_achternaam, spelers_voornaam FROM `spelers`';
             $result = mysql_query($sql) or die (mysql_error());
             if(mysql_num_rows($result))
             {
                while ($row = mysql_fetch_assoc($result))
                {
                   echo"<option>$row[spelers_voornaam] $row[spelers_achternaam]</option>";
                }
             }
          ?>
          </select>
       <input type="submit" name="teamCheck" value="ControleTeam"</>
       </form>   
       </body>

    aanroep bestand
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <html>
       <body>
          <?php
          if($_POST['ControleTeam'] != "")
          {
             $teamLeden = $_POST['ControleTeam'];
             echo (count($teamLeden));
             if(is_null($teamLeden))
             {
                echo("GeenTeamleden");
             }
             else 
                {
                   echo (count($teamLeden));
                   for($i=0; $i < count($teamLeden); $i++)
                   {
                      echo($teamLeden[$i] . " ");
                   }
                   echo("</p>");
                }
          }
          ?>
       </body>
    </html>
    GlowMousemaandag 31 augustus 2009 @ 22:32
    quote:
    Op zaterdag 29 augustus 2009 13:06 schreef GlowMouse het volgende:

    [..]

    De beste oplossing is om jezelf een tweedeling aan te leren: je voegt een regel /******************/ toe met daarboven geen html, en daaronder geen dataverwerking meer (zoals queries).
    Ga dat eerst eens in praktijk brengen want je code is rotzooi.

    En ik snap je hele probleem niet.
    jakeesmaandag 31 augustus 2009 @ 22:48
    quote:
    Op maandag 31 augustus 2009 22:32 schreef GlowMouse het volgende:

    [..]

    Ga dat eerst eens in praktijk brengen want je code is rotzooi.

    En ik snap je hele probleem niet.
    je bedoelt dat ik meer functies moet aanmaken?
    GlowMousemaandag 31 augustus 2009 @ 22:56
    quote:
    Op maandag 31 augustus 2009 22:48 schreef jakees het volgende:

    [..]

    je bedoelt dat ik meer functies moet aanmaken?
    Dat zou de volgende stap worden. En een database-class.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <?php
              $conn 
    mysql_connect("localhost""root ","") or die(mysql_error());
             
    $db mysql_select_db("zaalvoetbal"$conn) or die(mysql_error());
             
    $sql 'SELECT spelers_achternaam, spelers_voornaam FROM `spelers`';
             
    $result mysql_query($sql) or die (mysql_error());
             
    $spelers = array();
             while (
    $row mysql_fetch_assoc($result))
             {
                  
    $spelers[] = $row;
             }
    /************************************/

    <html>
       <
    body>
       <
    h1>Toevoegen Wedstrijdverloop </h1>
       <
    form action="3.1.3_controleWedstrijdVerloop.php" method="post">
          <
    p>Team1: <select multiple="multiple" name="team1[]" size="20">   

         foreach(
    $spelers as $row) {
                echo
    "<option>$row[spelers_voornaam] $row[spelers_achternaam]</option>";
          }

          </
    select>
       <
    input type="submit" name="teamCheck" value="ControleTeam"</>
       </
    form>   
       </
    body>
    ?>

    de php sluit- en opentags staan niet goed in mijn post maar dit is het idee.
    Trollface.maandag 31 augustus 2009 @ 23:03
    Het moet $_POST['teamcheck'] != "" zijn ipv dat andere.

    Also, vlak daarna $_POST['team1'] ipv $_POST['controleTeam'].
    jakeesmaandag 31 augustus 2009 @ 23:08
    quote:
    Op maandag 31 augustus 2009 22:56 schreef GlowMouse het volgende:

    [..]

    Dat zou de volgende stap worden. En een database-class.
    [ code verwijderd ]

    de php sluit- en opentags staan niet goed in mijn post maar dit is het idee.
    ok thx.
    Maar mijn probleem is dat ik in een php-bestand wil aanroep met als input de geselecteerde rijen in de multi-select. In het bestand dat ik aanroep wil ik vervolgens één voor één door de array lopen en vervolgens een voor een wegschrijven naar een tabel.Ik krijg echter in het aanroepende bestand geengegevens in de variabele.
    Trollface.maandag 31 augustus 2009 @ 23:12
    Je pakt de verkeerde namen, zie mijn post.
    jakeesmaandag 31 augustus 2009 @ 23:22
    quote:
    Op maandag 31 augustus 2009 23:03 schreef Trollface. het volgende:
    Het moet $_POST['teamcheck'] != "" zijn ipv dat andere.

    Also, vlak daarna $_POST['team1'] ipv $_POST['controleTeam'].
    bedankt voor je reactie maar ik snap niet helemaal wat je zegt. Ik snap dat ik de variabele verkeerd gebruik en heb nu:
    1<input type="submit" name="teamcheck" value="team1[]"</> 

    in het eerste bestand en

    1
    2
    3
    4
    5
    6
    <?php
    if($_POST['teamcheck'] != "" )
    {
    $teamLeden = $_POST['teamcheck'];
    echo (count($teamLeden));
    ....

    in het tweede bestand.
    Trollface.dinsdag 1 september 2009 @ 00:27
    Dat bedoelde ik niet. Ik had het over de namen in het afhandelbestand.
    Flacciddinsdag 1 september 2009 @ 15:21
    Waarschijnlijk een veel voorkomend fenomeen: Ik heb een simpel scriptje wat iets wegschrijft in een textfile. Nu zitten daar soms quotes in, maar komen daar slashes voor. Hoe haal ik die slashes weg?
    GlowMousedinsdag 1 september 2009 @ 15:21
    Zoek eens op magic_quotes_gpc.
    Flacciddinsdag 1 september 2009 @ 15:55
    Ik zie dat deze functie niet in php 6 zit. Kan het op een andere manier?
    GlowMousedinsdag 1 september 2009 @ 15:56
    quote:
    Op dinsdag 1 september 2009 15:55 schreef Flaccid het volgende:
    Ik zie dat deze functie niet in php 6 zit. Kan het op een andere manier?
    Je gebruikt die functie nu wel, dus ervan afstappen zou een logische stap zijn.
    Flacciddinsdag 1 september 2009 @ 16:02
    quote:
    Op dinsdag 1 september 2009 15:56 schreef GlowMouse het volgende:

    [..]

    Je gebruikt die functie nu wel, dus ervan afstappen zou een logische stap zijn.
    Oh ik dacht dat ik m juist moet gebruiken. Ff googlen hoe ie uit gaat.
    GlowMousedinsdag 1 september 2009 @ 16:04
    quote:
    Op dinsdag 1 september 2009 16:02 schreef Flaccid het volgende:

    [..]

    Oh ik dacht dat ik m juist moet gebruiken. Ff googlen hoe ie uit gaat.
    Die functie gooit juist quotes in je input (GET/POST/COOKIE) en dat wil je niet
    Flacciddinsdag 1 september 2009 @ 16:36
    quote:
    Op dinsdag 1 september 2009 16:04 schreef GlowMouse het volgende:

    [..]

    Die functie gooit juist quotes in je input (GET/POST/COOKIE) en dat wil je niet
    Inderdaad, nu werkt t weer, via .htaccess uitgezet. Thanks
    ReWoutwoensdag 2 september 2009 @ 08:00
    Ik heb even een vraagje over sql...

    Ik zit met 't volgende probleem. Namelijk ik heb een tabel, laten we deze even y noemen. Deze heeft 2 velden.
    id en naam. Nu kan een naam gekoppeld zijn aan 1 of meerdere andere namen in dezelfde tabel...

    Dus gewoon een koppeltabel...
    id_1 id_2
    die beiden eigenlijk verwijzen naar de de eerste rij van de vorige tabel. Nu is mijn vraag.

    Kan ik hier oor foreign key constraints op gebruiken? Ik probeer dit namelijk bij sql server maar lukt niet echt
    Lightwoensdag 2 september 2009 @ 08:07
    quote:
    Op woensdag 2 september 2009 08:00 schreef ReWout het volgende:
    Ik heb even een vraagje over sql...
    Welke SQL smaak bedoel je precies?
    Tuvai.netwoensdag 2 september 2009 @ 08:37
    quote:
    Op woensdag 2 september 2009 08:00 schreef ReWout het volgende:
    Ik heb even een vraagje over sql...

    Ik zit met 't volgende probleem. Namelijk ik heb een tabel, laten we deze even y noemen. Deze heeft 2 velden.
    id en naam. Nu kan een naam gekoppeld zijn aan 1 of meerdere andere namen in dezelfde tabel...

    Dus gewoon een koppeltabel...
    id_1 id_2
    die beiden eigenlijk verwijzen naar de de eerste rij van de vorige tabel. Nu is mijn vraag.

    Kan ik hier oor foreign key constraints op gebruiken? Ik probeer dit namelijk bij sql server maar lukt niet echt
    SQL Server. Verkeerde topic.
    -> Het grote (?) .NET en MSSQL topic

    Maar goed, wat gebruik je als ids? ints / bigints of uniqueidentifiers? De kolomtypes waar je de foreign key constraints op legt (dus de id kolom van je 'y' tabel en het betreffende id veld in je koppeltabel) dienen wel hetzelfde te zijn. Is het id veld van je 'y'-tabel wel primary key? Welke error krijg je overigens?
    ReWoutwoensdag 2 september 2009 @ 09:50
    quote:
    Op woensdag 2 september 2009 08:37 schreef Tuvai.net het volgende:

    [..]

    SQL Server. Verkeerde topic.
    -> Het grote (?) .NET en MSSQL topic

    Maar goed, wat gebruik je als ids? ints / bigints of uniqueidentifiers? De kolomtypes waar je de foreign key constraints op legt (dus de id kolom van je 'y' tabel en het betreffende id veld in je koppeltabel) dienen wel hetzelfde te zijn. Is het id veld van je 'y'-tabel wel primary key? Welke error krijg je overigens?
    Yup id in y is natuurlijk primary key. Mag ook geen null hebben en types zijn 't zelfde.
    Tuvai.netwoensdag 2 september 2009 @ 09:53
    quote:
    Op woensdag 2 september 2009 08:37 schreef Tuvai.net het volgende:
    Welke error krijg je overigens?
    ReWoutwoensdag 2 september 2009 @ 11:56
    nvm. heb 't al was een fout in 't schema.
    ReWoutwoensdag 2 september 2009 @ 11:58
    quote:
    Op woensdag 2 september 2009 11:56 schreef ReWout het volgende:
    nvm. heb 't al was een fout in 't schema.
    quote] Op woensdag 2 september 2009 09:53 schreef Tuvai.net het volgende:
    [..]
    [/quote]

    Kon je toch niets mee aangezien ie zei dat de PK van tabel y toestond dat ie op null kon staan. Maar dat was dus helemaal niet zo.
    Swetseneggerwoensdag 2 september 2009 @ 22:51
    Kan je in een insert query een select subquery inbouwen?

    voorbeeld

    1
    2
    3
    4
    5
    INSERT into bestellingInhoud
           (id,bestelId,eigId,aantal,prijs)
           VALUES(0,'".$bestelId."','".$k."','".$v."',".
                   SELECT prijs FROM eigenschappen WHERE id=$k
                  .")";


    Maar dan werkend
    Tuvai.netwoensdag 2 september 2009 @ 22:54
    quote:
    Op woensdag 2 september 2009 22:51 schreef Swetsenegger het volgende:
    Kan je in een insert query een select subquery inbouwen?

    voorbeeld
    [ code verwijderd ]

    Maar dan werkend
    Ja.

    1
    2
    3
    INSERT INTO bestellingInhoud
    (id, bestelId, eigId, aantal, prijs)
    VALUES(0, '".$bestelId."', '".$k."', '".$v."', (SELECT prijs FROM eigenschappen WHERE id=".$k."))


    Gewoon even puur op SQL niveau denken dus, volgens mij probeer jij je subquery als PHP uit te voeren, als ik de aanhalingstekens en de puntjes om je subquery heen zie. Voor de rest gewoon een kwestie van een ( en ) er om heen om een subquery aan te duiden, zoals je dat ook in een SELECT query doet.

    [ Bericht 6% gewijzigd door Tuvai.net op 03-09-2009 07:40:30 ]
    Swetseneggerwoensdag 2 september 2009 @ 22:56
    Cool! ga ik gelijk proberen

    en het werkt natuurlijk...

    [ Bericht 13% gewijzigd door Swetsenegger op 02-09-2009 23:14:02 ]
    Xcaliburdonderdag 3 september 2009 @ 08:43
    Ja, dat kan dus
    Handige manier om data van een tijdelijke tabel naar een live tabel over te pompen bijvoorbeeld

    phpMyAdmin kan dat ook trouwens, dus daar had je het principe ook wel vandaan kunnen jatten
    Chandlerdonderdag 3 september 2009 @ 10:19
    vanaf welke versie (mysql) werken subqueries eingelijk?
    Tuvai.netdonderdag 3 september 2009 @ 10:43
    Vanaf 4.1

    http://dev.mysql.com/tech(...)bqueries_part_1.html
    Mordrethdonderdag 3 september 2009 @ 11:28
    quote:
    Op donderdag 3 september 2009 10:19 schreef Chandler het volgende:
    vanaf welke versie (mysql) werken subqueries eingelijk?
    Handig spul . Vertraagd de boel wel flink.
    GlowMousedonderdag 3 september 2009 @ 12:43
    quote:
    Op donderdag 3 september 2009 11:28 schreef Mordreth het volgende:

    [..]

    Handig spul . Vertraagdt de boel wel flink.
    Er zijn genoeg situaties waarin een subquery sneller is dan dezelfde data ophalen zonder subquery.
    Tuvai.netdonderdag 3 september 2009 @ 12:45
    quote:
    Op donderdag 3 september 2009 12:43 schreef GlowMouse het volgende:

    [..]

    Er zijn genoeg situaties waarin een subquery sneller is dan dezelfde data ophalen zonder subquery.
    Dat dus.

    Om actuele data uit een andere tabel/record op te halen is een subquery ideaal bij een insert/update. Sowieso sneller dan de data zonder subquery ergens ophalen (en nog erger, dat IN je applicatie doen, buiten je database) en dan weer verwerken.
    GlowMousedonderdag 3 september 2009 @ 12:46
    quote:
    Op donderdag 3 september 2009 12:45 schreef Tuvai.net het volgende:

    [..]

    Dat dus.

    Om actuele data uit een andere tabel/record op te halen is een subquery ideaal bij een insert/update. Sowieso sneller dan de data zonder subquery ergens ophalen (en nog erger, dat IN je applicatie doen, buiten je database) en dan weer verwerken.
    Ook bij SELECTs kan een subquery sneller zijn.
    Moozziedonderdag 3 september 2009 @ 12:50
    Niks mis met subqueries
    Darkomendonderdag 3 september 2009 @ 18:57
    Oke, ook ik zit met een mysql datum probleempje.

    Ik probeer te checken of er al een afspraak is op een bepaalde tijdstip op een dag.
    Na diverse opties geprobeerd te hebben dacht ik een werkende te hebben, maar na 2 weken niks gedaan te hebben (cursus) werkt de check ineens niet meer?

    $sql = "SELECT aid, begin_stamp, eind_stamp FROM agenda WHERE $aid (begin_stamp BETWEEN $beginDag AND $eindDag) AND ( (begin_stamp BETWEEN $beginStamp AND $eindStamp) OR (eind_stamp BETWEEN $beginStamp AND $eindStamp) ) ORDER BY begin_stamp";

    Ik begin door alleen de dag te selecteren, '(begin_stamp BETWEEN $beginDag AND $eindDag) '

    en daarna te controleren of er een afspraak is.

    Die levert bijvoorbeeld zo'n query op.
    Afspraak Begin Dag: 03-09-2009, 00:00:00 1251928800
    Afspraak Eind Dag: 04-09-2009, 00:00:00 1252015200
    Nieuwe Afspraak Begin Stamp: 03-09-2009, 09:55:00 1251964500
    Nieuwe Afspraak Eind Stamp: 03-09-2009, 10:10:00 1251965400

    [SELECT aid, begin_stamp, eind_stamp FROM agenda WHERE aid<>18 AND (begin_stamp BETWEEN 1251928800 AND 1252015200) AND ( (begin_stamp BETWEEN 1251964500 AND 1251965400) OR (eind_stamp BETWEEN 1251964500 AND 1251965400) ) ORDER BY begin_stamp]

    Deze check komt ook bij een update, mocht de tijd zijn aangepast.
    Maar dan alleen worde aid toegevoegd.

    [ Bericht 2% gewijzigd door Darkomen op 03-09-2009 23:27:31 ]
    GlowMousedonderdag 3 september 2009 @ 19:06
    Kijk eens naar mysql_error()
    Tuvai.netdonderdag 3 september 2009 @ 19:16
    quote:
    Op donderdag 3 september 2009 18:57 schreef Darkomen het volgende:
    Oke, ook ik zit met een mysql datum probleempje.

    Ik probeer te checken of er al een afspraak is op een bepaalde tijdstip op een dag.
    Na diverse opties geprobeerd te hebben dacht ik een werkende te hebben, maar na 2 weken niks gedaan te hebben (cursus) werkt de check ineens niet meer?

    $sql = "SELECT aid, begin_stamp, eind_stamp FROM agenda WHERE (begin_stamp BETWEEN $beginDag AND $eindDag) AND ( (begin_stamp=<$eindStamp) (eind_stamp>=$beginStamp ) ) ORDER BY begin_stamp";

    Ik begin door alleen de dag te selecteren, '(begin_stamp BETWEEN $beginDag AND $eindDag) '

    en daarna te controleren of er een afspraak is.

    Die levert bijvoorbeeld zo'n query op.
    Afspraak Begin Dag: 03-09-2009, 00:00:00 1251928800
    Afspraak Eind Dag: 04-09-2009, 00:00:00 1252015200
    Nieuwe Afspraak Begin Stamp: 03-09-2009, 09:55:00 1251964500
    Nieuwe Afspraak Eind Stamp: 03-09-2009, 10:10:00 1251965400

    [SELECT aid, begin_stamp, eind_stamp FROM agenda WHERE aid<>18 AND (begin_stamp BETWEEN 1251928800 AND 1252015200) AND ( (begin_stamp BETWEEN 1251964500 AND 1251965400) OR (eind_stamp BETWEEN 1251964500 AND 1251965400) ) ORDER BY begin_stamp]

    Deze check komt ook bij een update, mocht de tijd zijn aangepast.
    Maar dan alleen worde aid toegevoegd.
    1AND ( (begin_stamp=<$eindStamp) *** (eind_stamp>=$beginStamp ) ) 


    Hoort er geen AND / OR te staan bij die sterretjes?
    Moozziedonderdag 3 september 2009 @ 20:17
    quote:
    Op donderdag 3 september 2009 19:16 schreef Tuvai.net het volgende:

    [..]
    [ code verwijderd ]

    Hoort er geen AND / OR te staan bij die sterretjes?
    En:

    begin_stamp=<$eindStamp
    =< bestaat niet. Dat moet <= zijn
    wobbeldonderdag 3 september 2009 @ 21:39
    Op dit moment heb ik een zelfgeschreven webshop met een tabel Categorieen en tabel Subcategorieen...
    Graag zou ik het willen maken dat je oneindig veel categorieen kan maken (in de praktijk 3 of 4 dus)

    Hoe ga je dat oplossen met PHP? ik kan er geen tutorials over lezen...
    Tuvai.netdonderdag 3 september 2009 @ 21:42
    quote:
    Op donderdag 3 september 2009 21:39 schreef wobbel het volgende:
    Op dit moment heb ik een zelfgeschreven webshop met een tabel Categorieen en tabel Subcategorieen...
    Graag zou ik het willen maken dat je oneindig veel categorieen kan maken (in de praktijk 3 of 4 dus)

    Hoe ga je dat oplossen met PHP? ik kan er geen tutorials over lezen...
    Niet per definitie met PHP. Je zorgt gewoon dat je één tabel categorieën hebt met daarin een veld ParentID. ParentID verwijst weer naar het ID van een ander record in diezelfde tabel.

    Afhankelijk van (wat je presenteert in) je applicatie, zul je bijvoorbeeld wel een 'recursieve functie' moeten schrijven als je een pagina hebt waar je de hele 'boomstructuur' van categorieën wilt weergeven.

    [ Bericht 6% gewijzigd door Tuvai.net op 03-09-2009 21:48:17 ]
    wobbeldonderdag 3 september 2009 @ 21:53
    quote:
    Op donderdag 3 september 2009 21:42 schreef Tuvai.net het volgende:

    [..]

    Niet per definitie met PHP. Je zorgt gewoon dat je één tabel categorieën hebt met daarin een veld ParentID. ParentID verwijst weer naar het ID van een ander record in diezelfde tabel.

    Afhankelijk van (wat je presenteert in) je applicatie, zul je bijvoorbeeld wel een 'recursieve functie' moeten schrijven als je een pagina hebt waar je de hele 'boomstructuur' van categorieën wilt weergeven.
    En dat is juist het moeilijke....hoe kom ik erachter welke categorie waarin hoort en hoe kan ik dat makkelijk weergeven...Want ik zou wel ontiegelijk veel query's moeten uithalen om dat dan weer te geven...

    En ik kan nergens een goede tuto ofzo vinden...
    Xcaliburdonderdag 3 september 2009 @ 22:04
    zoek eens op nested set
    lastig om te begrijpen maar zoveel beter dan met een parent_id werken
    Tuvai.netdonderdag 3 september 2009 @ 22:10
    quote:
    Op donderdag 3 september 2009 21:53 schreef wobbel het volgende:
    En dat is juist het moeilijke....hoe kom ik erachter welke categorie waarin hoort
    Dat doe je dus met die ParentID kolom. Door rij ID 2 een ParentID van 1 te geven, wil dus zeggen dat rij ID 2 'onder' rij ID 1 ligt. Maak je nóg een record, maar dan met ParentID 2, dan leg je deze record 'onder' rij ID 2.
    quote:
    Op donderdag 3 september 2009 21:53 schreef wobbel het volgende:
    En dat is juist het moeilijke....hoe kom ik erachter welke categorie waarin hoort en hoe kan ik dat makkelijk weergeven...Want ik zou wel ontiegelijk veel query's moeten uithalen om dat dan weer te geven...
    Het klinkt moeilijker dan het lijkt. In feite neem je gewoon de volgende stappen:

    1) Maak een functie, die a.h.v. een ID, alle 'child' records ophaalt van dat ID. Oftewel, alle records ophalen waar de ParentID kolom gelijk staat aan de ID parameter die je mee stuurt naar je functie.
    2) Als je door die records heen gaat loopen ( while($bla = mysql_fetch_array($QueryVanStapEen) ), roep je per iteratie (oftewel voor elke rij) wéér je functie aan, maar dit keer met het ID van de record die je aan het loopen bent, als parameter voor de functie.

    Op dat moment is je functie dus 'recursief' (oftewel, blijft zichzelf aanroepen totdat je geen loopjes meer hebt).

    Er zijn meerdere methodes om dit te doen. Maar dit vind ik persoonlijk in ieder geval de makkelijkste. Je kunt altijd naderhand nog zelf naar een 'moeilijkere' op zoek gaan die beter is voor de performance van je applicatie (want ja, deze methode haalt veel queries in één keer op).
    Darkomendonderdag 3 september 2009 @ 23:28
    quote:
    Op donderdag 3 september 2009 19:16 schreef Tuvai.net het volgende:

    [..]
    [ code verwijderd ]

    Hoort er geen AND / OR te staan bij die sterretjes?
    Zal iets bij het copy/pasten fout gegaan zijn, er staat een or.
    Lightdonderdag 3 september 2009 @ 23:44
    quote:
    Op donderdag 3 september 2009 22:10 schreef Tuvai.net het volgende:

    [..]

    Dat doe je dus met die ParentID kolom. Door rij ID 2 een ParentID van 1 te geven, wil dus zeggen dat rij ID 2 'onder' rij ID 1 ligt. Maak je nóg een record, maar dan met ParentID 2, dan leg je deze record 'onder' rij ID 2.
    [..]

    Het klinkt moeilijker dan het lijkt. In feite neem je gewoon de volgende stappen:

    1) Maak een functie, die a.h.v. een ID, alle 'child' records ophaalt van dat ID. Oftewel, alle records ophalen waar de ParentID kolom gelijk staat aan de ID parameter die je mee stuurt naar je functie.
    2) Als je door die records heen gaat loopen ( while($bla = mysql_fetch_array($QueryVanStapEen) ), roep je per iteratie (oftewel voor elke rij) wéér je functie aan, maar dit keer met het ID van de record die je aan het loopen bent, als parameter voor de functie.

    Op dat moment is je functie dus 'recursief' (oftewel, blijft zichzelf aanroepen totdat je geen loopjes meer hebt).

    Er zijn meerdere methodes om dit te doen. Maar dit vind ik persoonlijk in ieder geval de makkelijkste. Je kunt altijd naderhand nog zelf naar een 'moeilijkere' op zoek gaan die beter is voor de performance van je applicatie (want ja, deze methode haalt veel queries in één keer op).
    Dat werkt, maar is niet efficient. Een goede regel is dat je geen queries in loopjes uitvoert. Er kan altijd een reden zijn om daarvan af te wijken, maar voor iets als een menu (dat op iedere pagina terugkomt) lijkt me dat geen goed uitgangspunt.
    Tuvai.netdonderdag 3 september 2009 @ 23:46
    quote:
    Op donderdag 3 september 2009 23:44 schreef Light het volgende:

    [..]

    Dat werkt, maar is niet efficient. Een goede regel is dat je geen queries in loopjes uitvoert. Er kan altijd een reden zijn om daarvan af te wijken, maar voor iets als een menu (dat op iedere pagina terugkomt) lijkt me dat geen goed uitgangspunt.
    Zie daarom dat laatste stukje tekst. Ik weet dat er duizend en één efficientere (doch vaak meer complexe) methodes zijn, maar lijkt me niet zo handig om daar een beginneling meteen mee te confronteren. Nogmaals, bovenstaand voorbeeld is kinderlijk eenvoudig en voor een leek heel snel onder de knie te krijgen.

    [ Bericht 1% gewijzigd door Tuvai.net op 03-09-2009 23:52:21 ]
    Lightvrijdag 4 september 2009 @ 00:19
    quote:
    Op donderdag 3 september 2009 23:46 schreef Tuvai.net het volgende:

    [..]

    Zie daarom dat laatste stukje tekst. :P Ik weet dat er duizend en één efficientere (doch vaak meer complexe) methodes zijn, maar lijkt me niet zo handig om daar een beginneling meteen mee te confronteren. Nogmaals, bovenstaand voorbeeld is kinderlijk eenvoudig en voor een leek heel snel onder de knie te krijgen.
    Dan zou ik het toch anders doen. Gewoon in 1 query alle menu-items ophalen en daar in 1 lus een tweedimensionale array van maken.

    1
    2
    3
    4
    5
    6
    <?php
    $result 
    mysql_query('SELECT * FROM menu');
    while(
    $row mysql_fetch_assoc($result)) {
      
    $menu[$row['parentId']] = $row;
    }
    ?>


    Dan heb je alleen nog een recursieve oplossing nodig voor het weergeven van het menu.
    Tuvai.netvrijdag 4 september 2009 @ 00:24
    quote:
    Op vrijdag 4 september 2009 00:19 schreef Light het volgende:

    [..]

    Dan zou ik het toch anders doen. Gewoon in 1 query alle menu-items ophalen en daar in 1 lus een tweedimensionale array van maken.
    [ code verwijderd ]

    Dan heb je alleen nog een recursieve oplossing nodig voor het weergeven van het menu.
    Zo do ik het dus ook vaak. Nog vaker heb ik dat je niet default al de hele boom wilt laten zien en een hele lap records / resultset naar je applicatie wilt trekken, maar alleen de hoofd nodes en bij het openklappen pas child nodes wilt zien. In zo'n geval wil ik ook nog wel eens AJAX gebruiken om het lijsje met onderliggende nodes op te halen. Verschilt natuurlijk per situatie.
    daReapervrijdag 4 september 2009 @ 14:55
    Ik heb een UTF-8 tabel, en als ik daarin wil zoeken met LIKE, dan stuit ik op een probleem:

    SELECT * FROM `tabel` WHERE titel LIKE '%belgie%';
    levert niet dezelfde resultaten op als
    SELECT * FROM `tabel` WHERE titel LIKE '%belgië%';

    Ik heb al geprobeerd om ervan te maken:
    SELECT * FROM `tabel` WHERE titel LIKE _utf8 '%belgië%' COLLATE utf8_general_ci;
    Maar het enige resultaat is dan dat hij alleen de titels vindt zonder ë (dus waar de titel "Belgie" is en niet "België".

    Wat kan ik hier aan doen?
    Chandlervrijdag 4 september 2009 @ 16:37
    Ik heb weer een breinbreaker

    Stel je voor ik heb een tabel voor het opslaan van hits, ips (het aantal unieke users), max online en de datum

    nu doe ik voor deze query een ON DUPLICATE KEY UPDATE met de velden hits en ips maar wil ik ook graag gebruiken om te checken of de waarde die ik wil updaten groter of kleiner is, als deze groter is dan door te voeren en indien deze kleiner is de huidige waarde te laten staan! (voor veld max = max aantal online tegelijk die dag)

    Weet iemand hoe ik dit kan realiseren?

    ik schreef en begreep het zelf dus hopelijk jullie ook

    [ Bericht 3% gewijzigd door Chandler op 04-09-2009 22:12:33 ]
    Sjoe538zaterdag 5 september 2009 @ 08:29
    Ik heb een vraagje omtrent gebruikers die je site bezoeken (let op geregistreerd).
    Wat ik aan het maken ben is een soort van hyves popup zoals je ziet wanneer iemand online komt. (als iemand een verwijzing naar zo'n dergelijk script heeft graag de URL)

    Mijn probleem zit in het herkennen dat de gebruiker die de site bezoekt niet de gebruiker is die momenteel op de site zit. Zo heb ik niks aan de standaard PHP variablen als een IP uitlezen want ik kan deze niet vergelijken omdat je altijd de IP terug krijgt van de persoon die nu op de site zit.

    Het loggen van een persoon in de database met een datum/tijd/logged/gebruiker bij elke page refresh uitlezen of er een nieuwe record is bijgekomen én dit niet de user is die momenteel op de site zit én er (vandaag, dit uur, afgelopen 10 minuten) nog geen melding is gegeven dat deze persoon online is gekomen lijkt me omslachtig.

    Heeft iemand hier een goed idee voor?
    new_guy1zaterdag 5 september 2009 @ 10:49
    Hoi

    Ben een redelijke beginner met PHP en MySQL maar nooit te beroerd om te leren natuurlijk Op het moment ben ik voor mijn stage een simpele CMDB aan het maken.

    De basic dingen zitten er al wel in, layout begint ook wat te worden. Ik wil echter iets extra's hebben, maar ik heb geen idee hoe, daarom zou ik jullie om wat tips willen vragen zodat ik weer verder kan gaan klooien.

    Stel;
    Ik heb monitor-01, monitor-02 enz. Wat ik nu wil maken is een soort van reserveringssysteem, dus monitor-01 is van 01-01-2009 tot 31-08-2009 gereserveerd voor de schoonmaker. Vanaf 01-09-2009 is deze gereserveerd voor de helpdesk. Dit is op zich niet zo moeilijk, veld begin datum, veld eind datum en een eigenaar.

    Ik wil echter ook de historie bij kunnen houden en daar loop ik vast...

    Hebben jullie tips en tricks over hoe ik de historie netjes kan bijhouden..?

    Alvast bedankt!
    Sjoe538zaterdag 5 september 2009 @ 11:13
    quote:
    Op zaterdag 5 september 2009 10:49 schreef new_guy1 het volgende:
    Hoi
    ...
    Wat voor historie zou je bij willen houden?
    GlowMousezaterdag 5 september 2009 @ 11:17
    quote:
    Op zaterdag 5 september 2009 08:29 schreef Sjoe538 het volgende:
    Het loggen van een persoon in de database met een datum/tijd/logged/gebruiker bij elke page refresh uitlezen of er een nieuwe record is bijgekomen én dit niet de user is die momenteel op de site zit én er (vandaag, dit uur, afgelopen 10 minuten) nog geen melding is gegeven dat deze persoon online is gekomen lijkt me omslachtig.

    Heeft iemand hier een goed idee voor?
    Je zult die informatie toch bij moeten houden. Je kunt het laatste bezoek bijhouden zodat je alleen maar nieuwe records op te vragen sinds het laatste bezoek.
    Xcaliburzaterdag 5 september 2009 @ 11:53
    quote:
    Op zaterdag 5 september 2009 08:29 schreef Sjoe538 het volgende:
    Ik heb een vraagje omtrent gebruikers die je site bezoeken (let op geregistreerd).
    Wat ik aan het maken ben is een soort van hyves popup zoals je ziet wanneer iemand online komt. (als iemand een verwijzing naar zo'n dergelijk script heeft graag de URL)

    Mijn probleem zit in het herkennen dat de gebruiker die de site bezoekt niet de gebruiker is die momenteel op de site zit. Zo heb ik niks aan de standaard PHP variablen als een IP uitlezen want ik kan deze niet vergelijken omdat je altijd de IP terug krijgt van de persoon die nu op de site zit.

    Het loggen van een persoon in de database met een datum/tijd/logged/gebruiker bij elke page refresh uitlezen of er een nieuwe record is bijgekomen én dit niet de user is die momenteel op de site zit én er (vandaag, dit uur, afgelopen 10 minuten) nog geen melding is gegeven dat deze persoon online is gekomen lijkt me omslachtig.

    Heeft iemand hier een goed idee voor?
    Ik zou beginnen met je sessies in de database op te slaan, dan ben je al een heel eind met bezoekers identificeren
    Sjoe538zaterdag 5 september 2009 @ 12:17
    quote:
    Op zaterdag 5 september 2009 11:53 schreef Xcalibur het volgende:

    [..]

    Ik zou beginnen met je sessies in de database op te slaan, dan ben je al een heel eind met bezoekers identificeren
    Idd zo ver was ik al, alleen hoopte ik dat er een makkelijkere manier was, aangezien PHP server side werkt, ik hoopte dat het mogelijk moest zijn om alle sessies uit te lezen die momenteel open staan.
    Xcaliburzaterdag 5 september 2009 @ 12:40
    Als je de sessies in je database opslaat, kan je toch gewoon die tabel uitlezen?
    Dat is een beetje het punt van die dingen in je database opslaan zeg maar
    Darkomenzaterdag 5 september 2009 @ 13:04
    quote:
    Op donderdag 3 september 2009 18:57 schreef Darkomen het volgende:
    Oke, ook ik zit met een mysql datum probleempje.

    Ik probeer te checken of er al een afspraak is op een bepaalde tijdstip op een dag.
    Na diverse opties geprobeerd te hebben dacht ik een werkende te hebben, maar na 2 weken niks gedaan te hebben (cursus) werkt de check ineens niet meer?

    $sql = "SELECT aid, begin_stamp, eind_stamp FROM agenda WHERE $aid (begin_stamp BETWEEN $beginDag AND $eindDag) AND ( (begin_stamp BETWEEN $beginStamp AND $eindStamp) OR (eind_stamp BETWEEN $beginStamp AND $eindStamp) ) ORDER BY begin_stamp";

    Ik begin door alleen de dag te selecteren, '(begin_stamp BETWEEN $beginDag AND $eindDag) '

    en daarna te controleren of er een afspraak is.

    Die levert bijvoorbeeld zo'n query op.
    Afspraak Begin Dag: 03-09-2009, 00:00:00 1251928800
    Afspraak Eind Dag: 04-09-2009, 00:00:00 1252015200
    Nieuwe Afspraak Begin Stamp: 03-09-2009, 09:55:00 1251964500
    Nieuwe Afspraak Eind Stamp: 03-09-2009, 10:10:00 1251965400

    [SELECT aid, begin_stamp, eind_stamp FROM agenda WHERE aid<>18 AND (begin_stamp BETWEEN 1251928800 AND 1252015200) AND ( (begin_stamp BETWEEN 1251964500 AND 1251965400) OR (eind_stamp BETWEEN 1251964500 AND 1251965400) ) ORDER BY begin_stamp]

    Deze check komt ook bij een update, mocht de tijd zijn aangepast.
    Maar dan alleen worde aid toegevoegd.
    Hadden jullie nog een idee, volgens mij is het niet zo lang geleden langsgekomen in de topics, alleen heb ik het toen niet gevolgd

    Edit: al lijkt hij nu wel te werken, ik ga straks maar eens goed testen

    [ Bericht 4% gewijzigd door Darkomen op 05-09-2009 13:41:27 ]
    Tuvai.netzaterdag 5 september 2009 @ 14:46
    Ik heb een vreemd probleem, alleen geen idee of het per sé iets met PHP is.

    Ik heb een PHP applicatie met een MySQL database er achter. De hele applicatie gaat multilingual worden dus alles zal opgeslagen en gepresenteerd worden middels de UTF-8 character set.

    Daarvoor doe ik het volgende:
    - Alle tabellen en kolommen in de MySQL database hebben de utf8_general_ci collatie.
    - Met PHP geef ik de HTTP header mee: Content-Type: text/html; charset=charset=UTF-8
    - In de HTML die gegenereerd wordt, doe ik zowel <?xml version="1.0" encoding="UTF-8"?> als <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

    Zou afdoende moeten zijn. Ik heb nu echter een regeltje tekst dat ik in de database op sla, en op een pagina in mijn applicatie weer wil laten zien. Het betreft het volgende regeltje:
    Dit is een test áéí

    Wanneer ik in PHPMyAdmin ga kijken, staat er inderdaad Dit is een test áéí waar dit regeltje tekst is opgeslagen. Wanneer ik echter na de pagina in mijn applicatie ga kijken waar dit regeltje tekst opgehaald wordt en weergegeven wordt, staat er, geheel willekeurig, rotzooi.

    In Mozilla staat er soms de onbekende karakter blokjes 'met FFFD' er in, en soms wordt het tekstje wél goed weergegeven. In Internet Explorer hetzelfde: soms wél de goede tekst, en soms vierkantjes die duiden op onbekende karakters.

    Waar zit het probleem?

    EDIT: Doh. Ik gebruikte m'n "SET NAMES 'utf8'" query alleen bij m'n INSERT / UPDATE queries in plaats van alle (dus ook SELECT).

    [ Bericht 4% gewijzigd door Tuvai.net op 05-09-2009 15:46:08 ]
    Swetseneggerzondag 6 september 2009 @ 20:21
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <status result="ok">
       <ewallet>
          <id>45177</id>
          <status>completed</status>
          <created>20090906135439</created>
          <modified/>
       </ewallet>
       <customer>
          <currency>EUR</currency>
          <amount>1595</amount>
          <exchange_rate>1</exchange_rate>
          <firstname>Naam</firstname>
          <lastname>Achternaam</lastname>
          <city>Woonplaats</city>
          <state/>
          <country>NL</country>
          <countryname>Netherlands</countryname>
       </customer>
       <transaction>
          <id>6</id>
          <currency>EUR</currency>
          <amount>1595</amount>
          <description>Webshop order</description>
          <var1/>
          <var2/>
          <var3/>
          <items/>
       </transaction>
    </status>


    Ik heb de waarde nodig tussen <id> en </id> in het <transaction> element.

    1preg_match('/\<id\>(.*)\<\/id\>/U', $reply, $id);


    $id bevat alleen de id uit het het <ewallet> element. Als ik 'm ungreedy maak krijg ik een lege array. Moet ik nu dit:

    1
    2
    preg_match('/\<transaction\>(.*)\<\/transaction\>/U', $reply, $transaction);
    preg_match('/\<id\>(.*)\<\/id\>/U', $transaction[1], $id);


    of kan dat makkelijker?
    Lightzondag 6 september 2009 @ 21:59
    Kun je niets met de xml-functies in php(5)?

    En anders is het ook met 1 preg_match() op te lossen:
    1
    2
    3
    <?php
    preg_match
    ('/\<transaction\>.*\<id\>(.*)\<\/id\>.*\<\/transaction\>/U'$reply$id);
    ?>
    Swetseneggerzondag 6 september 2009 @ 22:31
    xml functies ga ik even naar kijken.
    Iemand trouwens ervaring met multisafepay? In de documentatie staat dat je in een bepaald element van de transaction request (XML) een uitgebreide beschrijving mee kan geven van de bestelling. Er staat letterlijk "Uitgebreide beschrijving (HTML)". Maar zodra ik HTML embed in het xml element krijg ik de melding terug dat het een fout XML bericht is.
    Tuvai.netzondag 6 september 2009 @ 23:11
    quote:
    Op zondag 6 september 2009 22:31 schreef Swetsenegger het volgende:
    xml functies ga ik even naar kijken.
    Iemand trouwens ervaring met multisafepay? In de documentatie staat dat je in een bepaald element van de transaction request (XML) een uitgebreide beschrijving mee kan geven van de bestelling. Er staat letterlijk "Uitgebreide beschrijving (HTML)". Maar zodra ik HTML embed in het xml element krijg ik de melding terug dat het een fout XML bericht is.
    Doe je die HTML eerst replacen? Gooi eens een htmlentities / htmlspecialchars over je HTML data die je in je XML node stopt heen.

    Ik ga binnenkort ook eens met multisafepay klooien, ziet er wel veelbelovend uit en ik heb alweer een paar webshops op de planning die al het betaal-gemeuks willen hebben.
    Swetseneggerzondag 6 september 2009 @ 23:18
    quote:
    Op zondag 6 september 2009 23:11 schreef Tuvai.net het volgende:

    [..]

    Doe je die HTML eerst replacen? Gooi eens een htmlentities / htmlspecialchars over je HTML data die je in je XML node stopt heen. :)
    Nou staan geen rare dingen in, gewoon een tabel met wat data.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    <?xml version="1.0" encoding="UTF-8"?>
    <redirecttransaction ua="custom-1.2">
       <merchant>
          <account>1000000</account>
          <site_id>1000</site_id>
          <site_secure_code>100000</site_secure_code>
          <notification_url>http://www.domein.nl:80//notificatie.php?type=initial</notification_url>
       </merchant>
       <customer>
          <locale>nl_NL</locale>
          <ipaddress>255.255.255.255</ipaddress>
          <forwardedip></forwardedip>
          <firstname>Naam</firstname>
          <lastname>Naam</lastname>
          <address1>Adres</address1>
          <address2></address2>
          <housenumber>10</housenumber>
          <zipcode>1000 AA</zipcode>
          <city>Stad</city>
          <state></state>
          <country>NL</country>
          <phone></phone>
          <email>mail@domain.com</email>
       </customer>
       <transaction>
          <id>36</id>
          <currency>EUR</currency>
          <amount>1999</amount>
          <description>Bestelling 36 bij Webshop. U kunt de status van uw bestelling bekijken als u inlogged op onze website.</description>
          <var1></var1>
          <var2></var2>
          <var3></var3>
          <items>
             <table style="border-collapse:collapse;width:100%;text-align:center">
                <tr style="color:black;font-size:9pt;">
                   <td style="border-style:solid;border-width:1px 0 1px 1px;border-color:rgb(160,166,176)">Aantal</td>
                   <td style="border-style:solid;border-width:1px 0;border-color:rgb(160,166,176)">Artikelcode</td>
                   <td style="border-style:solid;border-width:1px 0;border-color:rgb(160,166,176)">Artikel</td>
                   <td style="border-style:solid;border-width:1px 0;border-color:rgb(160,166,176)">Kleur</td>
                   <td style="border-style:solid;border-width:1px 0;border-color:rgb(160,166,176)">Maat</td>
                   <td style="border-style:solid;border-width:1px 0;border-color:rgb(160,166,176)">Prijs</td>
                </tr>
                <tr style="background-color:white;font-size:11pt;">
                   <td style="width:45px;">1</td>
                   <td style="width:75px;">001</td>
                   <td style="width:250px;">Mexx - Zomershirt</td>
                   <td style="margin:5px;width:10px;background-color:#FF0011"></td>
                   <td style="width:250px;">Small</td>
                   <td>19,99</td>
                </tr>
             </table>
             <br />
             <table style="width:100%;border:solid 1px rgb(160,166,176);text-align:left;">
                <tr>
                   <td style="color:black;font-size:11pt;">Prijs:</td>
                   <td style="width:600px;text-align:right;font-size:14pt;color:black;">€ 19,99</td>
                </tr>
             </table>
          </items>
          <manual>false</manual>
          <gateway></gateway>
          <daysactive>2</daysactive>
       </transaction>
       <signature>d786a106edf874df4ed6e8cc612e9650</signature>
    </redirecttransaction>
    Tuvai.netzondag 6 september 2009 @ 23:21
    quote:
    Op zondag 6 september 2009 23:18 schreef Swetsenegger het volgende:

    [..]

    Nou staan geen rare dingen in, gewoon een tabel met wat data.
    [ code verwijderd ]
    Hoeft ook niet. Ligt er maar net aan hoe Multisafepay met de data in die node om gaat. Ik kan me herinneren dat ik wel eens RSS feeds heb moeten maken, en de HTML die in de <description> node stond moest parsen als reeds vervangen HTML. Waarschijnlijk wordt je <table> tag nu bijvoorbeeld als een daadwerkelijke node van het XML bestand geïnterpreteerd.
    Swetseneggermaandag 7 september 2009 @ 08:57
    quote:
    Op zondag 6 september 2009 23:21 schreef Tuvai.net het volgende:

    [..]

    Hoeft ook niet. Ligt er maar net aan hoe Multisafepay met de data in die node om gaat. Ik kan me herinneren dat ik wel eens RSS feeds heb moeten maken, en de HTML die in de <description> node stond moest parsen als reeds vervangen HTML. Waarschijnlijk wordt je <table> tag nu bijvoorbeeld als een daadwerkelijke node van het XML bestand geïnterpreteerd.
    Ok.... wat doe ik daaraan? -edit- ow wacht html entities en specialchars natuurlijk. Dat is het proberen waard
    Tuvai.netmaandag 7 september 2009 @ 09:09
    quote:
    Op maandag 7 september 2009 08:57 schreef Swetsenegger het volgende:
    Ok.... wat doe ik daaraan? -edit- ow wacht html entities en specialchars natuurlijk. Dat is het proberen waard
    quote:
    Op zondag 6 september 2009 23:11 schreef Tuvai.net het volgende:
    Doe je die HTML eerst replacen? Gooi eens een htmlentities / htmlspecialchars over je HTML data die je in je XML node stopt heen.
    Swetseneggermaandag 7 september 2009 @ 09:16
    Ik ga net naar de livechat van multisafe met de vraag of ik de html moet replacen. Krijg ik het verzoek om te bellen. Blijkbaar is de vraag te lastig
    Chandlermaandag 7 september 2009 @ 10:18
    quote:
    Op vrijdag 4 september 2009 16:37 schreef Chandler het volgende:
    Ik heb weer een breinbreaker

    Stel je voor ik heb een tabel voor het opslaan van hits, ips (het aantal unieke users), max online en de datum

    nu doe ik voor deze query een ON DUPLICATE KEY UPDATE met de velden hits en ips maar wil ik ook graag gebruiken om te checken of de waarde die ik wil updaten groter of kleiner is, als deze groter is dan door te voeren en indien deze kleiner is de huidige waarde te laten staan! (voor veld max = max aantal online tegelijk die dag)

    Weet iemand hoe ik dit kan realiseren?

    ik schreef en begreep het zelf dus hopelijk jullie ook
    Niemand?
    Pizzahutmaandag 7 september 2009 @ 15:37
    Ik werk nu steeds meer met classes en zie ook steeds meer mogelijkheden.

    Wat ik ook veel zie is 2 keer een dubbele punt
    1
    2
    3
    <?php
    $item 
    Page::item(2);
    ?>


    is dit hetzelfde als een -> ?

    1
    2
    3
    <?php
    $item 
    Page->item(2);
    ?>
    GlowMousemaandag 7 september 2009 @ 16:02
    Nee, is wat anders. Zie http://us2.php.net/manual(...)ayim-nekudotayim.php en http://us2.php.net/manual/en/language.oop5.static.php
    Swetseneggermaandag 7 september 2009 @ 21:37
    Waarom zijn al die betaalsystemen kut gedocumenteerd?
    Lightmaandag 7 september 2009 @ 23:18
    quote:
    Op maandag 7 september 2009 21:37 schreef Swetsenegger het volgende:
    Waarom zijn al die betaalsystemen kut gedocumenteerd?
    Omdat goed documenteren niet in het eisenpakket was opgenomen.
    Swetseneggerdinsdag 8 september 2009 @ 12:19
    quote:
    Op zondag 6 september 2009 21:59 schreef Light het volgende:
    Kun je niets met de xml-functies in php(5)?

    En anders is het ook met 1 preg_match() op te lossen:
    [ code verwijderd ]
    Ik snap er geen kut meer van. Inhoud van $reply:
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <status result="ok">
    <ewallet>
       <id>45491</id>
       <status>completed</status>
       <created>20090908123603</created>
       <modified/>
    </ewallet>
    <customer>
       <currency>EUR</currency>
       <amount>1595</amount>
       <exchange_rate>1</exchange_rate>
       <firstname>Naam</firstname>
       <lastname>Naam</lastname>
       <city>Plaats</city>
       <state/>
       <country>NL</country>
       <countryname>Netherlands</countryname>
    </customer>
    <transaction>
       <id>90</id>
       <currency>EUR</currency>
       <amount>1595</amount>
       <description>Bestelling.</description>
       <var1/>
       <var2/>
       <var3/>
       <items>&lt;br /&gt;&lt;table style="border-collapse:collapse;width:100%;text-align:center"&gt;&lt;tr style="color:black;font-size:9pt;"&gt;&lt;td style="border-style:solid;border-width:1px 0 1px 1px;border-color:rgb(160,166,176)"&gt;Aantal&lt;/td&gt;&lt;td style="border-style:solid;border-width:1px 0;border-color:rgb(160,166,176)"&gt;Artikelcode&lt;/td&gt;&lt;td style="border-style:solid;border-width:1px 0;border-color:rgb(160,166,176)"&gt;Artikel&lt;/td&gt;&lt;td style="border-style:solid;border-width:1px 0;border-color:rgb(160,166,176)"&gt;Kleur&lt;/td&gt;&lt;td style="border-style:solid;border-width:1px 0;border-color:rgb(160,166,176)"&gt;Maat&lt;/td&gt;&lt;td style="border-style:solid;border-width:1px 0;border-color:rgb(160,166,176)"&gt;Prijs&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color:white;font-size:11pt;"&gt;
             &lt;td style="width:45px;"&gt;1&lt;/td&gt;
             &lt;td style="width:75px;"&gt;t-001&lt;/td&gt;
             &lt;td style="width:250px;"&gt;Mexx - Top&lt;/td&gt;
             &lt;td style="margin:5px;width:10px;background-color:#000000"&gt;&lt;/td&gt;
             &lt;td style="width:250px;"&gt;large&lt;/td&gt;
             &lt;td&gt;EUR. 15,95&lt;/td&gt;
             &lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;table style="width:100%;border:solid 1px rgb(160,166,176);text-align:left;"&gt;&lt;tr&gt;&lt;td style="color:black;font-size:11pt;"&gt;Prijs:&lt;/td&gt;&lt;td style="width:600px;text-align:right;font-size:14pt;color:black;"&gt;EUR. 15,95&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
        </items>
    </transaction>
    </status>


    1
    2
    3
    4
    5
    <?php
    $id 
    = array();
    preg_match('/\<transaction\>.*\<id\>(.*)\<\/id\>.*\<\/transaction\>/U'$reply$id);
    print_r($id);
    ?>


    1array()


    Is de inhoud van $reply DIT (dus zonder de html in <items>):
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <status result="ok">
    <ewallet>
       <id>45438</id>
       <status>completed</status>
       <created>20090908101011</created>
       <modified/>
    </ewallet>
    <customer>
       <currency>EUR</currency>
       <amount>1999</amount>
       <exchange_rate>1</exchange_rate>
       <firstname>Naam</firstname>
       <lastname>Naam</lastname>
       <city>plaats</city>
       <state/>
       <country>NL</country>
       <countryname>Netherlands</countryname>
    </customer>
    <transaction>
       <id>82</id>
       <currency>EUR</currency>
       <amount>1999</amount>
       <description>Bestelling .</description>
       <var1/>
       <var2/>
       <var3/>
       <items/>
    </transaction>
    </status>


    1
    2
    3
    4
    5
    Array
    (
        [0] => <transaction><id>82</id><currency>EUR</currency><amount>1999</amount><description>Bestelling 82 bij Fashion in the City. U kunt de status van uw bestelling bekijken als u inlogged op onze website.</description><var1/><var2/><var3/><items/></transaction>
        [1] => 82
    )




    [ Bericht 20% gewijzigd door Swetsenegger op 08-09-2009 13:22:16 ]
    ReWoutdinsdag 8 september 2009 @ 13:49
    Even klein vraagje... (1. waar is 't html topic?)

    2. ik heb een tabel met verschillende kolomen. In de laatste kolom staat een select box... Nu wil ik niet steeds op de select box klikken om hem te activeren zeg maar... maar wil ik gewoon ergens op de rij kunnen klikken...

    dus wat moet ik invullen bij <tr onclick="">?
    Swetseneggerdinsdag 8 september 2009 @ 14:36
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <head><script type="text/javascript">
    function toggle(obj) { 
       var el = document.getElementById(obj); 
       el.checked= (el.checked != true ? true : false );
    }
    </script>
    </head> 
    <body>
    <table>
    <tr onclick="toggle('checkbox');"><td>------------------langerij--------------</td><td><input type="checkbox" id="checkbox" /></td></tr>
    </table>
    </body>
    Darkomendinsdag 8 september 2009 @ 15:23
    javascript!=php/mysql.....
    En voor de rest, google!
    ralfiedinsdag 8 september 2009 @ 15:31
    1el.checked= (el.checked != true ? true : false );

    Waarom niet gewoon
    1el.checked = !el.checked;

    ?
    Swetseneggerdinsdag 8 september 2009 @ 16:58
    quote:
    Op dinsdag 8 september 2009 15:31 schreef ralfie het volgende:

    [ code verwijderd ]

    Waarom niet gewoon
    [ code verwijderd ]

    ?
    hoe wil je dan toggelen?
    Swetseneggerdinsdag 8 september 2009 @ 16:59
    quote:
    Op dinsdag 8 september 2009 12:19 schreef Swetsenegger het volgende:

    [..]

    Ik snap er geen kut meer van. Inhoud van $reply:
    [ code verwijderd ]


    [ code verwijderd ]


    [ code verwijderd ]

    Is de inhoud van $reply DIT (dus zonder de html in <items>):
    [ code verwijderd ]


    [ code verwijderd ]

    Iemand een idee waarom de pragmatch over zijn nek gaat in de eerste situatie?
    ralfiewoensdag 9 september 2009 @ 10:21
    quote:
    Op dinsdag 8 september 2009 16:58 schreef Swetsenegger het volgende:

    [..]

    hoe wil je dan toggelen?
    beide stukjes code doen precies hetzelfde
    Swetseneggerwoensdag 9 september 2009 @ 10:24
    quote:
    Op woensdag 9 september 2009 10:21 schreef ralfie het volgende:

    [..]

    beide stukjes code doen precies hetzelfde
    Ja later besefte ik me dat dat met een true/false setting natuurlijk kan.
    slacker_nldonderdag 10 september 2009 @ 15:39
    quote:
    Op dinsdag 8 september 2009 16:59 schreef Swetsenegger het volgende:

    [..]

    Iemand een idee waarom de pragmatch over zijn nek gaat in de eerste situatie?
    1
    2
    3
    $match;
    preg_match('/\<transaction\>.*\<id\>(.*)\<\/id\>.*\<\/transaction\>/Us', $reply, $match);
    print_r($match[1]);
    urselvrijdag 11 september 2009 @ 09:13
    Was dit topic kwijt.
    ReWoutvrijdag 11 september 2009 @ 10:55
    ik probeer een gedeelte van een string te filteren
    1ereg_replace("[a-zA-Z]", "", "abcdefg hijk 93430-1")


    Ik wil graag dat dit de output word: "3430"

    Nu vervangt hij mooi alle lettertjes alleen wil ik ook nog dat hij de -1 erachter matched... dit doet 't (\-[0-9])$
    Me totale regex is dan [a-zA-Z](\-[0-9])$.... Echter matched die dus nu niet vanwege de "93430". Hoe vertel ik me regex dat hij die niet moet vervangen ofzo?
    slacker_nlvrijdag 11 september 2009 @ 11:10
    Doe gewoon 't gewoon zo:
    1
    2
    3
    4
    5
    <?php
    $match
    preg_match
    ('/(\d+)-\d/'$string$match);
    print_r($match);
    ?>
    ReWoutvrijdag 11 september 2009 @ 12:13
    quote:
    Op vrijdag 11 september 2009 11:10 schreef slacker_nl het volgende:
    Doe gewoon 't gewoon zo:
    [ code verwijderd ]
    Tjah kan ook moet alleen dan even preg_match gaan programmeren aangezien ik niet php gebruik maar een andere taal. Iig bedankt. Heb het nu iig tijdelijk opgelost met 2x ereg_replace
    slacker_nlvrijdag 11 september 2009 @ 12:29
    Wat doe je dan in het php topic??
    new_guy1zondag 13 september 2009 @ 16:29
    quote:
    Op zaterdag 5 september 2009 11:13 schreef Sjoe538 het volgende:

    [..]

    Wat voor historie zou je bij willen houden?
    Van die reseveringen.
    Elke reservering apart opslaan als een record en die ophalen wanneer nodig, denk dat dat het beste is...
    urselmaandag 14 september 2009 @ 11:53
    Iemand misschien ergens een goede documentatie over DOMDocument? ;(
    Van de php website wordt momenteel nog niet al te veel wijs.. :')

    Wat wil ik, een XML inladen en middels een functie een array ergens in het midden van de XML toevoegen.

    Alleen eindig ik telkens in
    quote:
    Fatal error: Uncaught exception 'DOMException' with message 'Wrong Document Error'
    De functie

    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
    <?php
        
    public function addElement($p_aElement)
        {
            if(
    $p_aElement['appendTo'] != FALSE)
            {
                
    $aAppendTo $this->_XML->getElementsByTagName($p_aElement['appendTo']);
            }

            
    // Remove the first element ([appendTo])of the array.
            
    array_shift($p_aElement);
            
            
    $objTestElement $this->createElement('tests');

            foreach(
    $p_aElement as $sKey => $sValue)
            {
                
    $objElement $this->createElement($sKey);
                
    $objElement->appendChild($this->createTextNode($sValue));
                
    $objTestElement->appendChild($objElement);
            }
            if(isset(
    $aAppendTo))
            {
                foreach(
    $aAppendTo as $objAppendTo)
                {
                    
    $objAppendTo->appendChild($objTestElement);
                }
            }
            else
            {
                
    // mag aan de root gezet worden
            
    }
            
    $this->_XML->saveXML();

            return 
    TRUE;
        }
    ?>
    cablegunmasterdinsdag 15 september 2009 @ 14:56
    hoe heette de functie van als insert al is gedaan update? ?
    daar kwam iemand met een hele handige functie mee aan! ben hem ff kwijt
    GlowMousedinsdag 15 september 2009 @ 14:59
    http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html
    Darkomendinsdag 15 september 2009 @ 14:59
    Edit: te laat.
    cablegunmasterdinsdag 15 september 2009 @ 15:00
    quote:
    hartelijk bedankt =)
    urseldinsdag 15 september 2009 @ 15:12
    Iemand nog antwoord op mijn vraag..
    ralfiewoensdag 16 september 2009 @ 10:14
    quote:
    Op dinsdag 15 september 2009 15:12 schreef ursel het volgende:
    Iemand nog antwoord op mijn vraag..
    waar komt de fout naar voren? Ik heb 0.0 ervaring met xml en php, maar ik zou zeggen dat je xml file niet valide is ofzo.
    daReaperwoensdag 16 september 2009 @ 10:49
    Ik kom er even niet uit met een full text search.

    Ik heb een tabel met de volgende kolommen:

    id
    titel
    omschrijving
    status
    datum

    Als ik nu de query "SELECT id FROM projecten WHERE titel LIKE '%pps%' OR omschrijving LIKE '%pps%'; uitvoer, krijg ik netjes 1 resultaat terug.

    Ik heb een fulltext index op de kolommen "titel" en "omschrijving" die de titel "titel" draagt.

    Als ik echter de query "SELECT id FROM projecten WHERE MATCH (titel, omschrijving) AGAINST ('pps'); uitvoer, krijg ik géén resultaten terug (maar ook geen foutmelding).

    Wat kan hier aan de hand zijn?
    GlowMousewoensdag 16 september 2009 @ 10:50
    http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html

    Maar ik gok zomaar dat pps geen los woord is.
    daReaperwoensdag 16 september 2009 @ 10:52
    quote:
    Op woensdag 16 september 2009 10:50 schreef GlowMouse het volgende:
    http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html

    Maar ik gok zomaar dat pps geen los woord is.
    Ik heb al in de manual gekeken, maar kan niet echt een antwoord vinden. Het resultaat van de eerste query is een project met de titel: "Een typologie van PPS in het LNV domein". Het is dus wel een los woord, maar de fulltext search vindt 'm niet
    GlowMousewoensdag 16 september 2009 @ 10:55
    Hoeveel records heb je?
    daReaperwoensdag 16 september 2009 @ 10:56
    quote:
    Op woensdag 16 september 2009 10:55 schreef GlowMouse het volgende:
    Hoeveel records heb je?
    Deze tabel bestaat uit 73 rijen
    GlowMousewoensdag 16 september 2009 @ 10:57
    http://dev.mysql.com/doc/(...)atural-language.html

    "Some words are ignored in full-text searches"
    daReaperwoensdag 16 september 2009 @ 10:59
    quote:
    Op woensdag 16 september 2009 10:57 schreef GlowMouse het volgende:
    http://dev.mysql.com/doc/(...)atural-language.html

    "Some words are ignored in full-text searches"
    ah, dat verklaart een hoop weet je misschien hoe ik dat aan kan passen, als ik niet bij de config van MySQL kan?

    [edit]Ik zie na wat gegoogle dat dit dus niet kan... Behoorlijk waardeloos dus

    [ Bericht 9% gewijzigd door daReaper op 16-09-2009 11:32:58 ]
    ReWoutwoensdag 16 september 2009 @ 11:11
    quote:
    Op vrijdag 11 september 2009 12:29 schreef slacker_nl het volgende:
    Wat doe je dan in het php topic??
    Omdat 't een regex vraag was
    daReaperwoensdag 16 september 2009 @ 12:38
    quote:
    Op woensdag 16 september 2009 10:59 schreef daReaper het volgende:

    [..]

    ah, dat verklaart een hoop weet je misschien hoe ik dat aan kan passen, als ik niet bij de config van MySQL kan?

    [edit]Ik zie na wat gegoogle dat dit dus niet kan... Behoorlijk waardeloos dus
    Zo maar opgelost:

    SELECT id FROM projecten WHERE titel REGEXP '(^|[[:space:]])pps([[:space:]]|$)' OR omschrijving REGEXP '(^|[[:space:]])pps([[:space:]]|$)'

    werkt prima
    GlowMousewoensdag 16 september 2009 @ 12:40
    titel LIKE '% pps %' werkte niet? De performance penalty van dit soort constructies wil je niet weten
    daReaperwoensdag 16 september 2009 @ 12:52
    quote:
    Op woensdag 16 september 2009 12:40 schreef GlowMouse het volgende:
    titel LIKE '% pps %' werkte niet? De performance penalty van dit soort constructies wil je niet weten
    Dat vermoedde ik inderdaad, maar het is niet een heel erg grote database, dus ik denk niet dat dit problemen op gaat leveren.


    LIKE '% pps %' vindt geen resultaten waar de zin begint met "pps" of ermee eindigt, bijvoorbeeld.
    daReaperwoensdag 16 september 2009 @ 17:53


    [ Bericht 41% gewijzigd door daReaper op 16-09-2009 22:56:25 ]
    BaggerUserwoensdag 16 september 2009 @ 20:55
    Iemand enig idee hoe je met xPath de meta gegevens van een site kan opvragen? kom er maar niet uit. Of zijn de meta gegevens niet mogelijk? (lijkt me trouwens erg gek..)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
            $this
    ->html file_get_contents($this->url); 
            
    $this->dom = new DomDocument(); 
            @
    $this->dom->loadHTML($this->html); 
            
    $this->xpath = new DomXpath($this->dom);


            
    /*Deze functie haalt de meta van een pagina op*/
            
    $this->metaKeywords $this->xpath->query('/html/head/meta');      
            return 
    $this->metaKeywords->item(0)->nodeValue;    
    ?>
    cablegunmasterdonderdag 17 september 2009 @ 11:41
    Even een vraagje stel ik heb een tabel met

    gebruikerid en pakketid.

    nu kan een gebruiker meerdere pakketten toevoegen maar wou ik voorkomen dat hij dezelfde entrys toevoegd.

    gekoppelde sleutel alleen ik heb geen idee hoe ik dit moet uitvoeren in phpmyadmin. want unieke pakketid betekent dat klant 2 niet hetzelfde pakket kan kiezen.

    iemand die een idee heeft ?

    kort samengevat : dubbele primaire sleutel in phpmyadmin.
    GlowMousedonderdag 17 september 2009 @ 11:44
    een primary key of unique toevoegen op (gebruikerid,pakketid). Dat kan gewoon onder Structure, Details.
    cablegunmasterdonderdag 17 september 2009 @ 11:48
    quote:
    Op donderdag 17 september 2009 11:44 schreef GlowMouse het volgende:
    een primary key of unique toevoegen op (gebruikerid,pakketid). Dat kan gewoon onder Structure, Details.
    Tof dit werkte
    marqdonderdag 17 september 2009 @ 14:22
    quote:
    Op woensdag 16 september 2009 10:49 schreef daReaper het volgende:
    Ik kom er even niet uit met een full text search.

    Ik heb een tabel met de volgende kolommen:

    id
    titel
    omschrijving
    status
    datum

    Als ik nu de query "SELECT id FROM projecten WHERE titel LIKE '%pps%' OR omschrijving LIKE '%pps%'; uitvoer, krijg ik netjes 1 resultaat terug.

    Ik heb een fulltext index op de kolommen "titel" en "omschrijving" die de titel "titel" draagt.

    Als ik echter de query "SELECT id FROM projecten WHERE MATCH (titel, omschrijving) AGAINST ('pps'); uitvoer, krijg ik géén resultaten terug (maar ook geen foutmelding).

    Wat kan hier aan de hand zijn?
    MyISAM kan niet zoeken naar substrings < 4 karakters. Simpel. Met de stopwoorden die er in zitten heeft het niks te maken, daar komt pps niet in voor.
    whoopsdonderdag 17 september 2009 @ 19:02
    Geen PHP maar een wel MySQL vraag.

    Ik heb de volgende tabel:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    id | soort | datestart  
    -----------------------
     1 |     1 | 1251909627 
     2 |     2 | 1251909727 
     3 |     1 | 1251909827
     4 |     2 | 1251909927
     5 |     1 | 1251910027
     6 |     2 | 1252773627
     7 |     1 | 1252773627
     8 |     2 | 1252773627
     9 |     1 | 1253205628
    10 |     2 | 1253205628


    Nu wil ik per week de output tellen, dit kan via de volgende query:

    1
    2
    3
    4
    5
    6
    SELECT DISTINCT 
       from_unixtime(datestart,"%Y-%v") AS weekInYear,  
       count(*) as numberOfRegistrations 
       FROM Listitems 
       GROUP BY weekInYear 
       ORDER BY datestart


    Dan krijg ik het volgende als output:

    1
    2
    3
    4
    weekInYear | numberOfRegistrations
       2009-36 | 5
       2009-37 | 3
       2009-38 | 2


    So far so good. Maar wat ik eigenlijk wil, is de 'soort' erbij tellen, en dus dit als output krijgen:

    1
    2
    3
    4
    weekInYear | soort1 | soort2 | numberOfRegistrations
       2009-36 |      3 |      2 | 5
       2009-37 |      1 |      2 | 3
       2009-38 |      1 |      1 | 2


    Het aantal 'soorten' staat hierbij vast, dat zijn er 2. Het is dus geen probleem om in de query ergens harcoded 'where soort = 1 en/of where soort = 2' te hebben.

    Model en Data
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    CREATE TABLE `Listitems` (
      `id` int(11) NOT NULL auto_increment,
      `soort` int(11) NOT NULL,
      `dateStart` int(11) default NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

    INSERT INTO `Listitems` VALUES ('1', '1', '1251909627');
    INSERT INTO `Listitems` VALUES ('2', '2', '1251909727');
    INSERT INTO `Listitems` VALUES ('3', '1', '1251909827');
    INSERT INTO `Listitems` VALUES ('4', '2', '1251909927');
    INSERT INTO `Listitems` VALUES ('5', '1', '1251910027');
    INSERT INTO `Listitems` VALUES ('6', '2', '1252773627');
    INSERT INTO `Listitems` VALUES ('7', '1', '1252773627');
    INSERT INTO `Listitems` VALUES ('8', '2', '1252773627');
    INSERT INTO `Listitems` VALUES ('9', '1', '1253205628');
    INSERT INTO `Listitems` VALUES ('10', '2', '1253205628');
    GlowMousedonderdag 17 september 2009 @ 19:07
    Het makkelijkste en meest logische is om GROUP BY week,group te gebruiken en dan je applicatie de rest te laten doen.
    whoopsdonderdag 17 september 2009 @ 19:16
    quote:
    Op donderdag 17 september 2009 19:07 schreef GlowMouse het volgende:
    Het makkelijkste en meest logische is om GROUP BY week,group te gebruiken en dan je applicatie de rest te laten doen.

    Het kan zo simpel zijn! Thanks dude!

    1
    2
    3
    4
    5
    6
    7
     SELECT DISTINCT 
       from_unixtime(datestart,"%Y-%v") AS weekInYear,  
       soort,
       count(*) as numberOfRegistrations 
       FROM Listitems 
       GROUP BY weekInYear , soort
       ORDER BY datestart


    Bovenstaande query heeft dit als output:

    1
    2
    3
    4
    5
    6
    2009-36   1   3
    2009-36   2   2
    2009-37   2   2
    2009-37   1   1
    2009-38   1   1
    2009-38   2   1


    Hier kan ik wel weer verder mee!
    pc-fr34kvrijdag 18 september 2009 @ 13:43
    .

    Ik zit met een probleempje waar ik niet uit kom. Ik heb 2 arrays:

    Vandaag: Array ( [1] => 2 [2] => 1 [3] => 1 [4] => 1 [5] => 2 [6] => 10 [7] => 1 [999] => 1 )
    Gisteren: Array ( [1] => 5 [2] => 0 [6] => 3 )

    Hier is de key het ID van een linkpartner en de value is het aantal hits op die dag.

    Nu wil ik de som van vandaag en gisteren in 1 array. Hoe zorg ik dat overal waar de key gelijk is de 2 waardes bij elkaar opgeteld worden?

    Bvd
    daReapervrijdag 18 september 2009 @ 13:55
    quote:
    Op vrijdag 18 september 2009 13:43 schreef pc-fr34k het volgende:
    .

    Ik zit met een probleempje waar ik niet uit kom. Ik heb 2 arrays:

    Vandaag: Array ( [1] => 2 [2] => 1 [3] => 1 [4] => 1 [5] => 2 [6] => 10 [7] => 1 [999] => 1 )
    Gisteren: Array ( [1] => 5 [2] => 0 [6] => 3 )

    Hier is de key het ID van een linkpartner en de value is het aantal hits op die dag.

    Nu wil ik de som van vandaag en gisteren in 1 array. Hoe zorg ik dat overal waar de key gelijk is de 2 waardes bij elkaar opgeteld worden?

    Bvd
    1
    2
    3
    4
    $totaal = array();
    foreach(array_keys($array1) as $key) {
      $totaal[$key] = $array1[$key] + $array2[$key];
    }


    Niet getest, laat maar weten of het werkt.
    Lightvrijdag 18 september 2009 @ 14:04
    quote:
    Op vrijdag 18 september 2009 13:55 schreef daReaper het volgende:

    [..]
    [ code verwijderd ]

    Niet getest, laat maar weten of het werkt.
    Als $array2[$a] niet bestaat, krijg je minimaal een notice. Die kun je onderdrukken, maar 't is niet netjes. En je moet er nog rekening mee houden dat een key wel in $array2 kan voorkomen en niet in $array1 zit.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?php
    $total 
    = array();
    foreach(
    $array1 as $key => $value) {
      if(isset(
    $array2[$key]) {
        
    $total[$key] = $value $array2[$key];
        unset(
    $array2[$key]);
      } else {
        
    $total[$key] = $value;
      }
    }
    foreach(
    $array2 as $key => $value) {
      
    // Alles wat we nog gemist hebben
      
    $total[$key] = $value;
    }
    ?>

    En dat kan dan natuurlijk in een functie.
    cablegunmastermaandag 21 september 2009 @ 12:39
    vraagje.
    ik heb een $_SESSION en daarin zitten meerdere nrs bvb 800,200,300
    dit zijn nummers die ik met behulp van een database in weergave wil weergeven.
    $sql = select * from artikelen
    where artikel = '".$_SESSION['artikelid']."' ";

    of moet er perse een for while loop? of een for loop bij?

    met een extra $I variabele of iets dergelijks.
    (meerdere waardes in 1 where statement)
    ReWoutmaandag 21 september 2009 @ 12:59
    Ik heb wat moeite met 't ophalen van data...

    Ik heb 4 tabellen...
    - product (bestaat uit info product)
    - log (bestaat uit info van veranderingen product o.a. versie nummer & product id)
    - log_persoon (bestaat uit log_id & persoon_id & rol_id (een getal welke de "rol" voorstelt van de persoon))
    - persoon (bestaat uit info over persoon)

    Wat ik nu wil is dat ik van alle producten de info selecteer met daarbij de laatste log gegevens en de daarbij horende persoons gegeves...

    Wat ik heb
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    SELECT
        pr.[product_naam],
        logp.[logpers_datum], 
        MAX(l.[log_uitgave]),
        p.[persoon_naam]
    FROM [product] AS pr
    LEFT JOIN [log] AS l
        ON l.[product_id] = pr.[product_id]
    LEFT JOIN [log_persoon] AS lp
        ON lp.[log_id] = l.[log_id]
    LEFT JOIN  [persoon] AS p
        ON p.[persoon_id] = logp.[persoon_id]
    WHERE logp.[persoon_rol] = '6'
    GROUP BY pr.[product_id], pr.[product_naam], logp.[logpers_datum], p.[persoon_naam], l.[log_uitgave]
    ORDER BY l.[log_uitgave] DESC



    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    product
    product_id    product_naam
    1            Stofzuiger
    2            Appelsap
    3            Wijn
    4            ABC

    Log
    log_id       product_id   log_uitgave    
    1            1            1
    2            2            1
    3            3            1
    4            3            2
    5            4            1

    Log_persoon
    log_id       persoon_id   persoon_rol  log_datum
    1            1            2            2009-08-09
    1            2            3            2009-08-12
    1            4            6            2009-08-13
    2            2            1            2009-08-17
    2            1            6            2009-08-18
    3            3            4            2009-08-19
    3            3            5            2009-08-22
    3            1            6            2009-08-28
    4            2            6            2009-08-29
    5            4            6            2009-08-30

    Persoon
    persoon_id   persoon_naam
    1            Jan
    2            Piet
    3            Klaas
    4            Kees

    Het resultaat wat ik dan wil is...
    ----------------------------------------
    1.    stofzuiger 2009-08-13    1    Jan
    2.    Appelsap   2009-08-18    1    Jan
    3.    Wijn       2009-08-29    2    Piet
    4.    ABC        2009-08-30    1    Kees
    cablegunmastermaandag 21 september 2009 @ 13:15
    quote:
    Op maandag 21 september 2009 12:59 schreef ReWout het volgende:
    Ik heb wat moeite met 't ophalen van data...

    Ik heb 4 tabellen...
    - product (bestaat uit info product)
    - log (bestaat uit info van veranderingen product o.a. versie nummer & product id)
    - log_persoon (bestaat uit log_id & persoon_id & rol_id (een getal welke de "rol" voorstelt van de persoon))
    - persoon (bestaat uit info over persoon)

    Wat ik nu wil is dat ik van alle producten de info selecteer met daarbij de laatste log gegevens en de daarbij horende persoons gegeves...

    Wat ik heb
    [ code verwijderd ]


    [ code verwijderd ]
    wat is je resultaat nu ? en waarom mis je een orderby artikel ID? en wat is er met je where aan de hand =)? waarom alleen persoon 6?
    Lightmaandag 21 september 2009 @ 13:57
    quote:
    Op maandag 21 september 2009 12:39 schreef cablegunmaster het volgende:
    vraagje.
    ik heb een $_SESSION en daarin zitten meerdere nrs bvb 800,200,300
    dit zijn nummers die ik met behulp van een database in weergave wil weergeven.
    $sql = select * from artikelen
    where artikel = '".$_SESSION['artikelid']."' ";

    of moet er perse een for while loop? of een for loop bij?

    met een extra $I variabele of iets dergelijks.
    (meerdere waardes in 1 where statement)
    WHERE artikel IN (800, 200, 300)
    Lightmaandag 21 september 2009 @ 13:58
    quote:
    Op maandag 21 september 2009 12:59 schreef ReWout het volgende:
    Ik heb wat moeite met 't ophalen van data...

    Ik heb 4 tabellen...
    - product (bestaat uit info product)
    - log (bestaat uit info van veranderingen product o.a. versie nummer & product id)
    - log_persoon (bestaat uit log_id & persoon_id & rol_id (een getal welke de "rol" voorstelt van de persoon))
    - persoon (bestaat uit info over persoon)

    Wat ik nu wil is dat ik van alle producten de info selecteer met daarbij de laatste log gegevens en de daarbij horende persoons gegeves...

    Wat ik heb
    [ code verwijderd ]


    [ code verwijderd ]
    Even voor de zekerheid, hebben we het hier over MySQL? En zo nee, over welke SQL-smaak dan wel?
    ReWoutmaandag 21 september 2009 @ 14:47
    quote:
    Op maandag 21 september 2009 13:58 schreef Light het volgende:

    [..]

    Even voor de zekerheid, hebben we het hier over MySQL? En zo nee, over welke SQL-smaak dan wel?
    Nah MSSQL.

    -edit- ik zal me vraag wel even anders stellen want het gene wat ik hierboven wil kan ik namelijk wel verkrijgen met 2 queries... maar ik probeer er dus 1 van te maken.

    [ Bericht 13% gewijzigd door ReWout op 21-09-2009 15:51:52 ]
    cosmickdinsdag 22 september 2009 @ 09:43
    Even een include-vraag .

    In sites gebruik ik altijd includes voor headers, footers etc. op deze manier: <? include("inc/scripts.php")?> .

    Werkt natuurlijjk prima. Maar wat als ik nu een externe pagina wil includen? Dacht met mijn domme hoofd dat dat simpel zo zou gaan maar helaas:

    <? include("inc/http://www.website.nl/pagina.html")?>

    Iemand een oplossing?
    Swetseneggerdinsdag 22 september 2009 @ 09:45
    als je dat 'inc' voor die http weghaalt?
    Darkomendinsdag 22 september 2009 @ 10:04
    quote:
    Op dinsdag 22 september 2009 09:45 schreef Swetsenegger het volgende:
    als je dat 'inc' voor die http weghaalt?
    Dan staat er <? include("/http://www.website.nl/pagina.html")?> ;-)
    Dus 'inc/' weghalen.
    Of
    http://nl3.php.net/manual/en/function.file-get-contents.php
    Swetseneggerdinsdag 22 september 2009 @ 10:06
    quote:
    Op dinsdag 22 september 2009 10:04 schreef Darkomen het volgende:

    [..]

    Dan staat er <? include("/http://www.website.nl/pagina.html")?> ;-)
    Dus 'inc/' weghalen.
    Het leek me dat DAT wel duidelijk was.
    cosmickdinsdag 22 september 2009 @ 10:13
    quote:
    Op dinsdag 22 september 2009 09:45 schreef Swetsenegger het volgende:
    als je dat 'inc' voor die http weghaalt?
    Erhm, sorry, die inc had ook niet in die post moeten staan .

    Zonder "inc/" werkt het iig ook niet; dan wordt zelfs het divje waar de inc in zit niet eens getoond.
    quote:
    Op dinsdag 22 september 2009 10:04 schreef Darkomen het volgende:

    [..]

    Dan staat er <? include("/http://www.website.nl/pagina.html")?> ;-)
    Dus 'inc/' weghalen.
    Of
    http://nl3.php.net/manual/en/function.file-get-contents.php
    Had ik al gezien idd. Krijg het wel voor elkaar dat de pagina geladen wordt, maar dan staan er allemaal getallen voor.

    Als ik deze gebruik:

    <?php
    $context=array('http' => array ('header'=> 'Range: bytes=1024-', ),);
    $xcontext = stream_context_create($context);
    $str=file_get_contents("http://www.site.nl/pagina.html",FALSE,$xcontext);
    ?>

    Blijft het divje iig wel staan (dat is al een ding); maar wordt "pagina.html" niet geladen.
    Lightdinsdag 22 september 2009 @ 10:27
    Met include kun je alleen het file:/// protocol gebruiken, dus http:// gaat niet werken.

    En staat allow_url_fopen aan of uit? (zie phpinfo() )
    cosmickdinsdag 22 september 2009 @ 10:36
    quote:
    Op dinsdag 22 september 2009 10:27 schreef Light het volgende:
    En staat allow_url_fopen aan of uit? (zie phpinfo() )
    Geen idee.. server van klant. Als dit aan staat; werkt het dan wel?
    Lightdinsdag 22 september 2009 @ 12:14
    quote:
    Op dinsdag 22 september 2009 10:36 schreef cosmick het volgende:

    [..]

    Geen idee.. server van klant. Als dit aan staat; werkt het dan wel?
    Als je er bestanden op kunt zetten, kun je er ook een php-bestand opzetten met alleen maar
    1<?php phpinfo(); ?>
    . Die aanroepen via de browser en je krijgt een hoop info.

    Als allow_url_fopen aan staat, moet het volgens mij wel werken.
    cosmickdinsdag 22 september 2009 @ 12:44
    quote:
    Op dinsdag 22 september 2009 12:14 schreef Light het volgende:
    [quote]Op dinsdag 22 september 2009 12:14 schreef Light het volgende:

    [..]

    Als je er bestanden op kunt zetten, kun je er ook een php-bestand opzetten met alleen maar
    [ code verwijderd ]

    . Die aanroepen via de browser en je krijgt een hoop info.

    Als allow_url_fopen aan staat, moet het volgens mij wel werken.
    Kun je dat iets meer toelichten please?

    Site 1, op domein a, bevat lokale includes (html-bestanden met alleen tekst) die ook in Site 2, domein b, geladen moeten worden.
    Chandlerwoensdag 23 september 2009 @ 10:23
    Kleine vraag m.b.t regex.

    Ik wil graag data uit html filteren maar krijg het niet helemaal voor elkaar.

    De data die ik wil filteren ziet er zo uit

    1<h3>content</h3><div>content</div>


    voorbeeld qua regex die werkt

    1
    2
    3
    <?php
    $regex 
    '!' preg_quote('<h3>') . '(.*?)+' preg_quote('</h3><div>') . '(.*?)' preg_quote('</div>') . '!ism';
    ?>


    ik wil dus alleen bovenstaande uitlezen en bv niet als resultaat het volgende krijgen

    1
    2
    <h3>content/<h3><span>dit is een voetbal test</div>
    <h3>content</h3><div>content</div>


    oftewel ik moet breaken tot </h3> echter krijg ik dit niet voor elkaar met

    1[^\</h3\>]


    weet iemand wat ik fout doe?
    daReaperwoensdag 23 september 2009 @ 11:12
    quote:
    Op woensdag 23 september 2009 10:23 schreef Chandler het volgende:
    Kleine vraag m.b.t regex.

    Ik wil graag data uit html filteren maar krijg het niet helemaal voor elkaar.

    De data die ik wil filteren ziet er zo uit
    [ code verwijderd ]

    voorbeeld qua regex die werkt
    [ code verwijderd ]

    ik wil dus alleen bovenstaande uitlezen en bv niet als resultaat het volgende krijgen
    [ code verwijderd ]

    oftewel ik moet breaken tot </h3> echter krijg ik dit niet voor elkaar met
    [ code verwijderd ]

    weet iemand wat ik fout doe?
    Ik snap niet helemaal wat je wilt doen, maar

    1
    2
    3
    $html = "<h3>content</h3><div>content</div>";
    preg_match("#<h3>(.*?)</h3><div>(.*?)</div>#", $html, $matches);
    var_dump($matches);


    (niet getest)
    Xcaliburwoensdag 23 september 2009 @ 11:27
    Dan moet je hem niet-greedy maken.
    Ik weet alleen niet uit m'n hoofd welke modifier dat is, maar dat kan je wel googlen
    cosmickwoensdag 23 september 2009 @ 16:26
    quote:
    Op dinsdag 22 september 2009 09:43 schreef cosmick het volgende:
    Even een include-vraag .

    In sites gebruik ik altijd includes voor headers, footers etc. op deze manier: <? include("inc/scripts.php")?> .

    Werkt natuurlijjk prima. Maar wat als ik nu een externe pagina wil includen? Dacht met mijn domme hoofd dat dat simpel zo zou gaan maar helaas:

    <? include("ihttp://www.website.nl/pagina.html")?>

    Iemand een oplossing?
    Het is overigens gelukt met deze code:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    $ch 
    curl_init();

    curl_setopt($chCURLOPT_URL,
    "http://www.bepaaldewebsite.nl/pagina-text.html");
    curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT
    5.2; en-GB; rv:1.8.1.7) Gecko/20070914 Firefox/2.0.0.7'
    );

    curl_exec($ch);
    curl_close($ch);
    ?>
    RooieHoedwoensdag 23 september 2009 @ 19:04
    Ik ben nog op zoek naar compacte MVC_modellen in PHP.
    Downloadbare.

    Compact bedoel ik:
    Router,
    Controller,
    Views,
    Models,
    Frontcontroller

    Niet heel veel meer dan dat.
    Liefst Views die icm Smarty oid werkt
    marqwoensdag 23 september 2009 @ 21:40
    Het heeft je router, frontcontroller en biedt views obv normale PHP, smarty kan ook maar heeft slechts in uitzonderlijke situaties toegevoegde waarde: http://www.codeigniter.com/
    Jammer dat CodeIgniter eigenlijk een ontzettend brak geheel is.

    Beter neem je dan http://www.kohanaphp.com/ het lijkt veel op CodeIgniter en is wat minder brak maar heeft helaas een ingebouwde ORM aan boord, en een ingebouwde ORM welke specifiek voor dat project is, is meestal van brakke kwaliteit. Het is tenminste een stuk beter dan CodeIgniter.

    Eventueel druk je http://doctrine-project.org/ er in, een krachtig stukje ORM. Is je applicatie niet complex genoeg? Dan zal een simpele table gateway redding en eenvoud bieden.

    Een stukje MVC voor de puristen, heel erg elegant!
    http://code.google.com/p/barebonesmvc-php/

    Zaken zoals Cake of Symfony kun je - gezien je vraag - beter buiten beschouwing laten, deze bieden te veel en geven complexiteit en inflexibiliteit terug. Een stevige applicatie met veel business logica en maatwerk zou je al snel met Zend + Doctrine ontwikkelen, Zend's eigen database abstractie is krachtig, maar relaties leggen is een vervelende klus en een ORM biedt het niet.

    Als je een echte beginner bent met interesse naar meer, begin dan ook maar gewoon met CodeIgniter, haar simplistische architectuur is binnen een kwartier te bevatten.
    Chandlerdonderdag 24 september 2009 @ 12:49
    quote:
    Op woensdag 23 september 2009 11:27 schreef Xcalibur het volgende:
    Dan moet je hem niet-greedy maken.
    Ik weet alleen niet uit m'n hoofd welke modifier dat is, maar dat kan je wel googlen
    Dat heb ik geprobeerd maar op een of andere manier werkt het niet en krijg ik toch meer resultaten dan wat ik zoek
    Laurensiusdonderdag 24 september 2009 @ 13:35
    Ik zit met een euh.. uitdaging

    Om de database (voor webwinkel) te updaten wordt deze iedere nacht ge-update.
    Ik heb een tabel 'Artikelen'..
    via php lees ik het bestand 'Artikelen.txt' in en maak een tijdelijke tabel aan, 'Artikelen_tijd'.

    Zodra het hele bestand is ingelezen verwijder ik 'Artikelen' en hernoem ik 'Artikelen_tijd' naar 'Artikelen'..

    Nou wilde ik graag weten of je ook ALLE indexen van een bepaalde tabel uit kunt lezen, het kan wel per column, maar bij 'multi-indexen' waar dus meerdere columns bij betrokken zijn is me dit nog niet gelukt, iemand een idee hoe dit kan?

    Samenvatting: Ik wil via php alle indexen weten die op een bepaalde tabel zijn toegevoegd.
    GlowMousedonderdag 24 september 2009 @ 13:43
    SHOW INDEX FROM tbl
    Laurensiusdonderdag 24 september 2009 @ 13:57
    quote:
    Op donderdag 24 september 2009 13:43 schreef GlowMouse het volgende:
    SHOW INDEX FROM tbl
    Thnx!
    ReWoutdonderdag 24 september 2009 @ 14:41
    quote:
    Op woensdag 23 september 2009 21:40 schreef marq het volgende:Een stukje MVC voor de puristen, heel erg elegant!
    http://code.google.com/p/barebonesmvc-php/
    Die is wel leuk ja thanks voor de link
    mark_1980donderdag 24 september 2009 @ 14:58
    Ik kan een aardig stukje php-en, maar reguliere expressies zijn echt helemaal nieuw voor me, maar nu heb ik het toch echt een keer nodig!!

    In een pagina die is opgeslagen mijn database staat een tag;
    1[album album="12" style="modern"]


    Nu wil ik allereerst er voor zorgen dat de [album xxxxxxxx] tag wordt vervangen voor het uitvoeren van een functie, die als argumenten de waarden uit album en style mee krijgen.

    Hoe kan ik dit het beste aanpakken?
    wobbeldonderdag 24 september 2009 @ 16:07
    Ik heb een tabel SHOP_Producten met daarin al mijn producten. Nu wil ik voor elk product ook nog een kleur kunnen toevoegen. Nu kan ik een varchar aanmaken met daarin seperators, dus: "zwart|rood|grijs".
    Is dit een goede oplossing? Het is een bestaand meertalig shopsysteem waarvan ik het niet zo 123 een tabelletje toevoeg met meerdere uitvoeringen.

    Is deze gedachtengang goed, of moet ik het toch anders aanpakken?
    Xcaliburdonderdag 24 september 2009 @ 17:34
    Heeft ieder product 1 kleur of meer kleuren?

    Als het meer kleuren zijn vind ik dit een ranzige oplossing, en ik zie niet waarom je geen tabel zou kunnen toevoegen. Als het 1 kleur is zou ik er een ENUM veld van maken ipv varchar
    daReaperdonderdag 24 september 2009 @ 17:50
    quote:
    Op donderdag 24 september 2009 14:58 schreef mark_1980 het volgende:
    Ik kan een aardig stukje php-en, maar reguliere expressies zijn echt helemaal nieuw voor me, maar nu heb ik het toch echt een keer nodig!!

    In een pagina die is opgeslagen mijn database staat een tag;
    [ code verwijderd ]

    Nu wil ik allereerst er voor zorgen dat de [album xxxxxxxx] tag wordt vervangen voor het uitvoeren van een functie, die als argumenten de waarden uit album en style mee krijgen.

    Hoe kan ik dit het beste aanpakken?
    1
    2
    3
    4
    5
    6
    $s = '[album album="12" style="modern"]';
    preg_match("/album=\"?(.+?)\"?/", $s, $match);
    $album = $match[1];
    unset($match);
    preg_match("/style=\"?(.+?)\"?/", $s, $match);
    $style = $match[1];
    pc-fr34kdonderdag 24 september 2009 @ 17:57
    Is het niet handiger om kleuren aan cijfers te verbinden zodat je maar 1 keer de kleuren hoeft toe te voegen en de parser het uiteindelijk omzet naar de kleur in de goede taal?
    wobbeldonderdag 24 september 2009 @ 18:06
    quote:
    Op donderdag 24 september 2009 17:57 schreef pc-fr34k het volgende:
    Is het niet handiger om kleuren aan cijfers te verbinden zodat je maar 1 keer de kleuren hoeft toe te voegen en de parser het uiteindelijk omzet naar de kleur in de goede taal?
    Dat zou ook kunnen.

    Ik heb:

    Product A - Zwart, Rood
    Product B - Zilver, Blauw, Pimpelpaars met witte stipjes, Groen

    Dus een ENUM gaat niet werken ofwel?

    Dus een varchat met "1|5|6|9" voor Product B en dan die ID's koppelen aan een tabel met kleuren?
    marqdonderdag 24 september 2009 @ 19:52
    quote:
    Op donderdag 24 september 2009 16:07 schreef wobbel het volgende:
    Ik heb een tabel SHOP_Producten met daarin al mijn producten. Nu wil ik voor elk product ook nog een kleur kunnen toevoegen. Nu kan ik een varchar aanmaken met daarin seperators, dus: "zwart|rood|grijs".
    Is dit een goede oplossing? Het is een bestaand meertalig shopsysteem waarvan ik het niet zo 123 een tabelletje toevoeg met meerdere uitvoeringen.

    Is deze gedachtengang goed, of moet ik het toch anders aanpakken?
    gewoon normaliseren, als een enum niet kan omdat er meerdere combinaties mogelijk zijn gebruik je gewoon een losse koppeltabel waarnaar toe je gaat verwijzen. Meertaligheid kun je dan middels gettext implementeren. Let op dat PHP's gettext extensie niet thread-safe is, dus je bent bijna verplicht apache_mpm_prefork te gebruiken.

    Edit: waarom is een var_char geen goede oplossing? Omdat je dan niet meer in staat bent je resultaatset te verkleinen op basis van een enkele kleur, dit moet je dan verplicht in je applicatie oplossen terwijl juist MySQL - of vrijwel elke andere database - die taak uit zou moeten voeren.
    Dit via PHP doen gaat je geheugen kosten in je Apache proces (of thread) en het gaat je geheugen kosten op je database machine. En al heb je GB's aan RAM in je webserver(s) en database server(s), benut het goed. Een paar MB extra vrij per proces op je webserver en je kan meteen extra requests tegelijkertijd afhandelen, zie je MaxClients instelling bij Apache.

    [ Bericht 12% gewijzigd door marq op 24-09-2009 19:58:45 ]
    mark_1980donderdag 24 september 2009 @ 20:42
    quote:
    Op donderdag 24 september 2009 17:50 schreef daReaper het volgende:

    [..]
    [ code verwijderd ]


    Dank je wel, maar het lijkt nog niet te werken. Als ik $style en $album echo, krijg ik niet de resultaten die ik zou willen. Namelijk:
    $album = 1
    $style = m

    Van beide variabelen dus het eerste teken. Hoe krijg ik de gehele waarden?
    mark_1980donderdag 24 september 2009 @ 21:05
    quote:
    Op donderdag 24 september 2009 17:50 schreef daReaper het volgende:

    [..]
    [ code verwijderd ]
    Het is de bedoeling dat de code wordt opgeslagen in een db binnen de content.

    1
    2
    3
    <p>Lorum Ipsum</p>
    [album album="12" style="modern"]
    <p>Lorum Ipsum</p>


    Een reguliere expressie vervang functie moet er in feite het volgende van maken

    1
    2
    3
    <p>Lorum Ipsum</p>
    showAlbum($album, $style);
    <p>Lorum Ipsum</p>


    Misschien maakt dat mijn probleem wat duidelijker
    cablegunmastervrijdag 25 september 2009 @ 13:19
    Edit : copy knop

    [ Bericht 38% gewijzigd door cablegunmaster op 25-09-2009 13:55:05 ]
    GlowMousevrijdag 25 september 2009 @ 13:28
    quote:
    Op vrijdag 25 september 2009 13:19 schreef cablegunmaster het volgende:
    probleempje :
    [ code verwijderd ]

    ik krijg alleen het eerste woord terug "automatische " of acceptgiro hoe los ik dit op?
    zaten eerst dubbele quotes omheen.
    Bekijk je html-output.
    urselvrijdag 25 september 2009 @ 13:33
    quote:
    Op vrijdag 25 september 2009 13:19 schreef cablegunmaster het volgende:
    probleempje :
    [ code verwijderd ]

    ik krijg alleen het eerste woord terug "automatische " of acceptgiro hoe los ik dit op?
    zaten eerst dubbele quotes omheen.
    Je gebruikt zowel HTML als php binnen je <?php ... ?>
    cablegunmastervrijdag 25 september 2009 @ 13:39
    quote:
    Op vrijdag 25 september 2009 13:19 schreef cablegunmaster het volgende:
    probleempje :
    [ code verwijderd ]

    ik krijg alleen het eerste woord terug "automatische " of acceptgiro hoe los ik dit op?
    zaten eerst dubbele quotes omheen.
    quote:
    Op vrijdag 25 september 2009 13:33 schreef ursel het volgende:

    [..]

    Je gebruikt zowel HTML als php binnen je <?php ... ?>
    opmaak fout van fok.nl de eerste php weg denken en de laatste ?> afsluiting ook.
    GlowMousevrijdag 25 september 2009 @ 13:40
    linkje? ik geloof er weinig van.
    urselvrijdag 25 september 2009 @ 13:48
    quote:
    Op vrijdag 25 september 2009 13:39 schreef cablegunmaster het volgende:

    [..]


    [..]

    opmaak fout van fok.nl de eerste php weg denken en de laatste ?> afsluiting ook.
    Dan zit je if(isset) toch nog steeds binnen je <option>
    cablegunmastervrijdag 25 september 2009 @ 13:55
    quote:
    Op vrijdag 25 september 2009 13:48 schreef ursel het volgende:

    [..]

    Dan zit je if(isset) toch nog steeds binnen je <option>
    fout gekopieerd
    1
    2
    3
    <?php
    if(isset($_POST['betaling'])){ echo "<option selected value=".$_POST['betaling'].">".$_POST['betaling']."</option>"; }
    ?>


    Het zit hem hierin. maar ik snap niet waar hij dan fout gaat. de eerste kopieert hij wel de hele string en de tweede keer kapt hij hem af. tot een klein stukje.


    oh wacht... na 4x overlezen snap ik hem al

    Tuurlijk wel even noteren wat het is:
    de output gaf aan value=de echte waarde en eigenlijk moest er staan value='de echte waarde'

    [ Bericht 34% gewijzigd door cablegunmaster op 25-09-2009 14:03:44 ]
    -Datdus-vrijdag 25 september 2009 @ 23:05
    pff mensen

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $queryget = mysql_query( 'SELECT * FROM gastenboek' or die("query error"));

    while ($row = mysql_fetch_assoc($queryget)) {

     $id = $row['id'];
     $name = $row['name'];
     $email = $row['email'];
     $message = $row['message'];
     $date = $row['date'];
     $time = $row['time'];


    kan iemand de fout ontdekken
    ik ben pas bezig met php en ik zit nu echt vast.
    GlowMousevrijdag 25 september 2009 @ 23:11
    regel 1 is fout

    en ik mis de }
    -Datdus-vrijdag 25 september 2009 @ 23:17
    quote:
    Op vrijdag 25 september 2009 23:11 schreef GlowMouse het volgende:
    regel 1 is fout

    en ik mis de }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    <?php

    echo "<h1>scrhijf in het gastenboek!</h1>";

    //connect 

    $connect = mysql_connect('Localhost','*****_******','*******') or die("User error");
    //select db
    mysql_select_db( 'rdonkers_gastenboek' or die("select error"));


    //get query

    $queryget = mysql_query( 'SELECT * FROM gastenboek' or die("query error"));

    while ($row = mysql_fetch_assoc($queryget)) {

     $id = $row['id'];
     $name = $row['name'];
     $email = $row['email'];
     $message = $row['message'];
     $date = $row['date'];
     $time = $row['time'];

     //display
     echo "
     name: $name <br>
     ";
     }


    echo '<hr>';

    echo "
    <form action='gastenboek.php' method='post'>
    Username:<input type='text' name='username' maxlength='20'><br>
    Email:<input type='text' name='email' maxlength='50'><br>
    Message<textarea cols='40' rows='5' maxlength='250'></textarea><br>
    <input type='submit' name='submit' value='send'>
    </form>


    ";

    ?>

    die } heb ik wel iig
    hier is heel de code misschien heb je hier meer aan.
    Lightvrijdag 25 september 2009 @ 23:20
    Nu is regel 14 fout.
    Chandlerzaterdag 26 september 2009 @ 13:05
    Misschien handig ivm or die functie

    http://www.w3schools.com/php/func_misc_die.asp
    cablegunmasterzondag 27 september 2009 @ 02:20
    quote:
    Op vrijdag 25 september 2009 23:20 schreef Light het volgende:
    Nu is regel 14 fout.
    Regel 14:
    1
    2
    3
    <?php
    $queryget 
    mysql_query'SELECT * FROM gastenboek')or die("query error"));
    ?>


    Mist een ) in het bold toe gevoegd als hij die code in php pakt :)

    mysql_query( ' ') or die ("mysql_error());
    zoek eens op php naar een fout afhandeling.
    handiger is een $sql variabele te maken en die in een mysql_query($sql); te stoppen zodat als je variabelen gebruikt in je sql die kan outputten met een echo om je sql fout te vinden.
    Lightzondag 27 september 2009 @ 09:50
    quote:
    Op zondag 27 september 2009 02:20 schreef cablegunmaster het volgende:

    Mist een ) in het bold toe gevoegd als hij die code in php pakt
    Nee, er staan precies genoeg haakjes, alleen niet op de juiste plek.
    quote:
    mysql_query( ' ') or die ("mysql_error());
    Nu staat er een ) te veel.
    quote:
    zoek eens op php naar een fout afhandeling.
    handiger is een $sql variabele te maken en die in een mysql_query($sql); te stoppen zodat als je variabelen gebruikt in je sql die kan outputten met een echo om je sql fout te vinden.
    -Datdus-zondag 27 september 2009 @ 19:58
    ik heb het gewoon overnieuw getypt en nu doet hij wel.
    ik weet alleen niet wat er mis was,
    toch bedankt mensen.
    ReWoutdonderdag 1 oktober 2009 @ 17:37
    SELECT * FROM gallery WHERE views=MAX(views)

    Hoe doe ik dat? , ik wil dus 't element met 't grootst aantal views hebben.

    oh btw ik wil niet horen dat ik dus

    SELECT * FROM gallery ORDER BY views DESC LIMIT 1

    ofzo
    Xcaliburdonderdag 1 oktober 2009 @ 17:41
    SELECT MAX(views) FROM gallery ?
    ReWoutdonderdag 1 oktober 2009 @ 17:48
    quote:
    Op donderdag 1 oktober 2009 17:41 schreef Xcalibur het volgende:
    SELECT MAX(views) FROM gallery ?
    Nah want die resultaat (hoeft) correnspondeert dan niet met de andere geselecteerde rijen
    Lightdonderdag 1 oktober 2009 @ 20:05
    quote:
    Op donderdag 1 oktober 2009 17:37 schreef ReWout het volgende:
    SELECT * FROM gallery WHERE views=MAX(views)

    Hoe doe ik dat? :s), ik wil dus 't element met 't grootst aantal views hebben.
    Zoiets?
    1SELECT * FROM gallery WHERE views= (SELECT MAX(views) FROM gallery)
    quote:
    oh btw ik wil niet horen dat ik dus

    SELECT * FROM gallery ORDER BY views DESC LIMIT 1

    ofzo :P
    Waarom niet? Dat werkt wel, en 't is een stuk minder omslachtig :)
    Xcaliburdonderdag 1 oktober 2009 @ 20:32
    quote:
    Op donderdag 1 oktober 2009 17:48 schreef ReWout het volgende:

    [..]

    Nah want die resultaat (hoeft) correnspondeert dan niet met de andere geselecteerde rijen
    Ik geloof niet dat ik snap wat je zegt....
    ReWoutvrijdag 2 oktober 2009 @ 07:22
    De query gaat over 2 tabellen...

    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
    Tabel 1:
    id naam
    1 Abc
    2 Bcd
    3 Cde
    4 Def

    Tabel 2:
    id id_tabel1 uitgave_nummer versie_nummer
    1 1 1 a
    2 1 1 b
    3 1 1 c
    4 1 2 a
    5 1 3 a
    6 2 1 a
    7 2 1 b
    8 3 1 a
    9 3 1 b
    10 3 2 a
    11 4 1 a
    12 4 2 a
    13 4 3 a
    14 4 4 a
    15 4 4 b
    16 4 4 c 


    Nu wil ik alleen diegene selecteren uit tabel1 waarbij de uitgave_nummer nummer 't grootst is en vervolgens ook 't versie_nummer het grootste is...

    Bijvoorbeeld de resultaat van me query moet zijn

    id naam uitgave versie
    1 Abc 3 a
    2 Bcd 1 b
    3 Cde 2 a
    4 Def 4 c
    Lightvrijdag 2 oktober 2009 @ 07:33
    quote:
    Op vrijdag 2 oktober 2009 07:22 schreef ReWout het volgende:
    De query gaat over 2 tabellen...
    [ code verwijderd ]

    Nu wil ik alleen diegene selecteren uit tabel1 waarbij de uitgave_nummer nummer 't grootst is en vervolgens ook 't versie_nummer het grootste is...

    Bijvoorbeeld de resultaat van me query moet zijn

    id naam uitgave versie
    1 Abc 3 a
    2 Bcd 1 b
    3 Cde 2 a
    4 Def 4 c
    Is dat een nieuw probleem of nog steeds hetzelfde probleem? In het laatste geval, hoe hadden we moeten weten dat je query over 2 tabellen gaat?
    ReWoutvrijdag 2 oktober 2009 @ 08:06
    quote:
    Op vrijdag 2 oktober 2009 07:33 schreef Light het volgende:

    [..]

    Is dat een nieuw probleem of nog steeds hetzelfde probleem? In het laatste geval, hoe hadden we moeten weten dat je query over 2 tabellen gaat?
    Hetzelfde probleem en je hebt gelijk had ik moeten vermelden maar ik dacht dat 't toch niet zoveel uitmaakte omdat ik dus inprincipe dus gewoon een WHERE clause maximum nodig heb waardoor ik dus alleen de hoogste uitgave/versie eruit haal
    Xcaliburvrijdag 2 oktober 2009 @ 08:59
    Dan zou ik lekker op uitgave en versie sorteren en het eerste record pakken
    Voor je oorspronkelijke probleem blijft mijn query prima volgens mij
    ReWoutvrijdag 2 oktober 2009 @ 09:34
    quote:
    Op vrijdag 2 oktober 2009 08:59 schreef Xcalibur het volgende:
    Dan zou ik lekker op uitgave en versie sorteren en het eerste record pakken
    Voor je oorspronkelijke probleem blijft mijn query prima volgens mij
    Nee helaas niet want...

    Want want hij selecteert dan de grootste waarde die hij kan vinden uit uitgave en uit versie...

    Dus bijvoorbeeld ik heb de volgende data
    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
    Tabel 1:
    id naam
    1 Abc
    2 Bcd
    3 Cde
    4 Def

    Tabel 2:
    id id_tabel1 uitgave_nummer versie_nummer
    1 1 1 a
    2 1 1 b
    3 1 1 c
    4 1 2 a
    5 1 3 a
    6 2 1 a
    7 2 1 b
    8 3 1 a
    9 3 1 b
    10 3 2 a
    11 4 1 a
    12 4 2 a
    13 4 3 a
    14 4 4 a
    15 4 4 b
    16 4 4 c
    17 4 5 a


    Dan retouneert de query

    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT
       n.[id], 
       n.[titel], 
       MAX(m.[uitgave]) AS [uitgave],
       MAX(m.[versie]) AS [versie]
    FROM [tabel1] AS n
    LEFT JOIN [tabel2] AS m
       ON m.[id_tabel1] = n.[id]
       GROUP BY n.[id], n.[titel]


    't volgende resultaat

    1 Abc 3 a
    2 Bcd 1 b
    3 Cde 2 a
    4 Def 5 c

    Hij moet natuurlijk dan
    4 Def 5 a
    retouneren

    dit bedoelde ik eigenlijk toen ik 't volgende zei
    quote:
    Op donderdag 1 oktober 2009 17:48 schreef ReWout het volgende:

    [..]

    Nah want die resultaat (hoeft) correnspondeert dan niet met de andere geselecteerde rijen
    Wanneer ik dan MAX(m.[Versie]) wegdoe (en toevoeg bij GROUP BY anders error) dan krijg je weer dubbele resultaten
    1 Abc 3 a
    2 Bcd 1 a
    3 Bcd 1 b
    4 Def 2 a
    4 Bcd 5 a

    [ Bericht 2% gewijzigd door ReWout op 02-10-2009 09:52:33 ]
    cablegunmastervrijdag 2 oktober 2009 @ 10:47
    SELECT tabel2.uitgave_nummer,tabel1.naam,tabel2.versie_nummer
    FROM tabel2
    LEFT JOIN tabel1 ON
    tabel1.id = tabel2.id_tabel1
    WHERE tabel2.uitgave_nummer = max(uitgave_nummer)
    AND tabel2.versie_nummer = max(versie_nummer)

    zoiets ? weet niet of alle velden kloppen maar het idee is dat hij de naam pakt en het uitgave nummer en de versienummer en daarvan de laatste pakt.

    dus de maximale waarde in uitgave nummer en waar ook de grootste waarde in versienummer staat
    ReWoutvrijdag 2 oktober 2009 @ 11:04
    quote:
    Op vrijdag 2 oktober 2009 10:47 schreef cablegunmaster het volgende:
    SELECT tabel2.uitgave_nummer,tabel1.naam,tabel2.versie_nummer
    FROM tabel2
    LEFT JOIN tabel1 ON
    tabel1.id = tabel2.id_tabel1
    WHERE tabel2.uitgave_nummer = max(uitgave_nummer)
    AND tabel2.versie_nummer = max(versie_nummer)

    zoiets ? weet niet of alle velden kloppen maar het idee is dat hij de naam pakt en het uitgave nummer en de versienummer en daarvan de laatste pakt.

    dus de maximale waarde in uitgave nummer en waar ook de grootste waarde in versienummer staat
    Die query zou ikzelf ook logisch vinden, maar helaas mag je in de where clause geen MAX(), MIN(), AVG() functies uitvoeren
    cablegunmastervrijdag 2 oktober 2009 @ 11:19
    quote:
    Op vrijdag 2 oktober 2009 11:04 schreef ReWout het volgende:

    [..]

    Die query zou ikzelf ook logisch vinden, maar helaas mag je in de where clause geen MAX(), MIN(), AVG() functies uitvoeren
    en waarom zou dat niet mogen ?
    ooh regels las het net dan moet je het met subqueries doen


    SELECT tabel2.uitgave_nummer,tabel1.naam,tabel2.versie_nummer
    FROM tabel2
    LEFT JOIN tabel1 ON
    tabel1.id = tabel2.id_tabel1
    WHERE tabel2.uitgave_nummer =
    (select max(uitgave_nummer)
    from tabel2
    where versienummer = (
    select max(versie_nummer
    from tabel2))

    Zoiets Niet getest maar het idee moet ongv duidelijk zijn

    meer info over subqueries:
    http://dev.mysql.com/tech-resources/articles/4.1/subqueries.html
    ReWoutvrijdag 2 oktober 2009 @ 11:34
    quote:
    Op vrijdag 2 oktober 2009 11:19 schreef cablegunmaster het volgende:

    [..]

    en waarom zou dat niet mogen ?
    ooh regels las het net dan moet je het met subqueries doen


    SELECT tabel2.uitgave_nummer,tabel1.naam,tabel2.versie_nummer
    FROM tabel2
    LEFT JOIN tabel1 ON
    tabel1.id = tabel2.id_tabel1
    WHERE tabel2.uitgave_nummer =
    (select max(uitgave_nummer)
    from tabel2
    where versienummer = (
    select max(versie_nummer
    from tabel2))

    Zoiets Niet getest maar het idee moet ongv duidelijk zijn

    meer info over subqueries:
    http://dev.mysql.com/tech-resources/articles/4.1/subqueries.html
    Al aardig op de goeie weg alleen retouneert die
    1
    2
    3
    4
    Def   4   a
    Def   4   b
    Def   4   c
    Def   4   d


    En dat is 't dus ook niet helemaal

    Deze gegevens staan in de db
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    id, id_tabel1, uitgave, versie
    1   1   1   a
    2   1   1   b
    3   1   1   c
    4   1   2   a
    5   1   3   a
    6   1   3   b
    7   2   1   a
    8   2   2   a
    9   2   2   b
    10   3   1   a
    11   3   1   b
    12   3   2   a
    13   3   2   b
    14   3   2   c
    15   3   3   a
    16   4   1   a
    17   4   2   a
    18   4   3   a
    19   4   3   b
    20   4   4   a
    21   4   4   b
    22   4   4   c
    23   4   4   d


    Had net de volgende query gemaakt... en retouneert me bijna 't goeie alleen retouneert hij niet de waardes van Bcd en Cde omdat die een hogere versie nummer hebben in een van hun eerdere uitgaves.

    1
    2
    Def   4   d
    Abc   3   b


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    SELECT 
       n.[titel],
       m.[uitgave],
       m.[versie]
    FROM [tabel1] AS n
    LEFT JOIN [tabel2] AS m
       ON n.[id] = m.[id_tabel1]
    WHERE m.[versie] = (
          SELECT 
             MAX([versie])
          FROM [tabel2]
          WHERE [uitgave] = m.[uitgave]
       )
       AND m.[uitgave] = (
          SELECT
             MAX([uitgave])
          FROM [tabel2]
          WHERE [id_tabel1] = n.[id]
       )
    cablegunmastervrijdag 2 oktober 2009 @ 11:38
    SELECT
    n.[titel],
    m.[uitgave],
    m.[versie]
    FROM [tabel1] AS n
    LEFT JOIN [tabel2] AS m
    ON n.[id] = m.[id_tabel1]
    WHERE m.[versie] = (
    SELECT
    MAX([versie])
    FROM [tabel2]
    WHERE [uitgave] = m.[uitgave]
    )
    AND m.[uitgave] = (
    SELECT
    MAX([uitgave])
    FROM [tabel2]
    WHERE [id_tabel1] = n.[id]
    )

    Lees wat je doet.

    je selecteert de max versie. waar uitgave is gelijk aan uitgave... (nutteloos zinnetje)
    en uitgave = select maximale uitgave van tabel 2 waar id = id.

    cablegunmastervrijdag 2 oktober 2009 @ 11:40
    SELECT max(tabel2.uitgave_nummer),tabel1.naam,max(tabel2.versie_nummer)
    FROM tabel2
    LEFT JOIN tabel1 ON
    tabel1.id = tabel2.id_tabel1
    limit 1
    ReWoutvrijdag 2 oktober 2009 @ 11:51
    quote:
    Op vrijdag 2 oktober 2009 11:38 schreef cablegunmaster het volgende:
    Lees wat je doet.

    je selecteert de max versie. waar uitgave is gelijk aan uitgave... (nutteloos zinnetje)
    Ja klopt toch? Een uitgave (4 bijvoorbeeld) kan meerdere versies hebben (a, b, c, d) en ik moet dus de max versie hebben van die uitgave...
    quote:
    en uitgave = select maximale uitgave van tabel 2 waar id = id.
    Klopt toch ook? Er staan meerdere uitgaves in de tabel... 1, 2, 3, 4?

    Ik moet ze dus van alle 4 hebben he niet 1

    Wiiiiiiiiiii ik heb 't
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    SELECT
       n.[titel],
       MAX(m.[uitgave]),
       MAX(m.[versie])
    FROM [tabel1] AS n
    LEFT JOIN [tabel2] AS m
       ON n.[id] = m.[id_tabel1]
    WHERE m.[uitgave] = (
          SELECT
             MAX(m2.[uitgave])
          FROM [tabel2] AS m2
          WHERE m2.[id_tabel1] = n.[id]
       )
    GROUP BY n.[titel], n.[id]


    [ Bericht 34% gewijzigd door ReWout op 02-10-2009 13:37:08 ]
    woopehhzondag 4 oktober 2009 @ 12:01
    Ik heb een tabel (sql):
    1
    2
    3
    4
    5
    letter | aantal
    a           10
    b           20
    c           30
    d           40


    En een array:

    1
    2
    3
    4
    letter | aantal
    a           10
    c           20
    e           30


    Nu wil ik bereiken dat a = 20, b=20, c=50, d=40, e=30 in de tabel. Het kan dus voorkomen dat er een letter wél in de array zit en niet in de tabel, en andersom.

    Is er een manier waarop ik dit makkelijk op kan lossen? (Ideeën voor een andere opbouw van tabel of iets dergelijks zijn ook welkom :))
    GlowMousezondag 4 oktober 2009 @ 12:02
    http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html
    woopehhzondag 4 oktober 2009 @ 12:07
    quote:
    Dank
    poepeneesjezondag 4 oktober 2009 @ 14:40
    Kan iemand vertellen hoe ik met PHP kan controleren of een connectie met een DB nog bestaat.
    urselzondag 4 oktober 2009 @ 14:48
    quote:
    Op zondag 4 oktober 2009 14:40 schreef poepeneesje het volgende:
    Kan iemand vertellen hoe ik met PHP kan controleren of een connectie met een DB nog bestaat.
    mysql_ping
    poepeneesjezondag 4 oktober 2009 @ 15:20
    quote:
    Op zondag 4 oktober 2009 14:48 schreef ursel het volgende:

    [..]

    mysql_ping
    Bedankt voor je snelle reactie.

    Nu krijg ik de volgende melding en ik kan niet vinden waarop deze slaat:
    quote:
    Warning: mysql_ping(): 4 is not a valid MySQL-Link resource in /home/vhosting/../general/content.php on line 41
    Op regel 41 staat het volgende:

    1
    2
    3
    4
    5
    6
    <?php
    if(!mysql_ping($connect))
    {
        include(
    "./database/mysql-database-connect.php");
    }
    ?>
    urselzondag 4 oktober 2009 @ 15:44
    quote:
    Op zondag 4 oktober 2009 15:20 schreef poepeneesje het volgende:

    [..]

    Bedankt voor je snelle reactie.

    Nu krijg ik de volgende melding en ik kan niet vinden waarop deze slaat:
    [..]

    Op regel 41 staat het volgende:
    [ code verwijderd ]
    Je moet wel eerst de connectie (je resource )al eens gelegd hebben. Anders weet de functie niet op welke connectie moet kijken of deze nog steeds open is.
    poepeneesjezondag 4 oktober 2009 @ 18:55
    quote:
    Op zondag 4 oktober 2009 15:44 schreef ursel het volgende:

    [..]

    Je moet wel eerst de connectie (je resource )al eens gelegd hebben. Anders weet de functie niet op welke connectie moet kijken of deze nog steeds open is.
    Klopt, in bepaalde gevallen lijkt het alsof de connectie niet te worden opgezet en kunnen bepaalde queries niet worden uitgevoerd, om niet onnodig een connectie te willen opzetten, wil ik graag een soort van check om te kijken of de verbinding al bestaat.
    mrbombasticzondag 4 oktober 2009 @ 21:41
    Ik heb een beveiligde map op de server van mijn host.
    Voorheen kon ik met de functie move_uploaded_file zonder problemen bestanden uploaden naar deze map. Nu krijg ik echter een venster te zien met een tekst als "Server vereist een gebruikersnaam en een wachtwoord."
    Als ik 3x op annuleren klik, dan verdwijnt het scherm. Het bestand wordt echter gewoon geupload, wat ook de bedoeling is!

    Hoe krijg ik dit irritante scherm weer weg?
    Xcaliburzondag 4 oktober 2009 @ 21:47
    Het is een beveiligde map, waarom vind je het raar dat je moet inloogen?
    GlowMousezondag 4 oktober 2009 @ 21:48
    Dat scherm komt niet door je move_uploaded_file.
    mrbombasticmaandag 5 oktober 2009 @ 09:57
    quote:
    Op zondag 4 oktober 2009 21:48 schreef GlowMouse het volgende:
    Dat scherm komt niet door je move_uploaded_file.
    Je hebt gelijk. Ik heb het getest met een simpel stukje code om een bestand te uploaden naar die beveiligde map. Met dat simpele programma krijg ik geen scherm te zien.
    Ik ben benieuwd wat dat scherm dan veroorzaakt .
    Teganmaandag 5 oktober 2009 @ 16:18
    Ik heb een <FORM> waarin vier keer gekozen kan worden uit steeds tien vaste waardes (1 t/m 10).

    Die vier waardes insert ik dan in mijn database. Ik moet dus vantevoren checken of die vier waardes EN uniek zijn aan elkaar (geen getal komt twee keer voor) EN of ze een van die tien vaste waardes hebben (ieder van de vier getallen ligt tussen 1 en 10).

    Hoe kan ik dat het beste oplossen. In het <FORM> zelf, of tijdens het submitten dat checken en een error geven? Weet eigenlijk niet hoe ik dit het beste kan aanpakken.
    GlowMousemaandag 5 oktober 2009 @ 16:28
    quote:
    Op maandag 5 oktober 2009 16:18 schreef Tegan het volgende:
    Ik heb een <FORM> waarin vier keer gekozen kan worden uit steeds tien vaste waardes (1 t/m 10).

    Die vier waardes insert ik dan in mijn database. Ik moet dus vantevoren checken of die vier waardes EN uniek zijn aan elkaar (geen getal komt twee keer voor) EN of ze een van die tien vaste waardes hebben (ieder van de vier getallen ligt tussen 1 en 10).

    Hoe kan ik dat het beste oplossen. In het <FORM> zelf, of tijdens het submitten dat checken en een error geven? Weet eigenlijk niet hoe ik dit het beste kan aanpakken.
    clientside checks zijn te omzeilen dus moet je sowieso nog in php checken
    Teganmaandag 5 oktober 2009 @ 16:32
    Heb je misschien een voorbeeldje van hoe ik dat check in PHP?
    Darkomenmaandag 5 oktober 2009 @ 16:38
    http://nl3.php.net/manual/en/function.ereg.php

    Hier staan een mooi voorbeeld wat je kan aanpassen voor jouw functie.
    Xcaliburmaandag 5 oktober 2009 @ 16:45
    Een regular expression lijkt me nogal overkill, zeker gezien het niveau van de vraag.

    Checken of veld_1 goed is:
    1
    2
    3
    if($_POST['veld_1'] >= 1 && $_POST['veld_1'] <= 10){
    doe iets
    }


    Checken of de velden niet hetzelfde zijn:
    1
    2
    3
    if($_POST['veld_1'] != $_POST['veld_2'] && $_POST['veld_1'] != $_POST['veld_3']  && $_POST['veld_1'] != $_POST['veld_4'] ){
    doe iets
    }


    Nog wel even de andere combinaties toevoegen natuurlijk
    2 != 3, 3 != 4 enzo

    Niet de mooiste oplossing misschien, wel een hele begrijpbare
    Teganmaandag 5 oktober 2009 @ 16:49
    Maar dat wordt wel een heel lang verhaal dan. Hm.
    Xcaliburmaandag 5 oktober 2009 @ 16:50
    Het gaat toch maar om 4 velden? Dat is 4x checken of de waarde in het veld goed is en 1x checken of de waardes allemaal anders zijn. Dat noem ik niet veel
    GlowMousemaandag 5 oktober 2009 @ 17:02
    Tik zo wel wat als ik thuis ben
    Teganmaandag 5 oktober 2009 @ 17:07
    Het werkt nu al . Thanks.
    GlowMousemaandag 5 oktober 2009 @ 17:29
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    $n
    =4;
    $nrs = array();
    for(
    $i=1$i<=$n$i++) {
      
    $nrs[$i] = intval($_POST['nr' $i]);
      if(
    $nrs[$i] < || $nrs[$i] > 10) {
        
    // x niet in [1,10] doorsneden met IN
      
    }
    }

    if(
    $n != count(array_unique($nrs)) {
      
    // niet uniek
    }
    ?>
    splendormaandag 5 oktober 2009 @ 17:30
    quote:
    Op maandag 5 oktober 2009 16:18 schreef Tegan het volgende:
    Ik heb een <FORM> waarin vier keer gekozen kan worden uit steeds tien vaste waardes (1 t/m 10).

    Die vier waardes insert ik dan in mijn database. Ik moet dus vantevoren checken of die vier waardes EN uniek zijn aan elkaar (geen getal komt twee keer voor) EN of ze een van die tien vaste waardes hebben (ieder van de vier getallen ligt tussen 1 en 10).

    Hoe kan ik dat het beste oplossen. In het <FORM> zelf, of tijdens het submitten dat checken en een error geven? Weet eigenlijk niet hoe ik dit het beste kan aanpakken.
    Wat je kunt doen is een array maken met de waarde als index. Dus bijvoorbeeld als je 1,4,6 en 10 hebt dan krijg je $array[1] = "iets"; $array[4] = "iets"; $array[6] = "iets"; $array[10] = "iets";
    Vervolgens doe je een count op $array en die moet dus 4 zijn. Als je dan 2x een 10 hebt, dan is de count maar 3 en zit er dus een dubbele in.
    Maar misschien is dit te omslachtig en kan het veel simpeler.
    GlowMousemaandag 5 oktober 2009 @ 17:30
    quote:
    Op maandag 5 oktober 2009 16:45 schreef Xcalibur het volgende:
    Niet de mooiste oplossing misschien, wel een hele begrijpbare
    Tot je er na maanden achterkomt dat je bv. nr2 niet met nr4 vergeleek.
    Xcaliburmaandag 5 oktober 2009 @ 18:15
    waarom zou je daar na maanden achterkomen?
    Als je wat maakt moet je het wel testen natuurlijk, en dat geldt voor *iedere* oplossing, dus je opmerking ontgaat me een beetje....
    Lightmaandag 5 oktober 2009 @ 19:47
    quote:
    Op maandag 5 oktober 2009 17:29 schreef GlowMouse het volgende:

    [ code verwijderd ]
    Ziet er goed uit, maar je checkt de range 0 t/m 10 ipv 1 t/m 10.
    Lightmaandag 5 oktober 2009 @ 19:52
    quote:
    Op maandag 5 oktober 2009 16:38 schreef Darkomen het volgende:
    http://nl3.php.net/manual/en/function.ereg.php

    Hier staan een mooi voorbeeld wat je kan aanpassen voor jouw functie.
    Reguliere expressies zijn overkill voor dit voorbeeld. En daarbij zijn de ereg-functies sowieso niet aan te raden. Er staat een duidelijke en niet te missen waarschuwing op die pagina.
    Lightmaandag 5 oktober 2009 @ 19:59
    quote:
    Op maandag 5 oktober 2009 18:15 schreef Xcalibur het volgende:
    waarom zou je daar na maanden achterkomen?
    Als je wat maakt moet je het wel testen natuurlijk, en dat geldt voor *iedere* oplossing, dus je opmerking ontgaat me een beetje....
    Het zal niet het eerste script zijn dat niet volledig doorgetest wordt. Of waar ondanks goed testen toch nog fouten inzitten.
    Daarbij, wat nu als Tegan de reeks wil uitbreiden naar 1..20 en/of een vijfde keuzeveld wil toevoegen? Dan ga je van 6 naar 10 onderlinge vergelijkingen, en daar wordt het niet overzichtelijker door.
    mrbombasticmaandag 5 oktober 2009 @ 20:33
    quote:
    Op zondag 4 oktober 2009 21:48 schreef GlowMouse het volgende:
    Dat scherm komt niet door je move_uploaded_file.
    Ik heb net even uitgezocht waar het aan lag.
    Het bestand upload.php include een header.php en een footer.php. In header.php bleek al een variabele $path te bestaan, die overschreven werd in upload.php.
    De variabele $path wordt weer aangeroepen in footer.php om een afbeelding te laten zien met als gevolg dat scherm.
    Tegandinsdag 6 oktober 2009 @ 13:50
    Ik heb twee tabellen, users en votes.

    1SELECT user FROM users

    (Alle users. Bv. User1, User2, User3, User4.)

    1SELECT user FROM votes WHERE round = '$round' AND action = 'vote'

    (Alle users die deze ronde hebben gestemd. Bv. User2.)

    Hoe kan ik deze vergelijken, dat ik alleen users overhoud die nog moeten stemmen deze ronde?

    $round is de door de datum en tijd bepaalde stemronde.
    Lightdinsdag 6 oktober 2009 @ 13:58
    Aangenomen dat je subqueries kunt gebruiken:
    1
    2
    SELECT user FROM users
    WHERE user NOT IN (SELECT user FROM votes WHERE round = '$round' AND action = 'vote');