hoe add ik genummerde columns?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Oracle ontwikkelaar met PL/SQL en APEX in de regio

Bedrijfsomschrijving Het havengebied rondom Rotterdam biedt veel uitdagende projecten binnen o.a. container mangement, douane en warehousing. Deze organisatie biedt juist op dergelijke segmenten ICT-oplossingen van grote kwaliteit. Deze organisatie kenmerkt zich als een fullservice softwarehuis dat verantwoordelijk is voor zowel het bepalen van de informatie behoeftes bij klanten, inhouse software ontwikkeling en de implementatie van deze software. Dit doen ze inmiddels al een zeer geruime tijd voor voornamelijk klanten binnen de logistieke sector. Binnen de logistieke sector hebben ze inmiddels een imposant klantenbestand opgebouwd wat optimaal bediend wordt. Denk hierbij aan bijvoorbeeld grote vervoers/transportmaatschappijen. De organisatie is zeer goed bereikbaar

Bekijk vacature »

Koos jansen

koos jansen

21/02/2012 20:27:45
Quote Anchor link
Hoi,
Ik heb een mysql tafel met de volgende structuur:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
invoer1onderdeel1
invoer1onderdeel1eigenschap1
invoer1onderdeel1aspect1
invoer1onderdeel1aspect1eigenschap1

invoer2onderdeel1
invoer2onderdeel1eigenschap1
invoer2onderdeel1aspect1
invoer2onderdeel1aspect1eigenschap1

..
etc


Dit is bedoeld als digitaal formulier dat moet worden ingevuld, en in dat formulier zitten plusjes voor het toevoegen van optionele extra gegevens.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
+ Wilt u nog een invoer1onderdeel opgeven?
+ wilt u nog een invoer1onderdeel1aspect opgeven?

..
etc


Een entry toevoegen weet ik,
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
ALTER TABLE `tafel1` ADD `invoer1onderdeel1aspect2` VARCHAR( 21 ) NOT NULL AFTER `invoer1onderdeel1aspect1eigenschap1`


maar wat ik nodig heb is dat als iemand bijvoorbeeld een volgend invoer1onderdeel wil toevoegen,
dat het script dan eerst kijkt welk onderdeelnummer er achter moet (bestaat onderdeel10 bv al of is 1 de laatste?)
en daarna waar het achter moet:
invoer1onderdeel1aspect1eigenschap1 (is dit de laatste eigenschap of is er mischien een eigenschap20?)
en vervolgens toe voegt wat nodig is
voeg toe:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
invoer1onderdeel2
invoer1onderdeel2eigenschap1
invoer1onderdeel2aspect1
invoer1onderdeel2aspect1eigenschap1


(zit er trouwens een maximum aan het aantal columns dat in ee tafel kan zitten? via een createtable script kan ik maximaal 40 columns adden, via phpmyadmin meer (op het moment zon 230), de bedoeling is dat het uiteindelijk toch minstens 5000 worden.))
 
PHP hulp

PHP hulp

19/01/2022 15:51:49
 
- Ariën -
Beheerder

- Ariën -

21/02/2012 20:37:17
Quote Anchor link
Dit ziet er heel slecht uit.

Verdiep je eens in database-normalisatie.
Je moet database, tabellen, kolommen en velden nooit afhnkelijk maken van een aantal ervan.

Wat je nu hebt kan de vuilnisbak in.
Gewijzigd op 21/02/2012 20:38:03 door - Ariën -
 
- Jim  -

- Jim -

21/02/2012 20:42:59
Quote Anchor link
- Aar - op 21/02/2012 20:37:17:
Dit ziet er heel slecht uit.

Verdiep je eens in database-normalisatie.
Je moet database, tabellen, kolommen en velden nooit afhnkelijk maken van een aantal ervan.

Wat je nu hebt kan de vuilnisbak in.


Niet horizontaal, maar verticaal denken... :p
 
Koos jansen

koos jansen

21/02/2012 21:22:19
Quote Anchor link
Ik heb de wiki pagina even doorgelezen maar voor zover het op mijn situatie van toepassing is, is het volgens mij niet bruikbaar omdat er dan onwijs veel tafels worden aangemaakt die allemaal geopend moeten worden zodra iemand er een totaaloverzicht van opvraagt (en dat is de hoofdpagina).

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
fruit1 = appel
fruit1eigenschap1 = rond
fruit1kleur1 = rood
fruit1kleur2 = groen


en als iemand daar nog een eigenschap bij weet te verziennen moet hij daar dus
fruit1eigenschap2 = zoetzuur
of
fruit1eigenschap3 = vitaminerijk
oid aan toe kunnen voegen.

om nu per mogelijke fruitsoort een nieuwe tafel aan te maken en vervolgens bij de volgende vraag:
groente1 ..
hetzelfde met alle groentjes
etc te doen lijkt mij niet practisch.

