SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



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



:: Buchempfehlung ::

TYPO3 Kochbuch

TYPO3 Kochbuch zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 19.01.2009, 12:44:57
tsunamitsunami tsunamitsunami ist offline
Junior Member
 
Registriert seit: Dec 2005
Alter: 51
Beiträge: 236
2 Spalten aus 2 Tabellen zusammenfügen

Hallo zusammen,

ich bräuchte mal wieder einen Ansatz:

Also ich habe eine Datenbank u.a. mit den Tabellen interpret und band. Jeweils mit den Spalten interpret.id und interpret.interpret und band.id und band.band.

Nun möchte ich ein select-Feld generieren. Wo ich einmal Bands und einmal Interpretenauswählen kann. Kein Problem soweit. Die select Liste habe ich manuell erstellt und mit case mache ich die sql-Abfrage:

PHP-Code:
  <select name="abfrage" id="abfrage2" title="" onchange="javascript:abfrage_senden();">
                    <!--<option value="0">Alle</option>-->
                    <option value="0" <?php if($_GET['filter']==0) echo "selected";?>>Alle</option>
                    <option value="1" <?php if($_GET['filter']==1) echo "selected";?>>Band</option>
                    <option value="2" <?php if($_GET['filter']==2) echo "selected";?>>Interpret</option>
                              </select>
Und dann mit case:

PHP-Code:
switch($fahrzeuggruppe)
{

case 
0:
mysql_select_db($database$db);
???


break;

case 
1:
mysql_select_db($database$db);
$query_tourdaten sprintf("SELECT * from interpret");

break;

case 
2:
mysql_select_db($database$db);
$query_tourdaten sprintf("SELECT * from band");

break; 
Nun der Knackpunkt:
Wie bekomme ich eine komplette Liste? Also die Ausgabe beider Spalten? Wenn ich beide Spalten einfach in ein Array packe, habe ich das Problem, dass ich doppelte ids habe.

Zur Verdeutlichung:

Case 1: soll ausgeben:

Robbie Williams (id0)
Robert Palmer(id1)
Thomas Anders(id2)

Case 2: soll ausgeben

Take That(id0)
Iron Maidon(id1)
ACDC(id2)

Case 0: soll ausgeben:
Robbie Williams(id0)
Robert Palmer(id1)
Thomas Anders(id2)
Take That(id0)
Iron Maidon(id1)
ACDC(id2)

Einfach nur die Liste ausgeben ist kein Problem. Aber ich muss natürlich irgendwie eine eindeutige id zuordnen. zB für die Interpreten ein "i" und für Band ein "b":
Robbie Williams(idi0)
Robert Palmer(idi1)
Thomas Anders(idi2)
Take That(idb0)
Iron Maidon(idb1)
ACDC(idb2)

Hat einer einen Ansatz? Danke im Voraus für eure Mühe! Bin am tüfteln mit einem 2 dimiensionalem Array. Allerdings habe ich dann ein Problem mit dem sortieren...


Gruß
tsunamitsunami
Mit Zitat antworten
  #2  
Alt 20.01.2009, 18:15:55
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 55
Beiträge: 1.044
AW: 2 Spalten aus 2 Tabellen zusammenfügen

Nun du setzt ein Prefix vor die ID. Sollte es zu einem Select kommen, dann wertest du vorab die Daten auf das Prefix ab.
PHP-Code:
$prefix_i 'i';
$prefix_b 'b';

//je nach Abfrage (Case1 oder 2) dann ausgeben

echo $prefix_i.'_'.$i_id.' = Interpret: '.$prefix_i .'_'$interpret
//Ausgabe wäre dann i_nr = Interpret: i_name 
Beim Namen kannst es ja ruhig weg lassen.
Bei der weiteren Verarbeitung der ID kannst dann mit explode('_',$id) die eigentliche Id und die i zugeordnete Tabelle genauer abfragen.

Geändert von urvater (20.01.2009 um 18:21:36 Uhr) Grund: um Ausgabe und Text unter PHP ergänzt
Mit Zitat antworten
  #3  
Alt 22.01.2009, 11:58:38
tsunamitsunami tsunamitsunami ist offline
Junior Member
 
Registriert seit: Dec 2005
Alter: 51
Beiträge: 236
AW: 2 Spalten aus 2 Tabellen zusammenfügen

Hi Urgroßvater,

danke für Deinen Beitrag. Das Problem ist, dass ich nicht nur entweder band oder interpret ausgeben möchte, sondern auch beides.Hm, ich denke ich habe mich etwas missverständlich ausgedrückt.

Ich habe ua 2 Tabellen:
interpreten
interpreten.id,interpreten.name, interpreten.vorname

bands
bands.id, bands.bandname

Natürlich kannich mit case 1 die Interpreten ansprechen und case 2 die bands.
Aber ich möcht auch die Option alle Anbieten:

also eine select-Liste mit
bands.bandname
interpret.name.", ".interpret.vorname

Als Value übergebe ich die Id. Nur habe ich zB als id "22" in der Tabelle "bands" die Band BAP und in der Tabelle "Interpreten" den Interpreten Peter Maffay.

Nun habe ich versucht mit :
PHP-Code:
select interpreten.id as iidinterpreten.nameinterpreten.vornamebands.bandnamebands.id as bid
die Sache zu vereinfachen. Aber dann bekomme ich 4 Spalten und nicht 2.

Oder habe ich Dich missverstanden? ;)

