Velden splisten in MySQL
Ik vroeg me af of het mogelijk is de inhoud v/e veld in MySQL 'op te splitsen'? Ik verduidelijk even: in m'n database staat een veld (id) met volgende gegevens 500689-00000093, 500689-00000268... 601250-00000093, 601250-01005388... enzoverder.
Graag zou ik nu in php deze id's splitsen. Omdat ik vanuit een computerprogramma hier op kantoor exporteer naar MySQL, zijn mijn mogelijkheden beperkt. Het meeste werk zou dus moeten gebeuren in MySQL en php zélf.
Ik hoop dat ik wat duidelijk ben? Weet iemand of dit überhaupt mogelijk is?
Alvast merci!
Code (php)
1
2
3
4
5
2
3
4
5
<?php
//$jedata is de data die je wilt splitsen
$a_id = explode(',',$jedata);
//$a_id is nu een array met alle id's ( 500689-00000093 )
?>
//$jedata is de data die je wilt splitsen
$a_id = explode(',',$jedata);
//$a_id is nu een array met alle id's ( 500689-00000093 )
?>
Maar ik vraag me af hoe je data model in elkaar zit, dit ziet er namenlijk niet echt goed uit.
Voor elk uniek gegeven maak je een nieuwe rij aan in je tabel. Op die manier kun je gegevens ook afzonderlijk van elkaar benaderen. Wat jij zou moeten doen is terug gaan naar de tekentafel en je datamodel normaliseren. Pas als je een goed genormaliseerd datamodel over hebt, kun je verder met je systeem...
Bedankt voor je snelle reactie TJVB. Om op de opmerking te reageren: alle data komt rechtstreeks vanuit ons CRM pakket hier op kantoor. Die gegevens kan ik helaas niet bewerken alvorens deze te exporteren. Er zit dus niks anders op dan mijn database, en bij uitbreiding de php, al het werk te laten doen. Je hebt gelijk als je zegt dat dit idd niet de meest mooie oplossing is! Helaas...
R3Q schreef op 22.01.2008 14:34:
Exporteren is wat anders dan importeren! En het gaat fout bij het importeren in jouw database, daar 'vergeet' jij de boel in een goed datamodel te gieten.Bedankt voor je snelle reactie TJVB. Om op de opmerking te reageren: alle data komt rechtstreeks vanuit ons CRM pakket hier op kantoor. Die gegevens kan ik helaas niet bewerken alvorens deze te exporteren. Er zit dus niks anders op dan mijn database, en bij uitbreiding de php, al het werk te laten doen. Je hebt gelijk als je zegt dat dit idd niet de meest mooie oplossing is! Helaas...
Al krijg jij de boel per postduif aangeleverd, jij zult de data altijd op de juiste manier in jouw database moeten opslaan. Doe je dat niet, sta dan niet gek te kijken dat jouw systeem niet of slechts met veel pijn en moeite gaat werken.
Ga dus eerst normaliseren, dan de importmodule opbouwen en vervolgens is jouw huidige probleem als sneeuw voor de zon verdwenen. Vele andere problemen zullen ook ineens verdwijnen, een goed datamodel voorkomt namelijk een hoop ellende.
Kortom, terug naar de tekentafel!
Als ik wat meer controle had over de data, had ik de vraag sowieso niet moeten stellen, want dan had ik er wel voor gezorgd dat m'n gegevens hierboven gescheiden werden opgeslagen. Dat is 't 'em net...
Niettemin bedankt voor bericht!
Ik vat hem even niet: Je exporteert de gegevens uit je CRM, dat is duidelijk, maar wat doe je vervolgens met dit export-bestand? Wordt dat niet in een andere database ingelezen?
Nu, uiteindelijk zal het wel lukken. Als ik m'n gezond verstand gebruik kom ik er wel uit. Ik ben nu al een heel eind!
Jij kunt MySQL prima de data die via de externe verbinding binnenkomt eerst laten bewerken voordat het in de betreffende tabellen opgeslagen wordt...
Ola, daar heb ik nog niet van gehoord! Het is dus mogelijk dat mijn data 'gesplitst' wordt door MySQL alvorens het daadwerkelijk in de database wordt weggeschreven?
Zeker weten, het hangt er maar net vanaf in wat voor formaat de data aangeleverd wordt.
R3Q schreef op 22.01.2008 16:36:
Jij laat MySQL rechtstreeks, dus zonder tussenkomst van PHP of een ander programma, data uit een andere database halen? Dan zul je met stored procedures de opgehaalde data moeten gaan splitsen en in de juiste tabellen laten wegschrijven.Ola, daar heb ik nog niet van gehoord! Het is dus mogelijk dat mijn data 'gesplitst' wordt door MySQL alvorens het daadwerkelijk in de database wordt weggeschreven?
Wanneer je eerst met PHP de data ophaalt uit database 1 en dat vervolgens in de MySQL-database gaat wegschrijven, dan laat je PHP de boel opsplitsen.
Bedankt!