mysql - rij splitsen op een veld
ik heb een probleem: in een database heb ik per rij aangegeven uit welk land een bepaald item afkomstig is. Dit doe ik door in het veld `oorsprong` de waarde 'DE/UK' weer te geven (dit item is dus afkomstig uit Duitsland en Engeland).
Nu wil ik graag alle items individueel weergeven; ik wil dus alle rijen in mijn database bij langs om elke rij die een `origin` veld heeft met meerdere waarden te splitsen (zie voorbeeld). Alle overige data moet dus blijven staan.
Ter illustratie:
Huidige situatie:
id1 - item1 - DE/UK
----------------------------------------
Nieuwe gewenste situatie :
id1 - item1 - DE
id2 - item1 - UK
iemand die mij op weg kan helpen? Ik kan geen logische manier bedenken om dit voor elkaar te krijgen!
Als je toch op deze weg verder wenst te gaan, moet je je query-resultaat gaan bewerken met php met de functie explode()
Dat is op zich een goede oplossing, maar het h-woord, daar houd ik niet zo van!
Dat handwerk (waar je ook eenmalig een scriptje voor kunt maken, indien het veel record betreft) weegt al snel op tegen het ingewikkelde scriptwerk wat je je nu op de hals wilt halen. En ook voor uitbreidingen in de toekomst zul je dit telkens weer tegen gaan komen...
Quote:
Veel succes toegewenst!Ik wil op deze weg verder.
1 veld = 1 waarde
Maar ja, jij zult het wel beter weten dan die vele miljoenen dba's en uiterst intelligente wiskundigen...
Sterkte!
Ps. Mocht je toch iets verder kijken dan je neus lang is, wellicht is deze tutorial handig.
Gewijzigd op 01/01/1970 01:00:00 door Frank -
pgFrank schreef op 01.08.2007 13:49:
1 veld = 1 waarde
Maar ja, jij zult het wel beter weten dan die vele miljoenen dba's en uiterst intelligente wiskundigen...
Sterkte!
Ps. Mocht je toch iets verder kijken dan je neus lang is, wellicht is deze tutorial handig.
Quote:
Veel succes toegewenst!Ik wil op deze weg verder.
1 veld = 1 waarde
Maar ja, jij zult het wel beter weten dan die vele miljoenen dba's en uiterst intelligente wiskundigen...
Sterkte!
Ps. Mocht je toch iets verder kijken dan je neus lang is, wellicht is deze tutorial handig.
LEES JIJ WEL WAT IK VRAAG?
altijd die bijdehante figuren die overal forums lopen te verpesten met hun commentaar. Als dit soort bijdrages jouw norm zijn, dan is het geen wonder dat je 4000+ posts op je naam hebt staan!
En ga me A.U.B. niets vertellen over normalisatie. Dat heeft er namelijk niet echt wat mee te maken! Nogmaals: LEZEN!
[/frustratie]
ik pretendeer nergens dat ik het beter weet dan wie dan ook, ik heb alleen een probleem met een (1) veld in mijn tabel die in 4 jaar tijd door diverse gebruikers in een klein aantal gevallen (+/- 100 rijen op een totaal van 5000) verkeerd gevuld is. Inmiddels kan dit niet meer, ik heb een simpele regex toevoegd die het betreffende veld controleert op ingevoerde data, maar daarmeer blijft het probleem van de oude records bestaan.
Daar wil ik nu dus wat aan gaan doen, door de gemaakte fouten geautomatiseerd te herstellen, in plaats van het handmatig allemaal te bewerken. Daar zoek ik dus een oplossing voor.
tineau schreef op 02.08.2007 12:46:
LEES JIJ WEL WAT IK VRAAG?
altijd die bijdehante figuren die overal forums lopen te verpesten met hun commentaar. Als dit soort bijdrages jouw norm zijn, dan is het geen wonder dat je 4000+ posts op je naam hebt staan!
En ga me A.U.B. niets vertellen over normalisatie. Dat heeft er namelijk niet echt wat mee te maken! Nogmaals: LEZEN!
[/frustratie]
ik pretendeer nergens dat ik het beter weet dan wie dan ook, ik heb alleen een probleem met een (1) veld in mijn tabel die in 4 jaar tijd door diverse gebruikers in een klein aantal gevallen (+/- 100 rijen op een totaal van 5000) verkeerd gevuld is. Inmiddels kan dit niet meer, ik heb een simpele regex toevoegd die het betreffende veld controleert op ingevoerde data, maar daarmeer blijft het probleem van de oude records bestaan.
Daar wil ik nu dus wat aan gaan doen, door de gemaakte fouten geautomatiseerd te herstellen, in plaats van het handmatig allemaal te bewerken. Daar zoek ik dus een oplossing voor.
pgFrank schreef op 01.08.2007 13:49:
1 veld = 1 waarde
Maar ja, jij zult het wel beter weten dan die vele miljoenen dba's en uiterst intelligente wiskundigen...
Sterkte!
Ps. Mocht je toch iets verder kijken dan je neus lang is, wellicht is deze tutorial handig.
Quote:
Veel succes toegewenst!Ik wil op deze weg verder.
1 veld = 1 waarde
Maar ja, jij zult het wel beter weten dan die vele miljoenen dba's en uiterst intelligente wiskundigen...
Sterkte!
Ps. Mocht je toch iets verder kijken dan je neus lang is, wellicht is deze tutorial handig.
LEES JIJ WEL WAT IK VRAAG?
altijd die bijdehante figuren die overal forums lopen te verpesten met hun commentaar. Als dit soort bijdrages jouw norm zijn, dan is het geen wonder dat je 4000+ posts op je naam hebt staan!
En ga me A.U.B. niets vertellen over normalisatie. Dat heeft er namelijk niet echt wat mee te maken! Nogmaals: LEZEN!
[/frustratie]
ik pretendeer nergens dat ik het beter weet dan wie dan ook, ik heb alleen een probleem met een (1) veld in mijn tabel die in 4 jaar tijd door diverse gebruikers in een klein aantal gevallen (+/- 100 rijen op een totaal van 5000) verkeerd gevuld is. Inmiddels kan dit niet meer, ik heb een simpele regex toevoegd die het betreffende veld controleert op ingevoerde data, maar daarmeer blijft het probleem van de oude records bestaan.
Daar wil ik nu dus wat aan gaan doen, door de gemaakte fouten geautomatiseerd te herstellen, in plaats van het handmatig allemaal te bewerken. Daar zoek ik dus een oplossing voor.
Als Frank je verteld dat je verkeerd bezig bent kan je dat wel aannemen, vooral op database gebied hoef je hem niet zo snel tegen te spreken. Zoals ik het zie is het toch wel één van de experts op dit forum op dit gebied.
Kan me ook wel voorstellen dat je er lichtelijk gefrustreerd van raakt maar hij probeert je alleen maar te helpen ( de goeie weg bedoel ik dan ).
- tabel rij voor rij uitlezen
- voor elke rij het veld 'oorsprong' explode("/",$row['oorsprong'])
- als het aantal waarden in de array groter is dan 1, dan de huidige rij bijwerken en vanaf tweede item een nieuwe regel inserten in de database.
Gewijzigd op 01/01/1970 01:00:00 door Josh
Quote:
Huidige situatie:
id1 - item1 - DE/UK
----------------------------------------
Nieuwe gewenste situatie :
id1 - item1 - DE
id2 - item1 - UK
id1 - item1 - DE/UK
----------------------------------------
Nieuwe gewenste situatie :
id1 - item1 - DE
id2 - item1 - UK
Ik denk dat je met wat if'jes en regex een heel end moet komen, maar je krijgt dan een omslachtig iets, als het uberhaubt lukt.
PHPhulp was altijd een vriendelijke community, waar niet zoals op tweakers of phpfreakz gelijk `RTFM` of `ik heb net op google gekeken en de eerste tien zoekresultaten zijn van toepassing op jou probleem` geroepen wordt, en in dat opzicht vind ik dus dat phphulp er wel enigzins op achteruit gaat.
PS: Je kan ook elke post positief bekijken en niet alles meteen zo persoonlijk opvatten ;-)
Frank heeft inderdaad altijd gelijk op DB gebied (ik heb nog nooit anders gezien)..
En het is toch juist goed dat we zo reageren? Als we dat niet deden, loop jij later misschien vast en dan denk je: Waarom hebben ze me dat niet eerder verteld?