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 ::

Handbuch der Java-Programmierung

Handbuch der Java-Programmierung 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 > MySQLi/PDO/(MySQL)

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 17.01.2010, 16:16:54
Gileeser Gileeser ist offline
Anfänger
 
Registriert seit: Jan 2010
Alter: 14
Beiträge: 10
Eine Tabelle mit 10 IDs verweist auf eine Tabelle

Guten Tag!

Ich habe eine MySQL-Tabelle 'testen', die stellt bis zu 10 IDs wie 'ID_besch1', 'ID_besch2' .... 'ID_besch10'
zu entsprechenden Bilder aus, also 10 Spalten, welche die gewünschte Bildnummer von einer Auswahl aus ca. 100 Bildern enthält.
Der Text zu den Bildern steht in der Tabelle 'beschbg' mit 2 Spalten: 'Idtext' und 'btext'.

Die Bilder selbst spielen bei dieser Betrachtung keine Rolle,
diese werden über eine Id mit <img> von Smarty angezeigt.

Die Tabelle 'testen' hat noch mehrere Spalten wie 'name' ... und noch 2 Ids zu den Tabellen 'plz' und 'ort.
'plz' Spalten: Idpost und PLZ, 'ort' Spalten: IdOrt und Ort.

Gesucht wird der Text von 'btext', bis zu 10 Texte in der Reihenfolge der IDS des Datensatzes in 'testen'.

Tabelle 'testen' Spaltenauszug
Code:
ID_besch1 	ID_besch2 	ID_besch3	.....	ID_besch10
3		7		34			57
2		1	         9			 6
Beschreibung zum Bild
Code:
Idtext		btext
1		Haus.....
2		Garten ...
3		Ziegel ....
.......
99		Hecke.....
Hier kommen die Daten her:
PHP-Code:
 if($rows>0)
    {     
$p = array();
        
$table = array();
         while(
$row mysql_fetch_array($result))
.............
        
$tpl->assign"tab",$table);
        
$tpl->display("ausg.tpl");
//Ende 
Abfragebeispiel:
$query = "SELECT * FROM testen
LEFT JOIN plz ON testen.ID_PLZ = plz.Idpost
LEFT JOIN ort ON testen.ID_Ort = ort.IdOrt
LEFT JOIN beschbg ON testen.ID_besch3 = beschbg.Idtext /* funkzuniert mit Zahl 1 bis 10 */
LEFT JOIN beschbg ON testen.ID_besch7 = beschbg.Idtext /* Der 2. Eintrag erzeugt einen DB-Fehler Query was empty*/
WHERE plz.PLZ $pp
ORDER by plz.PLZ
LIMIT 30";
return $query;

Die Abfrage funktioniert aber nur mit einer 'ID_besch1', gleich welche Ziffer von 10.
Ich habe sehr v i e l gelesen, gesucht und natürlich getestet, aber alles ohne Erfolgt.
Sicherlicht weiß irgend Jemand den Weg wie es gebaut werden kann!

Vielen Dank für Eure Hilfe
Kuddel
Mit Zitat antworten
  #2  
Alt 17.01.2010, 18:53:47
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.707
AW: Eine Tabelle mit 10 IDs verweist auf eine Tabelle

Hallo und willkommen in Deinem Alter hier im Forum ...


Die Strukturen der Tabellen wären mal von Interesse. Wie lautet/lauten die konkreten Fehlermeldung(en)?

Zitat:
$query = "SELECT * FROM testen
LEFT JOIN plz ON testen.ID_PLZ = plz.Idpost
LEFT JOIN ort ON testen.ID_Ort = ort.IdOrt
LEFT JOIN beschbg ON testen.ID_besch3 = beschbg.Idtext /* funkzuniert mit Zahl 1 bis 10 */
LEFT JOIN beschbg ON testen.ID_besch7 = beschbg.Idtext /* Der 2. Eintrag erzeugt einen DB-Fehler Query was empty*/
WHERE plz.PLZ $pp
ORDER by plz.PLZ
LIMIT 30";
Gehe mal davon aus, dass es sich hier nur um einen Schreibfehler handelt. Wieso benutzt Du LIMIT 30 wenn Du nur "bis zu 10 Texte" erhalten möchtest?
__________________
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!
Mit Zitat antworten
  #3  
