Velden splisten in MySQL

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Tom Van Sichem

Tom Van Sichem

22/01/2008 14:19:00
Quote Anchor link
Hallo

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!
 
PHP hulp

PHP hulp

17/11/2024 00:27:22
 
TJVB tvb

TJVB tvb

22/01/2008 14:22:00
Quote Anchor link
Voorbeeld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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 )
?>

Maar ik vraag me af hoe je data model in elkaar zit, dit ziet er namenlijk niet echt goed uit.
 
Joren de Wit

Joren de Wit

22/01/2008 14:32:00
Quote Anchor link
Het gaat al fout op het moment dat jij meerdere gegevens (id's in dit geval) in 1 veld gaat proppen! Dan kan niet, mag niet en levert zoals je nu ziet alleen maar problemen op.

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...
 
Tom Van Sichem

Tom Van Sichem

22/01/2008 14:34:00
Quote Anchor link
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...
 
Frank -

Frank -

22/01/2008 15:05:00
Quote Anchor link
R3Q schreef op 22.01.2008 14:34:
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...
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.

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!
 
Tom Van Sichem

Tom Van Sichem

22/01/2008 15:51:00
Quote Anchor link
@pgFrank: Helaas kan ik de gegevens niet importeren in MySQL, ze worden geëxporteerd vanuit de CRM (Commence RM in dit geval). Ik besef maar al te goed dat een goed opgebouwde database een noodzaak is. Meer nog: met normaliseren heb ik de nodige ervaring!

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!
 
Frank -

Frank -

22/01/2008 15:57:00
Quote Anchor link
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?
 
Tom Van Sichem

Tom Van Sichem

22/01/2008 16:13:00
Quote Anchor link
Via een ODBC-connectie gaan die data rechtstreeks naar de MySQL-database. Op die manier kan ik dan gegevens rechtstreeks op internet publiceren via onze CRM, en andersom. Dat werkt. Helaas is het soms moeilijk de beide datatypen te synchroniseren.

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!
 
Joren de Wit

Joren de Wit

22/01/2008 16:28:00
Quote Anchor link
Maar je wilt nu achteraf de data gaan bewerken. Dat kun je dan toch net zo goed vooraf doen waardoor het direct goed in de database komt te staan?

Jij kunt MySQL prima de data die via de externe verbinding binnenkomt eerst laten bewerken voordat het in de betreffende tabellen opgeslagen wordt...
 
Tom Van Sichem

Tom Van Sichem

22/01/2008 16:36:00
Quote Anchor link
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?
 
Joren de Wit

Joren de Wit

22/01/2008 16:39:00
Quote Anchor link
Zeker weten, het hangt er maar net vanaf in wat voor formaat de data aangeleverd wordt.
 
Frank -

Frank -

22/01/2008 17:10:00
Quote Anchor link
R3Q schreef op 22.01.2008 16:36:
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?
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.

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.
 
Tom Van Sichem

Tom Van Sichem

23/01/2008 08:56:00
Quote Anchor link
Mmm... dit lijkt mij alvast iets waar ik mij eens dieper in zal gaan verdiepen. Leve phphulp en leve Google! Ik ga op ontdekkingstocht.

Bedankt!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.