meerdere gevens in mysql tabel
dit heb je ook bij txt files dat je meerdere dingen in 1 bestand kan opslaan maar kan dat ook met sql?
en hoe moet ik dit dan doen? ik kan nergens een tut vinden of een voorbeeld?
Bedankt ;)
Ik snap het niet geheel, maar waarschijnlijk heb jij een koppeltabel nodig.
Gewijzigd op 01/01/1970 01:00:00 door Bo az
ik dacht dat het tabel heete maar het is een veld sorry
Je kan PHP de gegevens laten samenvoegen. Je zet dan alles in een variabele en dan zet je die variabele in de database.
Maar ik raad het je niet aan om verschillende (soorten) gegevens in één veld op te slaan.
Geef anders wat meer uitleg en eventueel een voorbeeld. Hoe ziet je tabel eruit?
Dat zijn gewoon meerdere rijen...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
--tabel personen
id | naam
1 | Edgar
2 | Frits
--tabel vrienden
id | naam
1 | klaas
2 | jan
3 | kees
-- tabel koppelvrienden
persoonid | vriendenid
1 | 1
1 | 3
2 | 2
id | naam
1 | Edgar
2 | Frits
--tabel vrienden
id | naam
1 | klaas
2 | jan
3 | kees
-- tabel koppelvrienden
persoonid | vriendenid
1 | 1
1 | 3
2 | 2
De situatie is nu dat klaas een vriend van edgar is en kees is een vriend van edgar, ook is jan een vriend van Frits.
Ik hoop dat je zo iets bedoelde...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
--tabel members
id | naam
1 | Edgar
2 | Frits
--tabel vrienden
id | naam
1 | klaas
2 | jan
3 | kees
-- tabel koppelvrienden
persoonid | vriendenid
1 | 1,2
1 | 3,1,4
2 | 2,5,3
id | naam
1 | Edgar
2 | Frits
--tabel vrienden
id | naam
1 | klaas
2 | jan
3 | kees
-- tabel koppelvrienden
persoonid | vriendenid
1 | 1,2
1 | 3,1,4
2 | 2,5,3
ik heb het schema iets aangepast
dat je dus meer id's in 1 veld opslaat
Gewijzigd op 01/01/1970 01:00:00 door menno
maar dan krijg je wel ontzettend veel gegevens, raakt hij dan niet overbelast als er echt super veel mensen dat gaan doen? :P
ShuGos
@Boaz: vrienden zijn toch ook personen? Kortom, de namen die jij nu in de vrienden tabel hebt, kun je gewoon in de personen tabel plaatsen. In de koppeltabel komt dan gewoon twee keer een id uit de personen tabel.
Je kunt namelijk ,7 (bijv) aan het huidige veld toevoegen en updaten.
Bijv :
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$query = "SELECT * FROM koppelvrienden WHERE id=1" ;
$result = mysql_query($query)
if (mysql_num_rows>0)
{
$rij = mysql_fetch_array($result);
$rij["vriendid"] .= ",".$extra_id ;
}
else
{
$rij = mysql_fetch_array($result);
$rij["vriendid"] .= ",".$extra_id
}
//hier je update deel.
?>
$query = "SELECT * FROM koppelvrienden WHERE id=1" ;
$result = mysql_query($query)
if (mysql_num_rows>0)
{
$rij = mysql_fetch_array($result);
$rij["vriendid"] .= ",".$extra_id ;
}
else
{
$rij = mysql_fetch_array($result);
$rij["vriendid"] .= ",".$extra_id
}
//hier je update deel.
?>
Voor het uitlezen zou je eens naar de mysql functie IN kunnen kijken
Gewijzigd op 01/01/1970 01:00:00 door Jacco Engel
Op die manier voorkom je later dat je nog met php bewerkingen op je resulaten uit je database moet gaan uitvoeren. Bovendien zorg je ervoor dat je beschikking houdt over alle krachtige functies die de database jou biedt, iets dat je ondermijnt zodra je met een verkeerd datamodel aan de slag gaat.
Ik ben niet zo van advies geven. De TS heeft een vraag ik geef een oplossing. Of het dan iets is wat ik zou doen of niet laat ik meestal buiten beschouwing.
Dus waarom iemand een oplossing geven waarvan je zelf al weet dat het straks nog grotere problemen gaat geven? Nee, kies er dan gewoon voor om meteen te vermelden dat iemand hier de fout in gaat en hem een advies te geven hoe hij/zij het wel aan zou kunnen pakken.
Dit zijn toch geen oplossingen, of wel dan?
Een database is een database en gebruik die dan ook als database en vooral niet als een filesystem. Zelfs MySQL kan meer dan wat jij hier hebt verzonnen. Niet meer doen dus! ;)
menno schreef op 05.02.2007 18:59:
maar dan krijg je wel ontzettend veel gegevens, raakt hij dan niet overbelast als er echt super veel mensen dat gaan doen? :P
Juist niet, het is zelfs velen malen sneller dan jou voorbeeld. Stel dat jij 1000 leden heb die iedere 25 vrienden toegevoegd hebben. Dat zijn 2500 rijen. Toch haalt hij maar maximaal 25 vrienden op, en geen 2500...
Daarbij, Data Warehouses, 1+ Terabyte, enkele miljarden rijen, allemaal geen probleem zolang je geen SELECT * FROM uit gaat voeren...
uitvoeren?
of moet het weer anders?
sorry maar ik begin net met php en ik moet het nog beetje leren :P
Sla nooit meerder gegevens op in één veld daar is een database niet voor bedoeld. Lees eventueel eens over normaalvormen(1 tot 5, maar vaak wordt alleen 1 tot 3 gebruikt) om tot een goed datamodel te komen.
Jurgen schreef op 05.02.2007 22:25:
Sla nooit meerder gegevens op in één veld daar is een database niet voor bedoeld. Lees eventueel eens over normaalvormen(1 tot 5, maar vaak wordt alleen 1 tot 3 gebruikt) om tot een goed datamodel te komen.
Ik zou beginnen met een cursus php, daarna een cursus sql en dan maar een normaliseren ed