Alt 17.01.2010, 21:41:05
Gileeser Gileeser ist offline
Anfänger
 
Registriert seit: Jan 2010
Alter: 14
Beiträge: 10
AW: Eine Tabelle mit 10 IDs verweist auf eine Tabelle

Danke für die Antwort vt1816

Die Struckturen der Tabelle geht eigendlich aus meiner Anfrage hervor.
Tab. 'testen' hat normale Spalten wie name, strasse usw. weiter die ID zur Tab. 'plz', die ID zur Tab. 'ort' und nun kommen noch 10 IDs zur Tab. 'beschgb'.

Die Tabelle 'beschbg' hat ca. 100 Einträge ID und Text also 2 Spalten, Idtext btext.
Jeder Datensatz aus der Tabelle 'testen' hat 10 Bilder die jeder einen ausgewählten Text aus der Tabelle 'beschbg' erhalten sollen.

Anders ausgedrückt: Die Tabelle 'testen' hat 10 Verweise auf die Tabelle 'beschbg'.

So, für heute ist es genug, wenn es nicht reicht schreibe mir.

Schöne Grüße
Kuddel
Mit Zitat antworten
  #4  
Alt 17.01.2010, 22:19:07
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.707
AW: Eine Tabelle mit 10 IDs verweist auf eine Tabelle

Zitat:
Zitat von Gileeser Beitrag anzeigen
[...]
So, für heute ist es genug, ...
Für mich ist es immer wieder erstaunlich, dass Hilfesuchende in/mit ihrer Unwissenheit entscheiden was für den Helfenden notwendig ist und was nicht. Und das gestellte Fragen nur zum Teil bzw. gar nicht beantwortet werden.
__________________
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!
Mit Zitat antworten
  #5  
Alt 18.01.2010, 13:32:58
Gileeser Gileeser ist offline
Anfänger
 
Registriert seit: Jan 2010
Alter: 14
Beiträge: 10
AW: Eine Tabelle mit 10 IDs verweist auf eine Tabelle

O! O! vt1816
Ich wünsche Dir einen schönen Tag und natürlich den anderen Besuchern auch!!!

Schade das Du nicht durch die Zeilen lesen kannst!
Deine Begrüßung: Hallo und willkommen in Deinem Alter hier im Forum ...
Meine Verabschiedung: So, für heute ist es genug ...

Hier ist nun die Fortsetzung von gestern:
Fehlermeldung habe ich nur eine: Query was empty
Eine komplette Strucktur der DB findes Du im Bild strucktur.png
LIMIT 30 benutze ich weil es viel mehr als 30 Ausgaben geben kann.

Wieso benutzt Du LIMIT 30 wenn Du nur "bis zu 10 Texte" erhalten möchtest?
Deine Frage zeigt mir, dass meine Frage nicht richtig gestellt oder verstanden worden ist:

Die Tabelle 'testen' hat Spalten X,Y,Z, ID_PLZ, ID_Ort und
10 Spalten mit der ID_besch1 ... ID_besch10.
In der Tabelle habe ich die ID_beschx Spalten auf 5 reduziert!
In den ID_beschx Spalten steht als Wert je eine Zahl von 1 bis 99, also 10 Zahlen aus 99.

Die Tabelle 'beschbg' hat 2 Spalten Idtext und btext. Idtext hat einen Wert von 1 bis 99 und
btext hat einen Wert wie "Haus" oder "Garten" oder "Xxx".

ID_beschx steht also in Beziehung zu Idtex, also hat
ID_besch3 den Wert 12 und Idtext den Wert 12 soll die Ausgabe z.B. "Zaun" sein und
das natürlich dann mit bis zu 10 Ausgaben.
Beispiel:
Datensatz 25, Hans Meier, 12345 Testort, Gartenstr. 45, Haus, Garten, Zaun, Baum,
Weg, Steine, Ziegel, Zement, Fenster, Tür

Die Formatierung der Ausgabe wird mit Smarty gemacht.
Hinweis:
Die Zahl 99 kann auch 900 sein und die Texte sind ganze Sätze in der OriDB.

Ich bin gespannt ...

