php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 04-10-2004, 15:43
nordpol
 Junior Member
Links : Onlinestatus : nordpol ist offline
Registriert seit: Jul 2003
Beiträge: 72
nordpol ist zur Zeit noch ein unbeschriebenes Blatt
Standard [MySQL 4.1] joinen für fortgeschrittene

Hi,

ich hab ein kleines Problem mit einer mysql Abfrage. Folgende Tabellen sind (stark vereinfacht) vorhanden:

Tabelle: Fragen
Spalten: f_id | frage

Tabelle: Beziehung
Spalten: f_id | a_id

Tabelle: Antworten
Spalten: a_id | antwort | Bereich_id

So, ich möchte nun eine Tabelle erstellen in der die Frage steht gefolgt von den möglichen Antworten. Da es sich dabei aber um mehrere 1000 Datensätze handelt sollte das ganze in nur einen Query passen - geht das ohne die Fragen mehrfach in meinem Ergebnis zu haben?

Derzeit habe ich es sehr Serverlastig so gelöst, dass ich eine Abfrage laufen lassen aus der alle Fragen erzeugt werden. Diese loope ich dann durch und in der Schleife ermittle ich mit einer Funktion alle möglichen antworten... Nur das macht mein Server nicht lange mit...

Bin für jeden Tipp dankbar.

Gruß
Mit Zitat antworten
freelancermap.de - IT Projektvermittlung für Selbständige und Freiberufler
  #2 (permalink)  
Alt 04-10-2004, 16:21
MaxP0W3R
 PHP Senior
Links : Onlinestatus : MaxP0W3R ist offline
Registriert seit: Dec 2003
Beiträge: 1.809
MaxP0W3R ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Aus dem Bauch heraus :

Tabelle: Fragen
Spalten: f_id | frage

Tabelle: Beziehung
Spalten: f_id | a_id

Tabelle: Antworten
Spalten: a_id | antwort | Bereich_id

SELECT t1.f_id, t1.frage,
t3.antwort
FROM Fragen t1
LEFT JOIN Beziehung t2
ON t1.f_id = t2._fid
LEFT JOIN Antworten
ON t2.a_id = t3.a_id

ok, die frage taucht immer wieder auf, aber wenn du z.B. eine schleife mahst um alle fragen auszulesen, einfach prüfen, ob sich im ergebnis die f_id ändert, wenn ja dann neue tabelle anfangen oder was auch immer...
__________________


An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )
Mit Zitat antworten
  #3 (permalink)  
Alt 04-10-2004, 16:23
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

und was ist denn "für fortgeschrittene" dabei?

Nein, eine Abfrage und dann PHP-seitig den Gruppenwechsel abfangen.
Mit Zitat antworten
  #4 (permalink)  
Alt 04-10-2004, 16:34
nordpol
 Junior Member
Links : Onlinestatus : nordpol ist offline
Registriert seit: Jul 2003
Beiträge: 72
nordpol ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von asp2php
und was ist denn "für fortgeschrittene" dabei?

Nein, eine Abfrage und dann PHP-seitig den Gruppenwechsel abfangen.
zzz. Sprich ich muss die Logik über das php Skript abdecken. Es gibt keine Möglichkeit in mysql z. B. ein array im Ergebnis Array zu erstellen.

Das Ergebnis über die doppelte Fragen ID aufzuräumen gefällt mir nicht so - das Skript dass die Ausgabe (in ein Excel Sheet) macht ist so schon sehr sehr sehr komplex... -> ich muss selber immer wieder schauen was jetzt genau welcher Teil macht - andere die das evtl. mal pflegen müssen will ich nie treffen -> die fluchen bestimmt

Gruß
Mit Zitat antworten
  #5 (permalink)  
Alt 04-10-2004, 17:00
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

da du über Logik sprichst

die Datenbank ist in Tabellen aufgebaut und somit kann sie auch nur tabellenartig die Daten zurückliefern. Nur bei PHP bekommst du keine komplette Tabelle in einem Rutsch geliefert (in anderen Sprachen aber schon), d.h. aber noch lange nicht, dass das Ergebnis einer Abfrage keine Tabelle ist , in PHP kannst du nur zeilenweise abrufen. Daher wie soll es denn aussehen, wenn nicht:

a | a1
a | a2
a | a3
...
b | b1
b | b2
...

weil:

a => array(a1,a2,a3)
b => array(b1,b2,b3)

dann keine Tabelle mehr ist und auch niemals ein Produkt von Tabellen sein kann. Oder nenne mir ein Matrixenoperationsformel der sowas liefern
Mit Zitat antworten
  #6 (permalink)  
Alt 04-10-2004, 17:08
nordpol
 Junior Member
Links : Onlinestatus : nordpol ist offline
Registriert seit: Jul 2003
Beiträge: 72
nordpol ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ok,

hatte ich befürchtet. Danke für die schnellen Antwoten! So wie es aussieht wird mein Server wohl die Last zu tragen haben. Da ich nämlich beim durchlaufen der Ergebnistabelle ( ) direkt ein array bestücke und dieses im weiteren Verlauf nur schwer mit weiteren Antworten bestücken kann, fällt die Lösung mit dem aussortieren anhand der Fragen ID's flach.

-> ja, das array muss sein. Selbiges ist Futter für Smarty...

DANKE!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

PHP Marktplatz-Software
PHP Marktplatz-SoftwareEs hat sich viel getan! Die neue Version 7.5.9 unserer PHP Marktplatz-Software ebiz-trader steht ab sofort zur Verfügung.

28.10.2019 | Berni

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni


 

Aktuelle PHP Scripte

Microweber CMS

Open source, drag and drop website builder

13.01.2020 Berni | Kategorie: HTML5/ EDITOR
PhoneGap Apps mit JS, CSS3 und HTML5 erstellen ansehen PhoneGap Apps mit JS, CSS3 und HTML5 erstellen

PhoneGap, Framework zur Erstellung hybrider Applikationen für mobile Endgeräte.

13.01.2020 Berni | Kategorie: App-Entwicklung
Bo)Tickets

Bo)Tickets bietet Ihnen eine Schnittstelle für Kundenanfragen an. In dem Script definieren Sie Supportbereiche, also zum Beispiel „Technik, Buchhaltung, Support“. Ihre Kunden können dann über ein Formular eine Anfrage abschicken.

31.12.2019 bocombo | Kategorie: PHP/ Ticketsystem
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:07 Uhr.