Ik ben nieuw op dit forum en ook in de wereld van PHP en mySQL.
Ik ben dus een "groentje"...
Ik heb een leuk lopende site gemaakt waar ik momenteel een evenmenten kalender op heb staan welke ik zelf handmatig bijwerk.
Nu wil ik deze kalender automatiseren zodat de bezoekers zelf een evenement kunnen aanmaken en dat de evenementen daarna in volgorde (eerste datum eerst) worden geplaatst.
Tevens moet een evenement welke al is geweest, automatisch worden verwijderd.
Het invullen van evenement zou ik graag zien in de vorm van een standaard formulier.
Kan iemand me vertellen hoe ik te werk moet gaan? Het lieft is een beetje Jip & Janneke taal.
Mijn site is te vinden op www.oudebrommers.nl
Ik heb de code geplaatst.
Het veld rubriek bevindt zich in een andere/aparte tabel...
Dat klopt. De gegevens van de rubrieken en de organisaties halen we op uit de andere tabellen. Dat is de volgende stap die gedaan moet worden.
Zet de volgende code onder het gedeelte waar je verbinding maakt met de database. Hiermee halen we de gegevens van de rubrieken op uit de tabel 'rubrieken'.
$query_rubrieken = ("SELECT * FROM rubrieken ORDER BY rubriek ASC");
$result_rubrieken = mysql_query($query_rubrieken) or die(mysql_error());
$numrows_rubrieken = mysql_num_rows($result_rubrieken);
Even voor de duidelijkheid, ik blijf de code van Jezpur gebruiken, toch?
Dit heb ik nu wel gedaan en ik heb je wijzigingen doorgevoerd.
En alles lijkt goed te gaan.
Moet ik nog wat testen om te kijken of het nu in de database komt?
De velden 'website', 'e_mail' en 'telefoon' staan namelijk niet in de tabel 'events', maar in de tabel 'organisations'. Daarom zijn ze hier niet nodig.
Moet ik nog wat testen om te kijken of het nu in de database komt?
Ja, het eerste formulier zou nu redelijk goed moeten werken. Voer iets in in de velden 'evenement' en 'locatie' en submit het formulier. Deze gegevens behoren dan in je database terecht te komen.
Plak onderstaande code onderaan je formulier. Je moet dan de ingevoerde resultaten terugzien, direct onder je formulier. Later maken we hier een nette aparte pagina van, dit is alleen om het even te testen.
Ik heb gedaan wat je me hebt gevraagd.
Ik kan alleen nog geen evenement toevoegen. Volgens mij komt dit door het rubriek en organisatie veld. Deze kan hij niet vinden volgens mij.
Kan het komen doordat de rubriek en de organisatie ook niet in het events formulier staan opgeslagen? Want in dit formulier staat id_rubriek en id_organisatie?
Volgens mij komt dit door het rubriek en organisatie veld. Deze kan hij niet vinden volgens mij.
Klopt, mijn code bevatte een foutje. Ik had 'rubriek_ID' gebruikt, maar dat moest gewoon 'rubriek' zijn.
De namen van de velden in de tabel 'events' moeten exact overeenkomen met het volgende lijstje: ID, evenement, locatie, datum_aanvang, datum_einde, van, tot, rubriek, organisatie, info
Vervang
echo '<select name="rubriek_ID" class="input">';
door
echo '<select name="rubriek" class="input">';
Telkens als ik op f5 druk om te verversen komt bovendien de laatst toegevoegde regel er opnieuw bij.
Dat klopt, de gegevens worden dan opnieuw gepost, komt later goed.
Als ik de pagina sluit en weer opnieuw open dan zijn de evenementen onder aan de pagina overigens ook weg, maar ze staan nog wel in de database.
Da's vreemd, je hoort ze altijd te zien. Staan ze werkelijk helemaal onderaan je pagina, en niet toevallig binnen de afvraging 'of er iets gepost is'?
Dit zou het einde van je pagina kunnen zijn, hoewel ik zag dat daar ook nog wat scripts o.i.d. stonden.
[code]
</table>
Upcoming events:<br>
<?php
$query = ("SELECT * FROM events ORDER BY datum_aanvang ASC");
$result = mysql_query($query) or die(mysql_error());
A. de Kruijf schreef op 26.05.2008 18:42 Volgens mij komt dit door het rubriek en organisatie veld. Deze kan hij niet vinden volgens mij.
Klopt, mijn code bevatte een foutje. Ik had 'rubriek_ID' gebruikt, maar dat moest gewoon 'rubriek' zijn.
De namen van de velden in de tabel 'events' moeten exact overeenkomen met het volgende lijstje: ID, evenement, locatie, datum_aanvang, datum_einde, van, tot, rubriek, organisatie, info
Vervang
echo '<select name="rubriek_ID" class="input">';
door
echo '<select name="rubriek" class="input">';
dit is aangepast, ik heb even een screendump gemaakt van mijn drie tabellen hier kun je ze vinden.
Da's vreemd, je hoort ze altijd te zien. Staan ze werkelijk helemaal onderaan je pagina, en niet toevallig binnen de afvraging 'of er iets gepost is'?
Ik heb een klein foutje ontdekt, er stond namelijk een </body> en </html> code dubbel in. En nu blijft het wel staan.
Kan ik straks ook nog de opmaak van de weergave bewerken?
En kan de datum notatie anders? Nu geeft hij 00-00-0000 maar ik wil eigenlijk bijv. 08-mei-2008.
Of loop ik nu op de zaken vooruit?
Even een vraag, waarvoor dient een query? Maak ik daarmee kenbaar uit of in welke tabel hij de gegevens weg moet schrijven?
Uiteraard! Maak er maar een mooi weergave van. We gaan de code nog wel een paar keer aanpassen.
Ik werk zelf met dreamweaver en gebruik graag tabellen om een en ander netjes onder elkaar te zetten. kan ik dan de verschillende echo $row.... regels in een aparte cel plaatsen? En moet dan het stukje van while ($row...... ook telkens mee gekopieerd worden?
Voorbeeld:
Evenement:<br>
<?php
$query = ("SELECT * FROM events ORDER BY datum_aanvang ASC");
$result = mysql_query($query) or die(mysql_error());
while ($row = mysql_fetch_array($result))
{
echo $row['evenement'] . " <br> ";
}
?>
locatie:<br>
<?php
$query = ("SELECT * FROM events ORDER BY datum_aanvang ASC");
$result = mysql_query($query) or die(mysql_error());
while ($row = mysql_fetch_array($result))
{
echo $row['locatie'] . " <br> ";
}
?>
Ik werk zelf met dreamweaver en gebruik graag tabellen om een en ander netjes onder elkaar te zetten. kan ik dan de verschillende echo $row.... regels in een aparte cel plaatsen? En moet dan het stukje van while ($row...... ook telkens mee gekopieerd worden?
Het gaat er ongeveer zo uitzien:
- eerst de query uitvoeren. Met een query kun je gegevens uit je database ophalen, bewerken, bewaren en verwijderen. De query staat al op de goede plek.
- dan de tabelstart <TABLE>, etc.
- dan de while-loop beginnen:
while ($row = mysql_fetch_array($result))
{
<tr><td>Evenement:</td><td><? echo $row['evenement']; ?></td></tr>
<tr><td>Locatie:</td><td><? echo $row['locatie']; ?></td></tr>
..... rest van de gegevens ......
- dan de while-loop afsluiten
}
Misschien een goed idee om deze resultatenpagina direct in een nieuwe pagina op te bouwen, en niet onder het formulier. Dat was alleen even voor de test.