De pagina waar ik mee bezig ben is een demo pagina die mocht deze aanslaan, door echte webpagedesigners word overgeschreven. Als zodanig kan ik mij slordige of niet reguliere werkwijzes veroorloven.
Is het uberhaubt mogelijk om een script die nummers te laten identificeren en ze correct aan te vullen?
 
- SanThe -

- SanThe -

21/02/2012 21:29:54
 
Koos jansen

koos jansen

21/02/2012 21:30:34
Quote Anchor link
Er zijn zegmaar 80 niet optionele vragen
en iedere vraag heeft ten minste 2 subvragen
iedere subvraag heeft een onbeperkt aantal antwoorden.


Toevoeging op 21/02/2012 21:45:18:

dat zijn dan dus minstens 240 x $query = "INSERT INTO tafelx VALUES ('',..
per keer dat iemand zon formulier invult.

maaruh.. even los van wat hoort of netjes is.

Kan het?

Toevoeging op 21/02/2012 21:54:09:

ik limiteer het wel tot max 10 en doe het lekker met de hand .
Gefixed :D
tnx ieders:D
Gewijzigd op 21/02/2012 21:45:51 door koos jansen
 
Wouter J

Wouter J

21/02/2012 21:56:36
Quote Anchor link
Vragen hoefen niet per se allemaal een eigen tabel te krijgen en een antwoord kan gewoon worden opgeslagen in een cel.
Gewijzigd op 21/02/2012 21:56:54 door Wouter J
 
Koos jansen

koos jansen

21/02/2012 22:10:24
Quote Anchor link
maar ik begrijp dat mij geadviseerd word om die dingen die kunnen expanden, bv
onderwerp1eigenschap1
onderwerp1eigenschap2
onderwerp1eigenschap3
..
een eigen tabel te geven.
tabel onderwerp1
id 1 = eigenschap1
id 2 = eigenschap2 etc

om op die manier onbeperkt te kunnen uitbreiden.

het probleem is echter dat ook dat weer moet kunnen expanden
onderwerp1eigenschap1deeleigenschap1
onderwerp1eigenschap1deeleigenschap2
onderwerp1eigenschap1deeleigenschap3
..
etc
dus dan moet niet onderwerp een tabel zijn,
maar onderwerp1eigenschap1 moet dan een tabel zijn met
id 1 = onderwerp1eigenschap1deeleigenschap1
id 2 = onderwerp1eigenschap1deeleigenschap2
etc

dat zijn dus extreem veel tabellen.
en die worden allemaal aangesproken bij het toevoegen of benaderen van de info.

tevens is niet uitgesloten dat uiteindelijk bepaalde deeleigenschappen, ook weer deeleigenschappen toegewezen gaan krijgen, en dat dit pas veel later bepaald wordt.


maargoed, volgens mij kan ik het beste dus maar alles 10 deeleigenschappen toekennen en hopen dat men niet te snel tegen dat plafond op botst;p




Toevoeging op 21/02/2012 22:18:46:

Bovendien blijft ook dan de originele vraag, zei het in iets andere vorm, bestaan.
Als tabel onderwerp1 - onderwerp10 bestaat, en iemand wil een nieuw onderwerp toevoegen,
hoe laat ik het script dan herkennen dat er 10 onderwerpen bestaan en er een nieuwe tabel moet worden aangemaakt met alle benodigde onderdelen en met de naam onderwerp11.

Toevoeging op 21/02/2012 22:21:12:

(gegeven het feit dat tabellen niet gelimiteerd zijn tot slechts onderwerpx, maar ook onderwerpxeigenschapx of onderwerpxeigenschapxdeeleigenschapxdeeleigenschapx kunnen zijn, en dat mocht er een commando bestaan voor het tellen van tabellen in een database, dit dus niet toereikend is, tenzij alle tabelsoorten dus ook een eigen database krijgen...)

Toevoeging op 21/02/2012 22:22:55:

(maargoed.. lekker statisch dus.. wel net zo makkelijk, en ter demonstratie, vast toereikend ;P)
 
John D

John D

21/02/2012 23:17:35
Quote Anchor link
je hebt slechts enkele tabellen nodig, afhankelijk hoe diep je wilt gaan. Laten we zeggen drie niveau's diep is drie tabellen. Het toverwoord is dus echt normaliseren en je krijgt een goed en snel werkend datamodel. Kennelijk heb je niet het inzicht om jouw informatiebehoefte te vertalen naar een gegevensverzameling en die om te zetten in een genormaliseerd datamodel. Je denkwijze klopt niet, je snapt gegevensanalyse niet. Er valt nog wel wat te leren maar het hoeft natuurlijk niet. Je kan ook alles achter elkaar op 1 regel zetten en scheiden met diverse scheidingstekens en lekker programmeren tot je door de bomen het bos niet meer ziet.
 
Koos jansen

koos jansen

22/02/2012 00:03:34
Quote Anchor link
Ik lees de link van SanThe morgen aandachtig even door.
 
Erwin H

Erwin H

22/02/2012 09:25:13
Quote Anchor link
Koos jansen op 21/02/2012 22:10:24:
om op die manier onbeperkt te kunnen uitbreiden.

