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

Einführung in XHTML, CSS und Webdesign

Einführung in XHTML, CSS und Webdesign 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 19.10.2005, 14:15:00
matthi80 matthi80 ist offline
Anfänger
 
Registriert seit: Oct 2005
Beiträge: 3
LEFT JOIN funtkioniert nicht richtig

Hallo

Ich habe zwei Tabellen. Einmal die Tabelle "ehrenamtswegweiser" mit dem Feld "bereich1". Dieses Feld wird durch ein Formular mit Chekcboxen mit Tätigkeitsbereichen gefüllt. Wenn mehrere Checkboxen aktiviert wurden dann werden die jeweiligen Werte durch <br><br> voneinander getrennt in diese Feld geschrieben (also ein Strin). So könnte z.B. ein gefülltes Feld ausssehen: Sport und Bewegung<br><br>Gesundheit

Nun habe ich noch eine zweite Tabelle "taetigkeitsbereiche" mit dem Feld "taetifkeitsbereich". Diese Tabelle ist mit allen möglichen Tätigkeitsbereichen gefüllt, hat also 14 Zeilen/Datensätze und wird nicht jehr verändert.

Nun möchte ich herausbekommen wieviele Tätigigkeitsbereiche ausgewählt wurden und möchte alle auflisten und dahinter die Anzahl, auch wenn sie Null ist.

Ich benutze folgende Query:

SELECT t.taetigkeitsbereich, count( w.bereich1 ) AS anzahl
FROM taetigkeitsbereiche t
LEFT JOIN ehrenamtswegweiser w ON w.bereich1 LIKE '%t.taetigkeitsbereich%'
GROUP BY t.taetigkeitsbereich
ORDER BY anzahl DESC

Leider listet er mir nur alle Tätigkeitsbereiche auf, aber in der anzahl - Spalte stehen nur Nullen.

Wenn ich folgende Zeile der Anfrage so ändere:
LEFT JOIN ehrenamtswegweiser w ON w.bereich1 = t.taetigkeitsbereich
dann zählt er wenigstens die Tätigkeitsbereiche die einzeln in den Feldern stehen als nicht durch <br><br> getrennt sind.
Aber durch das LIKE und die anderen Operatoren sollte es doch eigentlich funtionieren oder nicht?
Mit Zitat antworten
  #2  
Alt 19.10.2005, 14:54:12
Marilu Marilu ist offline
Member
 
Registriert seit: Apr 2003
Ort: 49.54, 8.35 - 3./9
Beiträge: 878
AW: LEFT JOIN funtkioniert nicht richtig

Die Abfrage sollte etwa so gehen:

SELECT t.taetigkeitsbereich, count( w.bereich1 ) AS anzahl
FROM taetigkeitsbereiche t
LEFT JOIN ehrenamtswegweiser w ON w.bereich1 = t.taetigkeitsbereich'
WHERE ...(Deine Bedingung)...
GROUP BY t.taetigkeitsbereich
ORDER BY anzahl DESC
Mit Zitat antworten
  #3  
Alt 19.10.2005, 15:04:44
matthi80 matthi80 ist offline
Anfänger
 
Registriert seit: Oct 2005
Beiträge: 3
AW: LEFT JOIN funtkioniert nicht richtig

Ich dachte das ON tritt bei einem LEFT JOIN Query an die Stelle von WHERE?

Wenn ich ON und WHERE verwende zeigt er mir zwar keinen Fehler an, aber es kommt auch kein Ergebnis.
Mit Zitat antworten
  #4  
Alt 19.10.2005, 15:20:30
Marilu Marilu ist offline
Member
 
Registriert seit: Apr 2003
Ort: 49.54, 8.35 - 3./9
Beiträge: 878
AW: LEFT JOIN funtkioniert nicht richtig

