Hallo,
Ik ben echt een leek op PHP gebied (nee hé niet weer één) maar heb toch een vraag.
Ik heb een script waar leden op een wielerforum een tijd kunnen invullen hoelang ze over een beklimming van een berg doen. Tot hier gaat het allemaal goed :-)
Maar ik zou graag die tijden (als beheerder) evt bij een foute invoer willen verwijderen of aanpassen.
Cees, om je verder te kunnen helpen is het van belang dat we weten of je die tijden wegschrijft naar MySQL of naar een bestandje.
Verder is het dan ook handig om te weten hoe je database of bestand er (qua indeling) uit ziet.
Je kunt met een mysql query de entries uit je database aanpassen of verwijderen.
verwijderen:
DELETE FROM tabel
WHERE id = 'id van foute tijd'
aanpassen:
UPDATE tabel
SET tijd = 'nieuwe tijd'
WHERE id = 'id van foute tijd'
Dan nog wat opmerkingen over je script: zorg altijd voor foutafhandeling. Jij gaat er bijvoorbeeld vanuit dat elke query zomaar lukt, maar de praktijk leert dat dat niet altijd waar is.
Daarnaast hoop ik dat je in je database wel de juiste veldtypen gebruikt. Een tijd heb je hopelijk opgeslagen in een TIME veld?
Daarnaast hoop ik dat je in je database wel de juiste veldtypen gebruikt. Een tijd heb je hopelijk opgeslagen in een TIME veld?
Dat denk ik niet als ik zijn script bekijk.
3 velden voor de datum.
het datumveld zou je in je database van het type DATETIME / DATE moeten zijn.
dan kan je de huidige tijd in de database opslaan als NOW() <- output hiervan is dan: 0000-00-00 00:00:00 ( alleen staat hier dan jou systeemtijd + datum ).
dan kan je de huidige tijd in de database opslaan als NOW() <- output hiervan is dan: 0000-00-00 00:00:00 ( alleen staat hier dan jou systeemtijd + datum ).
Met NOW() zet je de datum/tijd van de databaseserver in de database. Wanneer de databaseserver jouw eigen pc is, dan is het inderdaad de systeemtijd + datum van jouw pc (= server).
Dat denk ik niet als ik zijn script bekijk. 3 velden voor de datum.
Ja ok, maar als je ze met php eerst in de goede volgorde aan elkaar plakt en dan insert in mysql in een date veld, is er niets aan de hand. MySQL is bij het invoeren van data/tijden vrij vriendelijk wat betreft het formaat waarin je iets invoert. Als de datum maar in het yyyy-mm-dd formaat staat, accepteert mysql vrij veel verschillende scheidingstekens.
Daarnaast is in dit geval de datum en de tijd geen combinatie, en hoort dus niet in een datetime veld. Op een bepaalde datum is namelijk een bepaalde tijd gedaan over een beklimming. Dit is ook de reden waarom het gebruik NOW() op dit punt geen optie is.
Maar die tijd zou ik toch echt opslaan in een TIME veld in je database. Doe je dit niet dan is het straks ook niet mogelijk om berekeningen uit te voeren, te sorteren etc.
Sla je het wel op in een TIME veld, dan kun je bijvoorbeeld alles sorteren om te zien wie de snelste tijd heeft, verschillen tussen 2 tijden berekenen, gemiddeldes uitrekenen etc. Dat zijn toch wel leuke cijfers voor op een wielerforum.
Sorteren doet hij nu op tijd, dus de snelste tijd staat bovenaan de lijst zie : http://www.wielertoerist.nl/index.php?pag=helling&id=4 Verder hoeft hij met dit script niks te doen.
Daar heb ik verder ook geen problemen mee :-), weet alleen niet hoe je tijden en opmerkingen moet verwijderen en wijzigen :-(