Ik heb een database met daarin een lijst met email naw gegevens incl email adresse.
Nu is het zo dat er een aantal email adressen in de lijst zijn waar bv geen @ of .nl/com enzl achter staat. Ik heb iets nodig dat de gehele database doorloopt en checkt of de email adressen kloppen. Zou iemand me hier mee kunnen helpen alvast bedankt!
Eigenlijk niet. De database is veel beter in het controleren van zijn velden dan PHP.
edit:
Als je er van wil leren zou ik eerst maar eens in basisfuncties gaan verdiepen zoals eenvoudige tellers, en als dat lukt iets van nieuwsystemen gevolgd door loginsystemen.
Als je dat allemaal snapt komt je hier moeiteloos uit denk ik zo. mijn code dat ik gemaakt hebt(Niet getest!) heb ik zo ff in 2 minuten getypt.
@Willem-Aart: Hoezo omgekeerde wereld? Jij wilt toch een emailadres opslaan, of niet dan? Sla dit dan op in een kolom van het datatype 'emailaddress'.
Waarom roep je met een datum wel dat je dit in een DATE moet opslaan en niet in een VARCHAR, maar zeg je met een emailadres dat dit gewoon in een VARCHAR moet komen? Dát lijkt mij pas de omgekeerde wereld.
Dat jij zelf een datatype aanmaakt, doet niets af aan de vorm van de data. Zo zou je bv. ook een datatype 'postcode_nl' kunnen maken om nederlandse postcodes in op te slaan. Je weet dan 100% zeker dat daar een code in komt te staan die valide is. Of de postcode bestaat is een ander verhaal, dát is een check die je elders uitvoert, dat heeft namelijk niets te maken met het datatype.
Voordeel is ook dat wanneer meerdere systemen van dezelfde database gebruik maken, er helemaal niemand is die corrupte data in de database kan wegschrijven. Een emailaddress is een emailaddress en een postcode_nl is een postcode_nl. Ongeacht wat de programmeurs van de diverse systemen in gedachten hebben.
Eigenlijk niet. De database is veel beter in het controleren van zijn velden dan PHP.
edit:
Als je er van wil leren zou ik eerst maar eens in basisfuncties gaan verdiepen zoals eenvoudige tellers, en als dat lukt iets van nieuwsystemen gevolgd door loginsystemen.
Als je dat allemaal snapt komt je hier moeiteloos uit denk ik zo. mijn code dat ik gemaakt hebt(Niet getest!) heb ik zo ff in 2 minuten getypt.
Oke begrijp ik maar ik zou wel willen weten hoe ik mijn mysql dmv een query moet zeggen dat hij velden met niet corecte email adressen moet selecteren.
Ik gebruik normaal ook query's om dit soort dingen te doen, maar in dit geval weet ik geen andere oplossing.
Mijn script geeft een deelse oplossing dit is PHPhulp en niet PHPkauwmijcodevoor dus zou je zelf ook wel beetje moeten gaan stoeien met de code.
ja dat snap ik ook, ik waardeer het ook enorm dat jij/jullie me gehoplen heb(ben).
Maar uiteindelijk heb ik toch door zoeken en zelf coden een oplossing gevonden. (uiteraard met jullie hulp) En ik heb ook echt lang met codes geklooid geoof me haha.
En jij zegt uiteindelijk dat wat ik gemaakt heb een "lelijke oplossing" is. Dan maak je mij en misschien andere die deze post lezen natuurlijk nieuwschierig naar jouw oplossing. En van jouw oplossing kan ik en misschien andere leren.
@Mr D: Je kunt in MySQL geen constraint aanmaken die bij het invoeren van data automatisch checkt of de data wel bv. een emailadres is.
Het is weinig zinvol om eerst een query naar de database te sturen die controleert of de input correct is en op basis van dit resultaat een andere query naar de database sturen om de data ook op te gaan slaan. Wanneer je het op deze manier aanpakt, ben je wel verplicht om een functie in MySQL te schrijven (geen probleem, ik doe in PostgreSQL niet anders) maar desondanks blijft het erg eenvoudig om de data te vernaggelen. Je kunt namelijk altijd met een INSERT INTO de hele boel om zeep helpen. Dat is in PostgreSQL met het gebruik van een check-constraint onmogelijk.
PostgreSQL is dus in staat om de data op de juiste manier te beschermen. En dat is precies wat je verwacht van een dbms!