Zitat:
Ich dachte das ON tritt bei einem LEFT JOIN Query an die Stelle von WHERE?
Nein. Das ON zeigt an, über welche Felder die Tabellen verbunden sind. WHERE ist die einschränkende Bedingung, welche Resultate angezeigt werden.
Zitat:
Wenn ich ON und WHERE verwende zeigt er mir zwar keinen Fehler an, aber es kommt auch kein Ergebnis.
Da mußt Du etwas mit Deinen Tabellen rumprobieren. Das kannst Du auch gut im phpMyAdmin machen.
Mit Zitat antworten
  #5  
Alt 19.10.2005, 15:31:57
matthi80 matthi80 ist offline
Anfänger
 
Registriert seit: Oct 2005
Beiträge: 3
AW: LEFT JOIN funtkioniert nicht richtig

Zitat:
Zitat von Marilu
Das kannst Du auch gut im phpMyAdmin machen.
Da probiere ich ja die ganze Zeit die Abfrage hinzubekommen.

Wenn du sagst man gibt durch das ON an wie die Tabellen miteinander verbunden sind, kann es dann sein dass das bei mir das Problem ist?

Ich habe ja beschrieben dass in der Tabelle "ehrenamtswegweiser" das Feld "bereich1" mit einem zusammengesetzten String gefüllt ist. Also z.B. so: Sport und Bewegung<br><br>Gesundheit.

Die andere Tabelle "taetigkeitsbereiche" mit dem Feld "taetigkeitsbereich" ist ja jeweils nur mit einem Tätigkeitsbereich gefüllt. D.h. ich habe 14 Datensätze. Erster Datensatz: Sport und Bewegung Zweiter Datensatz: Gesundheit usw.

Wenn ich diese beiden Felder nun miteinander mittels ON mit = vergleiche dann gibt es ja schonmal keine Übereinstimmung wenn ich im "bereich1" einen zusammengesetzten String habe.
Mit Zitat antworten
  #6  
Alt 20.10.2005, 08:04:00
Marilu Marilu ist offline
Member
 
Registriert seit: Apr 2003
Ort: 49.54, 8.35 - 3./9
Beiträge: 878
AW: LEFT JOIN funtkioniert nicht richtig

Zitat:
Zitat von matthi80
Wenn ich diese beiden Felder nun miteinander mittels ON mit = vergleiche dann gibt es ja schonmal keine Übereinstimmung wenn ich im "bereich1" einen zusammengesetzten String habe.
Dann ist klar, warum es nicht geht. Vermutlich mußt Du Dein Datenbankdesign entsprechend anpassen.
Mit Zitat antworten
  #7  
Alt 21.10.2005, 14:21:26
R. Woitaschik R. Woitaschik ist offline
Anfänger
 
Registriert seit: Nov 2004
Ort: Düsseldorf
Beiträge: 99
AW: LEFT JOIN funtkioniert nicht richtig

Hi matthi80,

versuch mal folgendes in deinem (oben aufgeführten) Statement

Code:
LEFT JOIN ehrenamtswegweiser w ON w.bereich1 LIKE CONCAT('%', t.taetigkeitsbereich, '%')
Du hast in deinem LIKE ein Feld in Anführungszeichen verwendet. Bei MySQL wird dies nicht ersetzt sondern als Literal (d.h. Zeichenkette) betrachtet. Dadurch hat er keine Datensätze gefunden. Ansonsten ist das mit dem "ON" schon OK so.

Gruß
Richard

Geändert von R. Woitaschik (21.10.2005 um 14:22:19 Uhr)
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
Link nicht richtig bei Suchmaschinen Script Mutated! PHP für Fortgeschrittene und Experten 12 19.07.2004 19:49:11
Browserfenster öffnen beim download unterdrücken Cooper PHP Grundlagen 4 11.05.2004 07:57:33
SQL Abfrage (INNER JOIN) AlexWeber MySQLi/PDO/(MySQL) 6 08.10.2003 09:10:39
Ist left join für mich die richtige wahl? pfuchs PHP Grundlagen 1 29.09.2003 20:31:40
mysql query mit Join problem Silencer PHP für Fortgeschrittene und Experten 4 18.03.2003 15:38:31


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:43:29 Uhr.


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


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