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 |
12.01.2012, 10:36:02
|
Anfänger
|
|
Registriert seit: Mar 2009
Alter: 68
Beiträge: 11
|
|
Abfrage liefert Datensätze doppelt
Hallo zusammen,
ich stehe gerade ein wenig auf dem Schlauch.
Ich habe folgende Abfrage:
$abfSQL= ("SELECT DISTINCT n.notiz_id,
n.id_mitglieder_id,
n.notiz,
n.zaehler,
DATE_FORMAT(n.erstellt, '%d.%m.%Y') AS datum,
DATE_FORMAT(n.erstellt, '%H:%m:%s') AS zeit,
n.betreff,
n.thread,
m.mitglieder_id,
DATE_FORMAT(m.erstellt, '%d.%m.%Y') AS regdatum,
m.mitgliedsname
FROM notizen AS n, mitglieder AS m
WHERE n.thread='$thread' ");
Die Abfrage liefert mir die Daten 2mal. Hier wird ja das Produkt aus den IDs gebildet.
Ich habe momentan keine Idee, wie die Abrage aussehen muss, damit ich die Daten nur einmal erhalte.
Kann mir jemand helfen?
Gruß
Willi
|
12.01.2012, 11:20:12
|
SELFPHP Experte
|
|
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
|
|
AW: Abfrage liefert Datensätze doppelt
Meine Glaskugel sagt:
Was ist wohl der Unterschied zwischen:
MYSQL_ASSOC und MYSQL_NUM zu MYSQL_BOTH
|
12.01.2012, 16:35:44
|
Anfänger
|
|
Registriert seit: Mar 2009
Alter: 68
Beiträge: 11
|
|
AW: Abfrage liefert Datensätze doppelt
Zitat:
Zitat von DokuLeseHemmung
Meine Glaskugel sagt:
Was ist wohl der Unterschied zwischen:
MYSQL_ASSOC und MYSQL_NUM zu MYSQL_BOTH
|
Ich weiß jetzt nicht, was du mir sagen willst.
Die Abfrage liefert mir auch im 'MySQL Command Line Client' die Datensätze doppelt.
Dann kann das doch nichts mit php zu tun haben, oder doch?
Folgendermaßen verarbeite ich die Abfrage:
$erg=mysql_query($abfSQL) OR die("Error: $abfSQL <br>".mysql_error());
while ($list=mysql_fetch_row($erg)) {
Die anschließende Ausgabe funktioniert auch, nur dass ich jeder Datensatz 2 mal ausgegeben wird.
Da ich Anfänger bin, wäre es hilfreich, wenn du genau sagst, was fehlt.
Gruß
Willi
|
12.01.2012, 16:48:16
|
SELFPHP Experte
|
|
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
|
|
AW: Abfrage liefert Datensätze doppelt
Mein Vorschlag:
Wenn es kein Ausgabe Problem ist, dann solltest du den JOIN überarbeiten.
Aber dazu kann ich nichts sagen, denn ich kenne die Tabellenstruktur nicht. Auch das falsche und das gewünschte Ergebnis nicht
Tipp:
Vermeide die vor SQL92 Joins
Also nur Links zum Thema:
A Visual Explanation of SQL Joins
SQL und relationale Algebra
Die 5 Normal Formen
|
12.01.2012, 20:51:34
|
Anfänger
|
|
Registriert seit: Mar 2009
Alter: 68
Beiträge: 11
|
|
AW: Abfrage liefert Datensätze doppelt
Ich habe die Abfrage einmal reduziert:
SELECT n.id_mitglieder_id,
m.mitglieder_id,
n.thread
FROM notizen AS n, mitglieder AS m
WHERE n.thread=1;
Ausgabe:
id_mitglieder_id mitglieder_id thread
_______9___________9________1
_______9__________10________1
______10___________9________1
______10__________10________1
Hiervon möchte ich aber nur die ersten beiden Datensätze haben.
Wenn ich die 'm' Tabelle auch noch entferne bekomme ich natürlich nur 2 Datensätze, aber dann fehlen mir logischerweise die Daten aus der 'm' Tabelle.
Gibt es eine Möglichkeit, die richtige Anzahl Datensätze herauszubekommen, wenn die WHERE-Klausel sich auf Nichtschlüsselfelder bezieht? Man muss doch das 'kartesische Produkt' noch eingrenzen können.
'thread' ist bei mir kein Schlüsselfeld.
Gruß
Willi
|
13.01.2012, 08:06:44
|
SELFPHP Experte
|
|
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
|
|
AW: Abfrage liefert Datensätze doppelt
Ich sehe da nichts doppeltes.
Warum bleibt die Struktur weiterhin geheim?
Und, was ist an den ersten beiden gut und an den zweiten beiden böse?
Wie willst du gut von böse unterscheiden?
|
13.01.2012, 11:50:16
|
Anfänger
|
|
Registriert seit: Mar 2009
Alter: 68
Beiträge: 11
|
|
AW: Abfrage liefert Datensätze doppelt
Es sind im Endeffekt die gleichen Daten, die da rauskommen. Ich kann auch die letzten beiden DS nehmen, das spielt keine Rolle.
Die Struktur ist nicht geheim. Hier kommt sie:
CREATE TABLE `notizen` (
`notizen_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`id_mitglieder_id` int(10) unsigned NOT NULL,
`notiz` varchar(512) NOT NULL,
`erstellt` datetime NOT NULL,
`betreff` varchar(40) NOT NULL,
`thread` int(10) unsigned NOT NULL,
`zaehler` int(10) unsigned NOT NULL,
`noderg` varchar(1) NOT NULL,
PRIMARY KEY (`notizen_id`,`thread`) USING BTREE
)
CREATE TABLE `mitglieder` (
`mitglieder_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`mitgliedsname` varchar(30) NOT NULL,
`passwort` varchar(40) NOT NULL,
`email` varchar(50) NOT NULL,
`rechte` varchar(3) NOT NULL,
`erstellt` date NOT NULL,
`vorname` varchar(40) NOT NULL,
`nachname` varchar(40) NOT NULL,
PRIMARY KEY (`mitglieder_id`,`mitgliedsname`) USING BTREE
)
Ich hoffe, das hilft, um auf eine Lösung zu kommen.
Gruß
Willi
|
13.01.2012, 13:19:04
|
SELFPHP Experte
|
|
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
|
|
AW: Abfrage liefert Datensätze doppelt
Naja...
Weiterhin bleibt die Frage offen:
Wie kann man böse von guten Einträgen unterscheiden?
|
13.01.2012, 23:08:15
|
Anfänger
|
|
Registriert seit: Mar 2009
Alter: 68
Beiträge: 11
|
|
AW: Abfrage liefert Datensätze doppelt
Wenn du php-Experte bist und keine Ahnung von MySQL hast, dann ist das nichts schlimmes, aber verkneife dir einfach deine Antworten. Die bringen niemanden wirklich weiter.
|
14.01.2012, 02:20:08
|
SELFPHP Experte
|
|
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
|
|
AW: Abfrage liefert Datensätze doppelt
"Experte" ist ein automatisch vergebener Titel.
Da habe ich keinen Einfluss drauf.
Und Tschüs...
|
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 21:46:31 Uhr.
|