Hallo Sonja,
- Personendaten
person_id (index)
person_name
...
- Frage & Antworten
frage_id (index)
frage_nr (1 bis 10)
frage_person_id (Verknüpfung)
frage_frage (immer die gleiche Fragen für eine Person)
frage_amtwort (immer unterschiedliche Antworten)
und Optimierungs- sprich Normalisierungspotential :-)
Nutze statt dieser kombinierten Tabelle zwei Tabellen. Du hast eine typische n:m-Beziehung zwischen Personen und Fragen: eine Person kann mehreren Fragen zugeordnet sein und eine Frage kann mehreren Personen zugeordnet sein. Zusätzlich zur Zuordnung über die beiden IDs hat die Zuordnung ein eigenes Attribut: die Antwort.
1. Personendaten
person_id,
person_name,
...
2. Fragen
frage_id,
frage,
...
3. Antworten
person_id,
frage_id,
antwort,
...
ggf. ein künstlicher Schlüssel.
Wenn eine Person jede Frage nur einmal beantworten darf, solltest Du die Spaltenkombination person_id, frage_id mit einem eindeutigen Index (also einem Mehrspaltenindex) versehen.
Jetzt möchte ich die Ergebnisse anzeigen lassen, in der Form:
In jeder Zeile steht "eine" Person und seine AntwortenPeter, antwort1, antwort2 usw... bis 10
Michael, antwort1, antwort2 usw... bis 10
usw...
Du suchst eine Kreuztabellenabfrage. Die schlechte Nachricht ist die, dass MySQL keine Kreuztabellenabfragen beherrscht. Falls Du konstant bei 10 Fragen bleibst, lohnt es sich nicht, diese Abfrage programmgesteuert zu erstellen.
Von Zeit zu Zeit taucht eine vergleichbare Frage hier auf, ich verlinke Dir ein paar Beispielthreads:
Minitutorial für MS SQL Server 2000
</archiv/2008/6/t173119/#m1136008>
</archiv/2009/3/t184124/#m1220523>
Freundliche Grüße
Vinzenz