Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

Mysql (sql): geen records gevonden -> wat voor resultaat?

Rob van Esch
8 antwoorden
  • Hallo
    Om een gegevens uit een database te halen gebruik ik wat sql, mijn database servertje draait op mysql via apache en php.

    Het gaat om een kalender. Mijn php-script maakt automatisch van de huidige maand een kalender met verschillende evenementen erop. In de database heb wanneer er iets te beleven is een record opgenomen met de datum en een korte omschrijving van de gebeurtenis. Om de gegevens in de pagina te krijgen gebruik ik een for-lus die voor elke dag van de maand na gaat of er iets te beleven is. Voor sommige dagen staat niets in de database. Als er niets in de database staat voor een bepaalde dag krijg ik een mysql foutmelding dat $resultaat geen geldig mysql resultaat is. Ik gebruik het volgende sql:

    [code:1:3350390a07]
    $sql = "SELECT evenement FROM kalender WHERE datum='$datum'";
    $resultaat = mysql_query ($sql);
    $record = mysql_fetch_object($resultaat); // deze laatste regel geeft de foutmelding als er geen records gevonden zijn
    [/code:1:3350390a07]

    Mijn vraag is dus hoe ik kan controleren of er wel of geen resultaat is, mysql_num_rows() geeft ook een foutmelding

    Alvast bedankt Rob
  • Dan vraag ik me toch af hoe je die mysql_num_rows percies aangeroepen hebt…

    In principe moet:

    [code:1:aa690b2864]
    if(mysql_num_rows($resultaat) > 0)
    {

    }
    else
    echo "Niks gevonden.";
    [/code:1:aa690b2864]
    gewoon werken…
  • [quote:24c96b7f57="Rob van Esch"][..]
    Om de gegevens in de pagina te krijgen gebruik ik een for-lus die voor elke dag van de maand na gaat of er iets te beleven is.
    [..][/quote:24c96b7f57]Als dit betekend dat je voor elke dag van de maand een query afvuurt op de database dan lijkt me dat je dat beter op een andere (efficientere) manier aan kan pakken.
    Als ik het fout interpreteer dan heb ik niets gezegd ;)
  • Ik heb het al opgelost, had de anonieme user verwijderd uit mysql en even vergeten dat ik dat ik dan natuurlijk wel als user aan moet melden, om een database te bekijken.

    [quote:1286202606]
    Als dit betekend dat je voor elke dag van de maand een query afvuurt op de database dan lijkt me dat je dat beter op een andere (efficientere) manier aan kan pakken.
    [/quote:1286202606]

    klopt inderdaad, ik ben nu mn database server aan het testen :wink: maar ik had zelf ook al bedacht dat dat niet de juiste manier was. Ik heb al zitten denken dat ik op een of andere manier de maand uit de datum in de tabel zou moeten kunnen halen, dan kan ik 1 query maken die alles voor 1 maand uit de database haalt. En dat resultaat zou ik dan moeten doorlopen. zoiets als
    [code:1:1286202606]
    select * from kalender where datum=****-$maand-**; //maar mag dit :)
    //… en hieronder verwerking van het resultaat
    [/code:1:1286202606]

    Kan ik ook het resultaat geheel doorlopen, want met mysql_fetch_object haal ik steeds maar 1 record uit het resultaat van de query. En dat zou ik dan dus voor alle records 30 keer moeten doen, schiet niet echt op

    alvast bedankt
    Rob
  • Je moet eens in de docs van MySQL kijken naar "BETWEEN"…
  • tnx doe ik :lol:
  • [quote:8090c4cccd="Rob van Esch"]
    [code:1:8090c4cccd]
    select * from kalender where datum=****-$maand-**; //maar mag dit :) <= Nee ;)
    //… en hieronder verwerking van het resultaat
    [/code:1:8090c4cccd][/quote:8090c4cccd]Je kan wellicht ook iets doen als [code:1:8090c4cccd]
    select * from kalender where datum LIKE '%-$maand-%'; // dit mag :)
    //… en hieronder verwerking van het resultaat[/code:1:8090c4cccd]Hopelijk heb je hier wat aan…

    - Basje.
  • [quote:c823fdeead="BasHamar"][..]
    Hopelijk heb je hier wat aan… [/quote:c823fdeead]
    Let daarbij wel op dat je met deze methode (LIKE '%xx%') geen gebruik maakt van eventuele indices en dus altijd een full table scan zal uitvoeren.

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.