php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 16.08.2005, 15:04  
Benutzer
 
Registriert seit: 26.09.2003
Beiträge: 98
wizzardxx
Standard mehrere Tabellen ohne übereinstimmung mit anzeigen

Hallo,

ich bin mir hier ein Poll Script am basteln.
Das klappt auch alles bis auf die Auswertung.
Ich möchte gerne auch die Antworten ausgeben lassen die noch keiner gevotet hat. Im moment werden nur Antworten ausgelesen die mind. eine Stimme haben.

PHP-Code:
<?
$result2 
mysql_query("SELECT COUNT(a.auswahl) AS SUMME, a.id, a.un, 
b.id, b.fragestellung, b.startdate, b.enddate,
c.id, c.auswahl, c.un
FROM u_replies AS a, u_umfragen AS b, u_auswahl AS c
WHERE b.id = c.un AND c.id = a.auswahl AND startdate= '"
.$row[3]."' GROUP BY c.id");
?>
Mit c.id = a.auswahl werden dann natürlich nur die Daten ausgelesen die zutreffen.
Datenbank Tabellen:

u_umfragen:
id - fragestellung - startdate - enddate

u_auswahl:
id - auswahl - un

u_replies:
id - un - auswahl
wizzardxx ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 16.08.2005, 17:25  
Benutzer
 
Registriert seit: 26.09.2003
Beiträge: 98
wizzardxx
Standard

Hat sich erledigt! Hab es jetzt anders gemacht.
wizzardxx ist offline   Mit Zitat antworten
Alt 16.08.2005, 19:01  
Benutzer
 
Registriert seit: 26.09.2003
Beiträge: 98
wizzardxx
Standard

Ups.. sorry hat sich doch nicht erledigt. Kann mir über o.g. Code doch jemand helfen?
Also wenn eine Auswahl noch keine Stimme hat soll

Auswahl_X
Stimmen: 0 | Prozent: 0

ausgegeben werden.
wizzardxx ist offline   Mit Zitat antworten
Alt 16.08.2005, 19:09  
Gast
 
Beiträge: n/a
Standard

Ein LEFT JOIN liefert sämtliche Datensätze der linken (ersten) Tabelle. Auch wenn kein passender Datensatz aus der rechten Tabelle vorhanden ist - die Felder der rechten Tabelle werden dann mit NULL angenommen.

Öhem...mal wieder wenig verständlich (nicht-)erklärt.
Lies es Dir mal lieber bei z.B. http://www.w3schools.com/sql/sql_join.asp durch
  Mit Zitat antworten
Alt 16.08.2005, 20:18  
Benutzer
 
Registriert seit: 26.09.2003
Beiträge: 98
wizzardxx
Standard

Aha danke für den Tip.
Da bin ich froh das ich jetzt schon mehrere Tabellen miteinander Verknüpfen kann und jetzt kommt sowas.

Ich habe das jetzt mal versucht mit dem LEFT JOIN auf mein SQL Query
anzuwenden.
Natürlich bekomme ich jetzt eine Fehlermeldung.

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL....

PHP-Code:
<?
$result2 
mysql_query("SELECT COUNT(a.auswahl) AS SUMME, a.id, a.un, 
b.id, b.fragestellung, b.startdate, b.enddate,
c.id, c.auswahl, c.un
FROM u_replies AS a, u_umfragen AS b, u_auswahl AS c
LEFT JOIN b.id ON c.un LEFT JOIN c.id ON a.auswahl WHERE startdate= '"
.$row[3]."' GROUP BY c.id") OR mysql_error();
?>
wizzardxx ist offline   Mit Zitat antworten
Alt 16.08.2005, 20:24  
Erfahrener Benutzer
 
Registriert seit: 05.07.2004
Beiträge: 1.476
DiBo33
Standard

Dein SELECT ist total verkehrt.
Lese nochmals die von VolgerK geposte Seite durch.
DiBo33 ist offline   Mit Zitat antworten
Alt 16.08.2005, 20:46  
Gast
 
Beiträge: n/a
Standard

btw, Du meinst vermutlich
Code:
OR die( mysql_error() );
sonst wird $result2 die zeichenektte von mysql_error() zugewiesen. Das kann zwar auch erwünscht sein, aber vermutlich ist es in diesem Fall wohl doch ein Fehler

Und zum JOIN:
Code:
SELECT
	a.v, a.w, b.x
FROM
	linkeTabelle AS a
LEFT JOIN	
	rechteTabelle AS b
ON
	a.m=b.n
WHERE
	a.v > 5
GROUP BY
	a.irgendwas
Wenn Du mehr als zwei Tabellen hast, dann denke es Dir so, dass ein JOIN von zwei Tabellen Dir wieder eine Tabelle liefert und mit dieser "neuen Tabelle" verbindest Du dann die dritte. Also muss es so aussehen
Code:
SELECT
	a.v, a.w, b.x,c.y
FROM
	linkeTabelle AS a
LEFT JOIN	
	rechteTabelle AS b
ON
	a.m=b.n
LEFT JOIN	
	ganzRechteTabelle AS c
ON
	a.n=c.p
WHERE
	a.v > 5
GROUP BY
	a.irgendwas