het probleem is echter dat ook dat weer moet kunnen expanden
onderwerp1eigenschap1deeleigenschap1
onderwerp1eigenschap1deeleigenschap2
onderwerp1eigenschap1deeleigenschap3
..
etc
dus dan moet niet onderwerp een tabel zijn,
maar onderwerp1eigenschap1 moet dan een tabel zijn met
id 1 = onderwerp1eigenschap1deeleigenschap1
id 2 = onderwerp1eigenschap1deeleigenschap2
etc

dat zijn dus extreem veel tabellen.
en die worden allemaal aangesproken bij het toevoegen of benaderen van de info.

maar heb jij dan niet nu extreem veel velden in je database? Velden die overigens het meeste van de tijd leeg zullen blijven denk ik?
Voor mij heb je hiermee aangegeven waarom je absoluut naar normalisatie moet kijken.
 
Koos jansen

koos jansen

23/02/2012 21:42:36
Quote Anchor link
Bedankt voor de tip van het normaliseren, in eerste instantie leek ik er niet helemaal uit te komen maar ineens zag ik het licht en ging het vrij vlotjes.

Inmiddels heb ik grotendeels geinventariseerd welke informatie in de database moet worden opgenomen en heb het volgens de tutorial genormaliseerd. (maar hij zal sowieso in functionaliteit en dus entries groeien)

Dan kom ik in plaats van op 540 entries uit op 137 tables waarvan er 41 betrokken zijn bij het hoofdinvulformulier(=hoofdfunctionaliteit pagina), en 5 bij het hoofdscherm voor het uitlezen van een beknopt overzicht van de info.

Ik blijf het vreemd vinden dat 41 x een table openen te prevereren is boven 1 x een table van 5000 entries.

maar het is iig weer overzichterlijk :P

(nu uitzoeken hoe ik dit allemaal in een pagina verwerk ;P)

Toevoeging op 23/02/2012 21:55:41:

Bovendien is het de bedoeling dat de pagina vrij druk bezocht gaat worden, en 100 formulierverzendingen per queue is iets waar ik ten minste rekening mee moet houden, dat is dan 4.100 tables die geopend worden in plaats van 100, en als daarbij ook nog 400 mensen het overzicht openen, 2.000 tables = 6.100 tables openen ipv 500.

Toevoeging op 23/02/2012 21:57:05:

.. daar gaat zo'n server toch niet blij mee zijn ;P

Toevoeging op 24/02/2012 08:41:03:

ik blijk toch nog het eea over het hoofd te hebben gezien en al ben ik nog redelijk wat monnikkenwerk verwijderd van een eindconclusie, het lijkt nu heel wat minder tables te worden :D
Gewijzigd op 23/02/2012 21:59:25 door koos jansen
 
Koos jansen

koos jansen

25/02/2012 18:44:15
Quote Anchor link
Uiteindelijk kom ik dan uit op 7 tables voor het overzicht (startpaginascherm) en 12 tables voor het invulformulier (hoofdfuncitie)

het zijn er een stuk minder, maar naar mijn idee nog steeds een boel.
Iemand misschien een tip voor info over hoe je dit weer uitleest?
In het meest extreme geval gebruikt 1 entry 9 table indexen.
 
- Ariën -
Beheerder

- Ariën -

25/02/2012 18:45:12
Quote Anchor link
Laat je structuur eens zien die je nu hebt?
 
Koos jansen

koos jansen

25/02/2012 19:29:51
Quote Anchor link
Ik ben bezig met iets unieks met marktpotentie en kan daarover dus niet te concreet zijn.
Daarnaast is het op dit moment een 28 Kb txtfile en dus ook niet erg forumvriendelijk. Ik zal enkele gerenamede onderdelen posten, daaruit blijkt hopelijk wel of ik al dan niet nu wel de juiste structuur hanteer.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
-lid-index
naam
email
adres
postcode
plaats

-lid-index
-a-index
n
r
f
j

-lid-index
-a-index
-b-index
n
r
j

-lid-index
-a-index
-b-index
-x-index
n
r
j

-lid-index
-a-index
-r-index
n
j
f

-lid-index
-a-index
-r-index
-y-index
n
r
j
f

-lid-index
-a-index
-r-index
-b-index
n
r
j

-lid-index
-a-index
-r-index
-b-index
-x-index
n
r
j


-lid-index
-a-index
-z-index
n
r
f
j

-lid-index
-a-index
-z-index
-b-index
n
r
j

-lid-index
-a-index
-z-index
-x-index
n
r
j

-lid-index
-a-index
-z-index
-r-index
n
j
f
Gewijzigd op 25/02/2012 19:59:23 door koos jansen
 
Koos jansen

koos jansen

27/02/2012 07:20:18
Quote Anchor link
Zou iemand mij eens een query voor willen doen?
Als ik bijvoorbeeld deze 'n' zou willen uitlezen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
-lid-index
-a-index
-z-index
-r-index
n
j
f

en als ik de 'n' wil wegschrijven?
 



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.