Danke für Deine Mühe.
Oliver
Mit Zitat antworten
  #4  
Alt 23.01.2009, 08:28:13
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 55
Beiträge: 1.044
AW: 2 Spalten aus 2 Tabellen zusammenfügen

Zitat:
Zitat von tsunamitsunami Beitrag anzeigen
Oder habe ich Dich missverstanden? ;)..
Nein haßt du nicht. Hab deine Frage nur anders gedeutet.

Du kannst beide Ergebnisse aber trotzdem in ein Array packen. In diesem Fall müsstest du dem Arrayschlüssel ein Prefix mitgeben um zwischen Band und Interpret unterscheiden zu können.
PHP-Code:
$dbarray = array('b_id' => 'b_1','b_name' =>'BAP','i_id'=>'i_1','i_name' =>'Peter Maffay');

// oder mehrdimensional, $x und $y läßt du beim Schreiben ins Array halt mit hochzählen
$x 0;
$y 0;
$dbarray = array('b_$x' = array('id' => 'b_1','b_name' =>'BAP'),'i_$y'= array('i_id'=>'i_1','i_name' =>'Peter Maffay')); 
Das Prefix würde ich der ID jedoch trotzdem mit übergeben, damit du eine spätere Singleauswahl besser weiter verarbeiten kannst.
Mit Zitat antworten
  #5  
Alt 28.01.2009, 10:56:35
tsunamitsunami tsunamitsunami ist offline
Junior Member
 
Registriert seit: Dec 2005
Alter: 51
Beiträge: 236
AW: 2 Spalten aus 2 Tabellen zusammenfügen

Hi,

PHP-Code:
$dbarray = array('b_id' => 'b_1','b_name' =>'BAP','i_id'=>'i_1','i_name' =>'Peter Maffay'); 
Wenn ich es richtig deute, setzte ich damit doch ein indix zu den Array-Werten, oder?
Das würde heissen, das Array via 2 while-Schleifen füllen.

Also erste sql-Afrage-> Ab ins $array[]
2. sql-Afrage -> ab ins selbe $array[]

Das Ganze dann nach Werten sortieren... :)
Richtig?

Gruß
tsunamitsunami
Mit Zitat antworten
  #6  
Alt 28.01.2009, 17:00:01
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 55
Beiträge: 1.044
AW: 2 Spalten aus 2 Tabellen zusammenfügen

Jup so würde es gehen, da beide Arrays unterschiedlieche Index nutzen a_$x und b_x.
Somit hast du auch im ggf. Fall immer eine Unterscheidung in welcher Tabelle gesucht werden muß.

Wenn du allerdings schon ein Suchkriterium hast, daß auf beide Tabellen paßt, kannst du es auch mit left join mit einem Select in das Array schreiben lassen.

PS: Im genannten Beispiel sehe ich allerdings keinen logischen Zusammenhang zwischen BAP und Peter Maffay. :)

Geändert von urvater (28.01.2009 um 17:04:42 Uhr) Grund: im left join erweitert
Mit Zitat antworten
  #7  
Alt 04.02.2009, 15:51:46
tsunamitsunami tsunamitsunami ist offline
Junior Member
 
Registriert seit: Dec 2005
Alter: 51
Beiträge: 236
AW: 2 Spalten aus 2 Tabellen zusammenfügen

Danke! That was it!
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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 aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
zwei Tabellen oder nur 2 Spalten extra urvater MySQLi/PDO/(MySQL) 2 28.11.2008 04:55:56
Lieber mehrere Tabellen oder viele Spalten? Phaltôn MySQLi/PDO/(MySQL) 14 16.11.2008 13:45:26
Groß- und Kleinschreibung bei Tabellen und Spalten KartoffelKiffer MySQLi/PDO/(MySQL) 11 10.07.2008 14:48:53
2 Tabellen zusammenfassen. Problem! basti123456 MySQLi/PDO/(MySQL) 4 03.02.2006 09:01:08
Problem mit 2 tabellen spalten in einer while schleife ! akasa PHP Grundlagen 6 08.06.2005 15:00:07


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:00:56 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt