CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren |
01.08.2009, 13:04:23
|
Anfänger
|
|
Registriert seit: Aug 2009
Alter: 35
Beiträge: 2
|
|
[MySQL] IF / CASE: mehrere Werte abfragen
Hallo liebe selfphp.de Member,
derzeit beschäftige ich mich mit folgender Problemstellung:
Beispieltabellen:
tbl_auto
Code:
-> tbl_auto.id
-> tbl_auto.reifen
...
tbl_boot
Code:
-> tbl_boot.id
-> tbl_boot.segel
...
tbl_flasche
Code:
-> tbl_flasche.id
-> tbl_flasche.verschluss
...
tbl_container
Code:
-> tbl_container.id
-> tbl_container.ext_id
-> tbl_container.typ
-> tbl_container.kommentar
-> tbl_container.datum
..
So. Nun möchte ich je nach typ (tbl_container.typ) die dafür bestimmte Tabelle mit dessen Feldern abfragen. Sprich, ist der Typ 'auto', sollen alle Felder der Tabelle tbl_auto abgefragt werden, usw.
Wenn das dann funktioniert, sollen je nach Tabelle (auto, flasche, boot) auch in dem WHERE Bereich die einzelnen Tabellen abgefragt werden... mit IF?)
Das Ganze habe ich mit IF versucht, da es bei CASE nicht geklappt hat. Nur leider kann ich bei IF nur einen Datenwert abfragen. Wie ich mehrere Abfragen kann... dahinter komme ich einfach nicht. Und die Dokumentation von MySQL finde ich dazu auch sehr dürftig... Auch habe ich noch nicht rausgefunden, wie ich die zweite Bedingung, also das ELSE, weglassen kann, da ich die Ausgabe eigentlich nicht benötige. Ich hoffe es weiß jemand eine Lösung auf das Problem oder vielleicht sogar eine bessere Struktur in diesem Fall, dass man so eine Lösung gar nicht erst benötigt.
FUNKTIONIERT, aber nicht so wie ich will, - ohne IF in WHERE
PHP-Code:
SELECT
IF( tbl_container.typ = 'auto', tbl_auto.reifen, NULL ),
tbl_container.id
FROM
tbl_container,
tbl_auto
LIMIT 0 , 30
FUNKTIONIERT NICHT (so wie ichs mir vorstellen würde ^^ - ohne IF in WHERE)
PHP-Code:
SELECT
IF( tbl_container.typ = 'auto', (tbl_auto.id, tbl_auto.reifen) ),
tbl_container.id
FROM
tbl_container,
tbl_auto
LIMIT 0 , 30
Gruß,
Zeussi
|
01.08.2009, 14:33:58
|
|
Administrator
|
|
Registriert seit: Jul 2004
Beiträge: 3.707
|
|
AW: [MySQL] IF / CASE: mehrere Werte abfragen
Hallo und willkomen hier im Forum!
Da fehlen wohl mal wieder die (notwendigen) Basiskenntnisse oder die Hausaufgaben sind schwerer als gedacht.
Zitat:
Zitat von Zeussi
[...]
So. Nun möchte ich je nach typ (tbl_container.typ) die dafür bestimmte Tabelle mit dessen Feldern abfragen. Sprich, ist der Typ 'auto', sollen alle Felder der Tabelle tbl_auto abgefragt werden, usw.
Wenn das dann funktioniert, sollen je nach Tabelle (auto, flasche, boot) auch in dem WHERE Bereich die einzelnen Tabellen abgefragt werden... mit IF?)
Das Ganze habe ich mit IF versucht, da es bei CASE nicht geklappt hat. Nur leider kann ich bei IF nur einen Datenwert abfragen. Wie ich mehrere Abfragen kann... dahinter komme ich einfach nicht. Und die Dokumentation von MySQL finde ich dazu auch sehr dürftig... Auch habe ich noch nicht rausgefunden, wie ich die zweite Bedingung, also das ELSE, weglassen kann, da ich die Ausgabe eigentlich nicht benötige. Ich hoffe es weiß jemand eine Lösung auf das Problem oder vielleicht sogar eine bessere Struktur in diesem Fall, dass man so eine Lösung gar nicht erst benötigt.
|
Wenn Dir ja tbl_container.typ bekannt ist, warum ziehst Du die Abfrage nicht aus dem SQL-Statment raus?
Zum Beispiel:
PHP-Code:
if(tbl_container.typ = 'auto')
{$sql = "SELECT tbl_auto.reifen, tbl_container.id
FROM tbl_auto, tbl_container
WHERE bedingung_erfuellt
LIMIT 0 , 30";
}
elseif(...)
{...}
else
{...}
** ungetestet - Tabellenverküpfung (JOIN) nicht vergessen **
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert
Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!
Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
|
01.08.2009, 15:44:53
|
Anfänger
|
|
Registriert seit: Aug 2009
Alter: 35
Beiträge: 2
|
|
AW: [MySQL] IF / CASE: mehrere Werte abfragen
Auch Hallo und danke für die Antwort :-)
Naja, es soll eine dynamische Suche per Ajax/PHP/MySQL werden. Und dabei soll in den Datenfeldern jeder Tabellen gesucht werden können, also in diesem Beispiel in jedem Tabellenfeld jeweils von Container, Auto, Boot und Flasche....
Weil es dann massig Querys wären...
1. Select von Container mit Typ und ext_id
2. For Schleife mit ID's im Array und folgende Selects:
2.1 Select von Auto - Where ext_id = id
2.2 Select von Boot - Where ext_id = id
2.3 Select von Flasche - Where ext_id = id
das wären dann bei zB. 50 Einträge im Container 151 Abfragen.... das ist doch Wahnsinn :/
Und von 4:1 auf 1:1 ... das wäre doch ein schöner Faktor :-)
Gruß,
Zeussi
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 15:29:07 Uhr.
|