Viele Grüße
Kuddel
Miniaturansicht angehängter Grafiken
Strucktur.png  
Mit Zitat antworten
  #6  
Alt 18.01.2010, 14:22:02
Ckaos Ckaos ist offline
Member
 
Registriert seit: Nov 2007
Beiträge: 843
AW: Eine Tabelle mit 10 IDs verweist auf eine Tabelle

Hi

doppeltes join auf eine tabelle ohne alias könnte zu dem fehler führen
Zitat:
Zitat von Gileeser Beitrag anzeigen
Guten Tag!
$query = "SELECT * FROM testen
LEFT JOIN plz ON testen.ID_PLZ = plz.Idpost
LEFT JOIN ort ON testen.ID_Ort = ort.IdOrt
LEFT JOIN beschbg ON testen.ID_besch3 = beschbg.Idtext /* funkzuniert mit Zahl 1 bis 10 */
LEFT JOIN beschbg ON testen.ID_besch7 = beschbg.Idtext /* Der 2. Eintrag erzeugt einen DB-Fehler Query was empty*/
WHERE plz.PLZ $pp
ORDER by plz.PLZ
LIMIT 30";
return $query;
versuch mal
Code:
SELECT * FROM  testen
LEFT JOIN  plz ON testen.ID_PLZ = plz.Idpost
LEFT JOIN  ort ON testen.ID_Ort = ort.IdOrt
LEFT JOIN beschbg as a ON testen.ID_besch3 = a.Idtext /* funkzuniert mit Zahl 1 bis 10 */
LEFT JOIN beschbg as b ON testen.ID_besch7 = b.Idtext  /* Der 2. Eintrag erzeugt einen DB-Fehler Query was empty*/
WHERE  plz.PLZ =$pp
ORDER by plz.PLZ
LIMIT 30
mfg

ckaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
Mit Zitat antworten
  #7  
Alt 18.01.2010, 21:13:05
Gileeser Gileeser ist offline
Anfänger
 
Registriert seit: Jan 2010
Alter: 14
Beiträge: 10
AW: Eine Tabelle mit 10 IDs verweist auf eine Tabelle

Hallo

Danke für Deine Mühe ckaos,

leider kommt bei 2 Verweisen auf eine Tabelle immer der Fehler.

Ich werde morgen mal eine ganze einfache DB nur mit PHP bauen.

Viele Dank für die Arbeit
Kuddel
Mit Zitat antworten
  #8  
Alt 18.01.2010, 21:21:57
Ckaos Ckaos ist offline
Member
 
Registriert seit: Nov 2007
Beiträge: 843
AW: Eine Tabelle mit 10 IDs verweist auf eine Tabelle

hi

ist denn ID_besch7 immer besetzt?
Wenn nicht mach nen subquery mit ner if abfrage
also so
Code:
SELECT *,
if(testen.ID_besch7>null,select btext from beschbg where idtext=testen.ID_besch7,"leer") as
ID_besch7_text
FROM  testen
LEFT JOIN  plz ON testen.ID_PLZ = plz.Idpost
LEFT JOIN  ort ON testen.ID_Ort = ort.IdOrt
LEFT JOIN beschbg as a ON testen.ID_besch3 = a.Idtext /* funkzuniert mit Zahl 1 bis 10 */
WHERE  plz.PLZ =$pp
ORDER by plz.PLZ
LIMIT 30
mfg

Ckaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
Mit Zitat antworten
Antwort

Stichworte
join, left join, tabellen


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
Daten nach Spalteninhalte aus anderer Tabelle sortieren paedda MySQLi/PDO/(MySQL) 2 14.05.2009 15:46:15
Tabelle in einem "fremden" Tag erzeugen Weide HTML, CSS und JavaScript Help! 18 06.02.2009 16:13:01
Tabelle verliert Datensätze ?! TuxCommander MySQLi/PDO/(MySQL) 5 26.05.2008 17:11:03
Problem dynamische Tabelle aber wie? Pixelschubser PHP für Fortgeschrittene und Experten 1 08.10.2005 19:16:24
MySQL - tabelle in tabelle Gweilo PHP für Fortgeschrittene und Experten 4 09.11.2002 19:41:57


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


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


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