Schreib es ruhig auch im php-Code soweit auseinandergezogen hin, damit Du die Übersicht behalten kannst.
  Mit Zitat antworten
Alt 16.08.2005, 21:42  
Benutzer
 
Registriert seit: 26.09.2003
Beiträge: 98
wizzardxx
Standard

Vielen Dank erstmal für die Antworten.
Mir Qualmt vor lauter Joins schon der Kopf.
Ich werde mir dein Beispiel jetzt noch mal in aller Ruhe zu gemüte führen.
Wenn ich dann nicht weiter komme melde ich mich noch mal.
wizzardxx ist offline   Mit Zitat antworten
Alt 16.08.2005, 22:09  
Benutzer
 
Registriert seit: 26.09.2003
Beiträge: 98
wizzardxx
Standard

So, jetzt habe ich es genau so gemacht wie in deinem Beispiel.
Bekomme aber wieder eine Fehlermeldung:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result ...

Müsste doch jetzt so Stimmen oder?
PHP-Code:
<?
$result2 
mysql_query("SELECT 
COUNT(a.auswahl), a.id, a.un, b.id, b.fragestellung, b.startdate, b.enddate, c.id, c.auswahl, c.un
FROM 
    u_umfragen AS b
LEFT JOIN
    u_auswahl AS c
ON
    b.id=c.un
LEFT JOIN
    u_replies AS c
ON
    c.id=a.auswahl
WHERE
    startdate= '"
.$row[3]."'
GROUP BY
    c.id"
) OR mysql_error();
?>
wizzardxx ist offline   Mit Zitat antworten
Alt 16.08.2005, 22:13  
Gast
 
Beiträge: n/a
Standard

immer noch or mysql_error()
Bitte ändern und die Fehlermedung beachten.
mach am besten gleich
PHP-Code:
<?php
$query 
="
    SELECT 
        COUNT(a.auswahl), a.id, a.un, b.id, b.fragestellung, b.startdate, b.enddate, c.id, c.auswahl, c.un
    FROM 
        u_umfragen AS b
    LEFT JOIN
        u_auswahl AS c
    ON
        b.id=c.un
    LEFT JOIN
        u_replies AS c
    ON
        c.id=a.auswahl
    WHERE
        startdate= '"
.$row[3]."'
    GROUP BY
        c.id
"
;
    
$result2 mysql_query($query) OR die(mysql_error().': '.$query);
?>
daraus, so dass es Dir den Fehler samt kompletter Abfrage ausgibt und dann die Skriptabarbeitung beendet.
Das gibt was aus?
  Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Daten aus MySQL korrekt anzeigen sams9 PHP Tipps 2008 21 19.06.2008 20:58
Tabellen für Vokabeltrainer anlegen... anonym01 PHP Tipps 2008 9 03.03.2008 21:18
PHP Array in MYSQL Tabellen schreiben Matt Datenbanken 1 26.02.2008 19:43
Join-Abfrage über mehrere Tabellen sinai Datenbanken 3 04.02.2006 13:05
[Erledigt] abfrage mehrere tabellen PHP Tipps 2005-2 3 31.10.2005 21:57
[gelöst] alle Tabellen anzeigen? Datenbanken 6 01.08.2005 13:28
[Erledigt] foreign key anzeigen lassen Datenbanken 0 20.06.2005 16:03
Tabellen mit Ihren Zellen anzeigen lassen GELight Datenbanken 1 11.05.2005 10:49
[Erledigt] Cookie - Seite anzeigen / nicht anzeigen PHP Tipps 2004-2 2 11.11.2004 15:59
[Erledigt] Selectanfrage an eine Datenbank,aber aus mehreren Tabellen Datenbanken 2 26.10.2004 07:23
Mysql tabellen wert in html anzeigen PHP Tipps 2004 20 29.09.2004 16:55
[Erledigt] tabellen verknuepfen und ergebnisse ueber link ausgeben PHP Tipps 2004 3 21.09.2004 06:04
Alle Datenbanken und Tabellen anzeigen anzeigen imported_Lumio PHP Tipps 2004 4 13.09.2004 14:26
[Erledigt] fulltext suche priorität von tabellen setzen Datenbanken 1 09.08.2004 15:26
Tabellen anzeigen!? PHP Tipps 2004 6 12.07.2004 21:33

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
zwei tabellen voll anzeigen mysql join, count und summe verknüpfen über zwei tabellen sql, sql code prozentuale übereinstimmung, mysql join ohne übereinstimmung, join ohne übereinstimmung, sql tabellen verknüpfen ohne übereinstimmung, ohne übereinstimmung, mysql suche prozentuale übereinstimmung anzeigen, mysql keine übereinstimmung, sql forum - übereinstimmung und keine übereinstimmung, sql join keine übereinstimmungen, tabellen joinen sql auch bei keiner übereinstimmung, select join ohne übereinstimmung, mysql zwei tabellen \ohne join\, sql keine übereinstimmung, php mehrere tabellen einer datenbank anzeigen, select count(*) mehrere tabellen am ende ausgeben, mysql zwei tabellen ohne join ausgeben, sql übereinstimmung tabellen, sql abfrage ids von zwei tabellen auflisten

Alle Zeitangaben in WEZ +1. Es ist jetzt 18:43 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.