Likes Likes:  0
Resultaten 1 tot 15 van de 17
Pagina 1 van de 2 1 2 LaatsteLaatste
Geen
  1. #1
    [PHP/MySql]joins in combinatie met selectie
    geregistreerd gebruiker
    139 Berichten
    Ingeschreven
    26/07/05

    Locatie
    Hier

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: nee
    KvK nummer: nvt
    Ondernemingsnummer: nvt

    Thread Starter

    [PHP/MySql]joins in combinatie met selectie

    Ik heb 2 tabellen.
    tabel 1 staan wedstrijden in. (wedstrijden, bevat de uitslag)
    tabel 2 staan voorspellingen in. (toto, bevat de voorspelling)
    Nu wil ik alle wedstrijden weergeven, als ze gespeeld zijn, met uitslag en anders zonder.
    Dat is niet zo moeilijk dat is gewoon "SELECT * FROM wedstrijden";

    De tabellen zijn gekoppeld via wedstrijden.id=toto.wedstrijd_id

    Nu wil ik de wedstrijden allemaal weergeven en wanneer de uitslag of de voorspelling bekend is wil ik die erachter hebben. Maar dit lukt met dus niet met 1 query.
    Heb nu een left join gebruikt, maar wanneer een gebruiker geen voorspelling invult wordt de wedstrijd niet weer gegeven in het rijtje. Hoe los ik dit op?

  2. #2
    [PHP/MySql]joins in combinatie met selectie
    moderator
    4.784 Berichten
    Ingeschreven
    04/11/05

    Locatie
    Gent

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    12 Berichten zijn liked


    Registrar SIDN: ja
    KvK nummer: nvt
    Ondernemingsnummer: 0475284162

    je join omkeren... De left (of right) geeft aan welke hij hoe dan ook moet tonen, als er nu resultaten zijn in de bijhorende tabel of niet.

    SELECT wedstrijden.*, toto.* FROM wedstrijden LEFT JOIN toto ON wedstrijden.id = toto.wedstrijd_id

    Dat zou je elke wedstrijd moeten geven, met elke voorspelling. Als er meerdere voorspellingen zijn voor een wedstrijd, ga je die ook meerdere malen zien (group gebruiken wil je dit tegengaan).

    Index op toto.wedstrijden_id is geen luxe bij grote datasets.

  3. #3
    [PHP/MySql]joins in combinatie met selectie
    geregistreerd gebruiker
    4.175 Berichten
    Ingeschreven
    09/12/05

    Locatie
    Almere

    Post Thanks / Like
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)
    76 Berichten zijn liked


    Naam: Ramon Fincken
    Bedrijf: Klarned Managed Hosting / Halvar.io
    Functie: CEO
    URL: www.klarned.is
    Registrar SIDN: Nee
    KvK nummer: 30262182
    TrustCloud: ramonfincken
    View ramonfincken's profile on LinkedIn

    Als je het erg lastig vind ...

    doe dit ( pseudo code )

    PHP Code:
    $sql Select from wedstrijden // WHERE blabla = 3
    query $sql
    while ( $row )
    {
       
    // Nu heb je alle basisgegevens voor alle / deze wedstrijd
       
    $sql_sub Select from voorspellingen where wedstrijd$row['wedstrijd_id'];
       
    query $sql_sub;
       if( 
    $row_sub )
       {
          while ( 
    $row_sub )
          {
             
    // Nu heb je alle voorspellingen voor deze wedstrijd
          
    }
       }
       else
       {
          
    // Geen voorspellingen gevonden voor deze wedstrijd

       
    }


    Klarned Managed hosting Hosting, optimalisatie & debugging door WP Core developers

  4. #4
    [PHP/MySql]joins in combinatie met selectie
    geregistreerd gebruiker
    139 Berichten
    Ingeschreven
    26/07/05

    Locatie
    Hier

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: nee
    KvK nummer: nvt
    Ondernemingsnummer: nvt

    Thread Starter
    @Wonko, dit is het probleem juist in de toto tabel staat een user_id waar ik op laat controleren dmv inloggen.(cookie)

    Maar als er dus geen voorspelling is opgegeven staat die gebruiker voor deze wedstrijd er niet in. Dus Verschijnt de wedstrijd niet.

    @Ramon, dit is een goed alternatief denk ik, maar ik script ook om er wat van te leren, en weet dat het mogelijk moet zijn met joins. Dus wil ik eerst de moeilijke oplossing vinden(A)

  5. #5
    [PHP/MySql]joins in combinatie met selectie
    geregistreerd gebruiker
    4.175 Berichten
    Ingeschreven
    09/12/05

    Locatie
    Almere

    Post Thanks / Like
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)
    76 Berichten zijn liked


    Naam: Ramon Fincken
    Bedrijf: Klarned Managed Hosting / Halvar.io
    Functie: CEO
    URL: www.klarned.is
    Registrar SIDN: Nee
    KvK nummer: 30262182
    TrustCloud: ramonfincken
    View ramonfincken's profile on LinkedIn

    Wie weet

    Deze code is wat gebruiksvriendelijker omdat je met if else kunt werken om de txt "geen voorspellingen gevonden" en dergelijke kunt laten zien.

    Of je het gebruikt dat moet je natuurlijk zelf afwegen.
    Als iets nog wat lastig voor je is gewoon KISS doen

    succes!
    Klarned Managed hosting Hosting, optimalisatie & debugging door WP Core developers

  6. #6
    [PHP/MySql]joins in combinatie met selectie
    aktieve deelnemer
    2.782 Berichten
    Ingeschreven
    10/05/02

    Locatie
    Noordwest Holland

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: Ja
    KvK nummer: 37093085
    Ondernemingsnummer: nvt

    Geef eens de structuur van beide tabellen en waarop je wilt linken. Wat betreft de KISS oplossing, die is alles behalve netjes en efficient kwa MySQL queries. Ik zou hem persoonlijk ten zeerste afraden.

  7. #7
    [PHP/MySql]joins in combinatie met selectie
    geregistreerd gebruiker
    139 Berichten
    Ingeschreven
    26/07/05

    Locatie
    Hier

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: nee
    KvK nummer: nvt
    Ondernemingsnummer: nvt

    Thread Starter
    [Wedstrijden] [Toto]
    id
    datum
    tijd
    ploeg1
    ploeg2
    ruststand
    eindstand
    toto_berekend

    [Toto]
    id
    wedstrijd_id
    user_id
    uitslag
    punten

    schuin is primaire sleutel
    dik gedrukt is koppeling beide tabelen.

    Wanneer ik het zo doe is er geen probleem, behalve dat alle wedstrijden worden weer gegeven. Dus voor elke gebruiker die in de toto tabel staat.

    Ik heb dus een left join gemaakt op toto. Maar ik wil dan de selectie maken van user_id = $_COOKIE['id'] ff simpel gezegd.

    [Aantekening]

    Wat ik nu gedaan heb is dat ik de wedstrijden laat spitsen. Dus die bovenin geselecteerd worden, haal ik de id's uit en die laat ik vervolgens mij NOT IN() eruit bij de volgende query.
    Laatst gewijzigd door WinuX; 10/07/07 om 12:26. Reden: aantekening

  8. #8
    [PHP/MySql]joins in combinatie met selectie
    aktieve deelnemer
    2.782 Berichten
    Ingeschreven
    10/05/02

    Locatie
    Noordwest Holland

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: Ja
    KvK nummer: 37093085
    Ondernemingsnummer: nvt

    Code:
    SELECT wedstrijden.*, toto.* FROM wedstrijden LEFT JOIN toto ON wedstrijden.id=toto.wedstrijd_id  WHERE toto.user_id='$user';

  9. #9
    [PHP/MySql]joins in combinatie met selectie
    moderator
    4.784 Berichten
    Ingeschreven
    04/11/05

    Locatie
    Gent

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    12 Berichten zijn liked


    Registrar SIDN: ja
    KvK nummer: nvt
    Ondernemingsnummer: 0475284162

    En een selectie doen op het tweede tabel, en alles van de eerste krijgen gaat moeilijker zijn. Je kan je selectie "where user_id = 'cookiewaarde' OR user_id is null" maken, maar ik vind het niet echt proper (persoonlijke keuze).

  10. #10
    [PHP/MySql]joins in combinatie met selectie
    geregistreerd gebruiker
    4.175 Berichten
    Ingeschreven
    09/12/05

    Locatie
    Almere

    Post Thanks / Like
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)
    76 Berichten zijn liked


    Naam: Ramon Fincken
    Bedrijf: Klarned Managed Hosting / Halvar.io
    Functie: CEO
    URL: www.klarned.is
    Registrar SIDN: Nee
    KvK nummer: 30262182
    TrustCloud: ramonfincken
    View ramonfincken's profile on LinkedIn

    Citaat Oorspronkelijk geplaatst door Deimos Bekijk Berichten
    Geef eens de structuur van beide tabellen en waarop je wilt linken. Wat betreft de KISS oplossing, die is alles behalve netjes en efficient kwa MySQL queries. Ik zou hem persoonlijk ten zeerste afraden.

    Klopt, het was ook een opzetje. Omzetten naar 1 query of gewoon niet gebruiken is altijd een optie
    Klarned Managed hosting Hosting, optimalisatie & debugging door WP Core developers

  11. #11
    [PHP/MySql]joins in combinatie met selectie
    geregistreerd gebruiker
    139 Berichten
    Ingeschreven
    26/07/05

    Locatie
    Hier

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: nee
    KvK nummer: nvt
    Ondernemingsnummer: nvt

    Thread Starter
    Citaat Oorspronkelijk geplaatst door Deimos Bekijk Berichten
    Code:
    SELECT wedstrijden.*, toto.* FROM wedstrijden LEFT JOIN toto ON wedstrijden.id=toto.wedstrijd_id  WHERE toto.user_id='$user';
    Dit werkt wel, maar zit ik nog steeds dat wanneer er een wedstrijd niet word weergeven boven in als de user geen voorspelling opgeeft.

  12. #12
    [PHP/MySql]joins in combinatie met selectie
    geregistreerd gebruiker
    80 Berichten
    Ingeschreven
    02/10/06

    Locatie
    EC

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: nee
    KvK nummer: nvt
    Ondernemingsnummer: nvt

    Winux,

    in je mysql install directory heb je een doc dir als ik me niet vergis, met een zeer uitgebreid document waarin alles staat ivm queries, ook joins.

    Tevens in jouw table structuur is niet echt netjes opgezet. Je kan dit eventueel oplossen door een extra id aan temaken in Wedstrijden, en vervolgens een manier te zoeken om alle ids te updaten in die table zodat je dan dus gerust JOINS (CROSS, LEFT, INNER ect.. (Right joins niet aangeraden) kan uitvoeren.

    ik neem aan dat je westrijden.id en toto.id gewoon als index hebt staan, en dus geen reference is tussen bijden, gezien je toto.wedstrijd_id in table toto hebt staan.

    Queries zoals

    query
    while
    sub_query
    while

    Zou ik dus ten nimmer doen, a slordig, en b waarom zoveel werk doen als mysql dit alles veel sneller voor jouw kan regelen.

    Citaat Oorspronkelijk geplaatst door WinuX Bekijk Berichten
    Dit werkt wel, maar zit ik nog steeds dat wanneer er een wedstrijd niet word weergeven boven in als de user geen voorspelling opgeeft.
    Wat bedoel je daarmee ? geen user input ? , in dat geval gewoon geen query uitvoeren.
    Laatst gewijzigd door ol4pro; 11/07/07 om 17:40.

  13. #13
    [PHP/MySql]joins in combinatie met selectie
    geregistreerd gebruiker
    139 Berichten
    Ingeschreven
    26/07/05

    Locatie
    Hier

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: nee
    KvK nummer: nvt
    Ondernemingsnummer: nvt

    Thread Starter
    Ik heb het anders opgelost.
    Ik laat voor dat ik de punten ga toekennen, een query draaien die de, nog niet ingevulde voorspelling invult met een 0 waarde.

  14. #14
    [PHP/MySql]joins in combinatie met selectie
    moderator
    4.784 Berichten
    Ingeschreven
    04/11/05

    Locatie
    Gent

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    12 Berichten zijn liked


    Registrar SIDN: ja
    KvK nummer: nvt
    Ondernemingsnummer: 0475284162

    Heb jij mijn '... where (user.id = xxx OR user.id is null)' geprobeerd?

  15. #15
    [PHP/MySql]joins in combinatie met selectie
    geregistreerd gebruiker
    139 Berichten
    Ingeschreven
    26/07/05

    Locatie
    Hier

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: nee
    KvK nummer: nvt
    Ondernemingsnummer: nvt

    Thread Starter
    Ja maar die werkte niet goed, Weet niet precies wat de foutmelding was meer. Maar dit werkt zo ook.

Pagina 1 van de 2 1 2 LaatsteLaatste

Webhostingtalk.nl

Contact

  • Rokin 113-115
  • 1012 KP, Amsterdam
  • Nederland
  • Contact
© Copyright 2001-2026 Webhostingtalk.nl.
Web Statistics