anoniem Geplaatst: 4 juni 2002 Delen Geplaatst: 4 juni 2002 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 Quote Link naar reactie
anoniem Geplaatst: 4 juni 2002 Auteur Delen Geplaatst: 4 juni 2002 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 Link naar reactie
anoniem Geplaatst: 4 juni 2002 Auteur Delen Geplaatst: 4 juni 2002 [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 ;) Quote Link naar reactie
anoniem Geplaatst: 5 juni 2002 Auteur Delen Geplaatst: 5 juni 2002 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 [/quote] Quote Link naar reactie
anoniem Geplaatst: 5 juni 2002 Auteur Delen Geplaatst: 5 juni 2002 Je moet eens in de docs van MySQL kijken naar "BETWEEN"... Quote Link naar reactie
anoniem Geplaatst: 5 juni 2002 Auteur Delen Geplaatst: 5 juni 2002 tnx doe ik :lol: Quote Link naar reactie
anoniem Geplaatst: 6 juni 2002 Auteur Delen Geplaatst: 6 juni 2002 [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 Link naar reactie
anoniem Geplaatst: 6 juni 2002 Auteur Delen Geplaatst: 6 juni 2002 [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. Quote Link naar reactie
anoniem Geplaatst: 6 juni 2002 Auteur Delen Geplaatst: 6 juni 2002 ik zal eens kijken wat ik ermee kan, iemand nog een idee hoe ik uit het resultaat alleen de evenementen voor de juiste dag kan halen? Alvast bedankt Rob Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen