[mysql / php] fieldname in cijfers?

Pagina: 1
Acties:

Onderwerpen


  • Hmmbob
  • Registratie: September 2001
  • Laatst online: 12:25
Voor school zijn we bezig met een annuarium. (Is dus geen huiswerk :)) Nu heb ik de database zo opgebouwd, dat de vragen uit een tabel komen (id 1 - 70) en dat de antwoorden in een andere table gegooid worden.

Nu wil ik graag dat de tabel er zo uit ziet:

code:
1
id  1  2  3  4  5  6  7 .... 69 70

en dat dan de antwoorden ingevoerd worden in die tabel.
De antwoorden zijn in de vorm van cijfers, leerlingnummers.

nu werkt alleen de insert-query niet. ik denk dat het eraan ligt dat de fieldname van de tabel een cijfer is, maar dat kon ik nergens terugvinden.

mijn query:

code:
1
2
3
4
5
6
INSERT INTO antwoorden_ll_ll (1) VALUES ('$aa')

De foutmelding deelt mij (cryptisch) het volgende mede: 

You have an error in your SQL syntax 
near ''1') VALUES ('89')' at line 1

waar $aa staat voor een geposte variabele, die correct ingevuld wordt, zoals je kan zien in de foutmelding.

wie weet raad?

[ Voor 4% gewijzigd door Hmmbob op 27-02-2003 17:38 . Reden: lay-out ]

Sometimes you need to plan for coincidence


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Volgens mij heb je een heel erg fout database design als je zulke, non-descriptive, tellernamen nodig hebt...

En aan je tabel naam te zien is het helemaal vreselijk...

Magoed, als je je ontwerp niet ter discussie wilt stellen, probeer het eens met de backtick, `, rond die 1

  • KillR-B
  • Registratie: Mei 2002
  • Laatst online: 09-09 09:55
moet dit niet antwoorden_ll_ll (id) zijn ???

  • Hmmbob
  • Registratie: September 2001
  • Laatst online: 12:25
ACM: ja, dat was de oplossing. En dat ligt aan?
want dat wil ik dan ook wel eens weten

[ Voor 35% gewijzigd door Hmmbob op 27-02-2003 17:50 ]

Sometimes you need to plan for coincidence


  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 17-09 22:12
KillR-B schreef op 27 February 2003 @ 17:49:
moet dit niet antwoorden_ll_ll (id) zijn ???
Nee die getallen 1....70 zijn bij de ts ook colomen. Die kun je alleen benaderen zoals ACM al aangeeft door er `` om heen te zetten.

  • KillR-B
  • Registratie: Mei 2002
  • Laatst online: 09-09 09:55
Groentenboer schreef op 27 February 2003 @ 17:50:
ACM: ja, dat was de oplossing. En dat ligt aan?
want dat wil ik dan ook wel eens weten
Dat ligt aan het feit dat je waarschijnlijk nooit eerder met MySQL hebt gewerkt :+.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Groentenboer schreef op 27 February 2003 @ 17:50:
ACM: ja, dat was de oplossing. En dat ligt aan?
want dat wil ik dan ook wel eens weten

Een kolomnaam zal officieel wel niet uit een enkel getal mogen bestaan, of niet met een getal mogen beginnen.

Er is ook totaal geen reden om een kolomnaam uit een getal te laten bestaan, want de kans is erg groot dat je in zo'n geval gewoon compleet fout bezig bent in het kader van relationele databases.

Als er 70x iets dat in essentie hetzelfde is in een tabel staat op kolom-wijze, dan heb je niet begrepen waar rows voor zijn en wat nou het doel van kolommen is.

  • Hmmbob
  • Registratie: September 2001
  • Laatst online: 12:25
KillR-B schreef op 27 February 2003 @ 17:53:
[...]

Dat ligt aan het feit dat je waarschijnlijk nooit eerder met MySQL hebt gewerkt :+.
grinnik... niet helemaal waar, nog nooit eerder zulke fieldnames gebruikt, das wat anders.

hoe zouden jullie zoiets aanpakken dan, qua design?

er zijn dus 70 vragen, en 92 leerlingen die al deze vragen moeten beantwoorden. Ze doen dat via een dropdown-select, die dus de id's verstuurt naar een pagina.

Laat me het licht zien! :*)

Sometimes you need to plan for coincidence


  • L_Jinx
  • Registratie: Augustus 2001
  • Laatst online: 18:21

L_Jinx

Oh, the humanity of it all

ACM schreef op 27 February 2003 @ 17:54:

[...]

Een kolomnaam zal officieel wel niet uit een enkel getal mogen bestaan, of niet met een getal mogen beginnen.

Er is ook totaal geen reden om een kolomnaam uit een getal te laten bestaan, want de kans is erg groot dat je in zo'n geval gewoon compleet fout bezig bent in het kader van relationele databases.

Als er 70x iets dat in essentie hetzelfde is in een tabel staat op kolom-wijze, dan heb je niet begrepen waar rows voor zijn en wat nou het doel van kolommen is.
Is het niet gewoon zo dat 1, etc een getal is en dat de kolomnaam een string moet zijn?

Het ontwerp is inderdaad ook niet echt super op deze manier..

[ Voor 21% gewijzigd door L_Jinx op 27-02-2003 18:00 ]


  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 17-09 22:12
table questions
id INT(11) UNSIGNED auto_increment,
question TEXT

table student
id INT(11) UNSIGNED auto_increment,
name VARCHAR(255)

table answers
q_id INT(11) UNSIGNED,
stud_id INT(11) UNSIGNED

Zo iets komt dan direct in me op.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Groentenboer schreef op 27 February 2003 @ 17:54:
er zijn dus 70 vragen, en 92 leerlingen die al deze vragen moeten beantwoorden.
Nou, daar heb je dus al 70 rows voor de tabel "vraag" en 92 rows voor de tabel "leerling".

Op een of andere manier moet je opslaan dat leerling X vraag Y op manier Z beantwoorde, als je multiple choice vragen hebt kan het nog zijn dat je _per_ vraag dus nog een aantal rows uit de "vraag_antwoord" tabel nodig hebt en dan kan je de beantwoorde vragen in de leerling_antwoord tabel opslaan.

Zoiets dus:
vraag: vraagid, vraagtext, vraagvolgorde
leerling: leerlingid, naam, ....
vraag_antwoord: antwoordid, vraagid, antwoordtext, antwoordvolgorde
leerling_antwoord: vraagid, leerlingid, antwoordid

Waarbij de onderstreepte woorden de primary key vormen, de leerling_antwoord tabel is daarin nog tricky, voor als je meerdere antwoorden per vraag zou toestaan, dat zal in jouw geval wel niet gelden.

  • Hmmbob
  • Registratie: September 2001
  • Laatst online: 12:25
ok, hier kan ik iets mee, ik ga weer sleutelen

* Hmmbob was even werken, maar is ACM nu errug dankbaar

Sometimes you need to plan for coincidence

Pagina: 1