anoniem Geplaatst: 20 januari 2005 Delen Geplaatst: 20 januari 2005 Hallo, Het onderwerp zeg het eigenlijk al, kan ik een view maken in mysql. Ik weet dat de optie view er nog niet in zit, maar kan het dat op een andere manier. Met behup van een table of een tekstfile. Het maakt me allemaal niet uit. [extra info] Wil een kalender maken voor een vrienden voetbalteam. Daarin moeten de wedstrijden komen die ik van de knvbsite haal en in een table zet en verjaardagen (dus de data die in m'n spelerstabel staat) en dan nog dingen die iedereen zelf kan toevoegen [/extra info] Quote Link naar reactie
anoniem Geplaatst: 20 januari 2005 Auteur Delen Geplaatst: 20 januari 2005 Waarom zou het een view moeten zijn? Is het niet mogelijk om via een query met één (of meerdere) joins de gegevens op te halen? Quote Link naar reactie
anoniem Geplaatst: 20 januari 2005 Auteur Delen Geplaatst: 20 januari 2005 eh via een union zou het kunnen, maar dan kan ik niet sorteren op datum (tenminste niet dat ik weet) en een join gaat ook niet echt omdat er geen relatie tussen de tabellen zit. Of ik moet het verkeerd begrepen hebben hoor. Quote Link naar reactie
anoniem Geplaatst: 20 januari 2005 Auteur Delen Geplaatst: 20 januari 2005 Waarom zou je niet kunnen sorteren op datum? het hangt natuurlijk een beetje van je tabelopbouw af, maar ik stel zoiets voor: [b:fb4586bede]agenda[/b:fb4586bede] id, item_id, datum_van, datum_tot Als je dan alle items tussen een begin- en einddatum wil hebben, zoals bij een kalender dan doe je zoiets: [code:1:fb4586bede] SELECT * FROM agenda WHERE ( (datum_van BETWEEN '$start_date' AND '$end_date') OR (datum_tot BETWEEN '$start_date' AND '$end_date') OR (datum_van < '$start_date' AND datum_tot > '$end_date') ) ORDER BY datum_van [/code:1:fb4586bede] met eventueel een join naar de item_id niet getest, is meer voor het idee Quote Link naar reactie
anoniem Geplaatst: 20 januari 2005 Auteur Delen Geplaatst: 20 januari 2005 Ja maar hoe kan ik daar dan de geboortedatums van de spelers en de knvbwedstrijden die in een aparte tabel moeten in joinen? Quote Link naar reactie
anoniem Geplaatst: 21 januari 2005 Auteur Delen Geplaatst: 21 januari 2005 het zou eventueel kunnen door een hoop extra OR's waar je kijkt naar de dag en maand van de verjaardag, maar handiger lijkt mij om hier een 2e query voor te maken. Quote Link naar reactie
anoniem Geplaatst: 21 januari 2005 Auteur Delen Geplaatst: 21 januari 2005 Hoe bedoel je een 2e query, dat je 2 kalenders krijgt, of op een andere manier? Quote Link naar reactie
anoniem Geplaatst: 22 januari 2005 Auteur Delen Geplaatst: 22 januari 2005 Je hoeft niet alles in 1 query te doen. Je kunt meerdere queries maken naar de database, de resultaten van die queries bewaren in een array, en dan die array gebruiken om 1 kalender te maken. Of je zet de verjaardagen voor de komende 20 jaar in de agenda als agendapunt, dat is wat minder mooi, maar wel makkelijker. Quote Link naar reactie
anoniem Geplaatst: 22 januari 2005 Auteur Delen Geplaatst: 22 januari 2005 Misschien wat domme opmerkingingen... Je hebt in 1 tabel de data met die wedstrijden en in een 2e de data van de verjaardagen. Eventueel kan je ook alles in 1 tabel flikkeren, dus heb je alles of in 1 of in 2 tabellen, met als grote gemene deler de datums van alles. Als je het in 2 tabellen doe kijk je gewoon in beide tabellen of die datum voorkomt. Heb je alles in 1 tabel, laat je gewoon de datum (bijvoorbeeld) 1 maand voorbijrennen en heb je alle data met gegevens van je wedstrijden, geboortedata en toevoegingen in 1 keer op je scherm. De datum maak je mmdd als decimal 4,0 en je hebt alles netjes geordend in 1 tabel Je print dit op je scherm met bijvoorbeeld een keuze van maand en jaar et voila Quote Link naar reactie
anoniem Geplaatst: 22 januari 2005 Auteur Delen Geplaatst: 22 januari 2005 Opmerkingen zijn natuurlijk nooit dom (nou ja zolang het on subject is dan) en altijd welkom. Echter volg ik het nog niet helemaal. Ten eerste heb ik het probleem dat het niet in 1 tabel kan omdat ik automatisch de wedstrijden van de knvb site haal en die netjes in een tabel worden gezet. Om hierbij dubbelen te voorkomen en het niet al te lang te laten duren leegt het script de tabel voordat hij de gegevens van de knvb site haalt. Daarom moet ik dus voor de 2 of liever 3 tabellen gaan. Wat ik begrijp uit het ideee is dat ik een soort loop voor elke dag/maand maak door die tabellen heen en dan kijkt of er wat voorkomt. Als ik dit goed heb, vraag ik me meteen af of dat dan niet heel zwaar(qua tijd) wordt. Het idee van de array ga ik nog even mee spelen. Vond die dingen op school altijd een verschrikking, dus ben benieuwd :D Quote Link naar reactie
anoniem Geplaatst: 24 januari 2005 Auteur Delen Geplaatst: 24 januari 2005 Kan iemand mij een beetje in de goede weg helpen met die array's. :lol: Ik heb nu het volgende gedaan: [code:1:9b88b3b248] $qry_verjaardagen = "SELECT SpelerVoornaam, SpelerGebdatum FROM Spelers"; $dts_verjaardagen = mysql_query($qry_verjaardagen) or die(mysql_error()); $row_verjaardagen = mysql_fetch_array($dts_verjaardagen); $qry_kalender = "SELECT AgendaItem, AgendaDatum FROM Agenda"; $dts_kalender = mysql_query($qry_kalender) or die(mysql_error()); $row_kalender = mysql_fetch_array($dts_kalender); $new_array = array_merge($row_verjaardagen, $row_kalender); $length = count($new_array); for($i=0;$i<=$length;$i++) { echo $new_array[0]." ".$new_array[1]."<br />"; next($new_array); } [/code:1:9b88b3b248] maar dit geeft alleen het eerste record uit de eerste query 8 keer weer. de eerste query heeft 19 rijen en de 2e 17 rijen. Hoe komt ie op die 8 en waarom loopt ie niet verder. Quote Link naar reactie
anoniem Geplaatst: 24 januari 2005 Auteur Delen Geplaatst: 24 januari 2005 je zegt het zelf al, mysql_fetch_array() geeft alleen de eerste rij dus je moet dat in een loop aanroepen om alles uit de database te halen: kijk maar eens op http://nl2.php.net/manual/en/function.mysql-fetch-array.php wat je natuurlijk altijd moet doen als een functie niet doet wat je verwacht. Je hoeft trouwens ook niet perse mysql_fetch_array te gebruiken.. hoe ik het bedoel is ongeveer zo: - nieuwe array maken - query om alle afspraken uit de agenda te halen - loop door het resultaat en zet alles in de gemaakte array - query op voetbal data - loop door het resultaat en zet alles in de gemaakte array - gebruik de array om een kalender te maken. Hoe je een en ander in de array zet hangt een beetje af van de hoeveelheid items, maar je zou bijvoorbeeld de datum kunnen gebruiken om de array op te bouwen. array[jaar][maand][dag] = 'info' dus dan deel je van alle afspraken de datum (en eventueel tijd) in stukjes en gebruik je die datum voor de opbouw. Als je dan de kalender opbouwt kun je in die array kijken of er op een bepaalde datum een (of meerdere) items valt. Of je maakt er 1 grote array van: array[datum] = 'info' Zelfde idee, maar dan iets anders.. Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen