php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben || php-forumjetzt anmelden
 

SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 14-12-2006, 20:05
martinm79
 Registrierter Benutzer
Links : Onlinestatus : martinm79 ist offline
Registriert seit: Jan 2004
Ort: Deutschland
Beiträge: 744
martinm79 ist zur Zeit noch ein unbeschriebenes Blatt
Standard 1 Tabelle - 2 Abfragen - UNION

Hallo,

habe eine Tabelle counter.

Nun möchte ich alle Einträge raussuchen, die von heute sind
und die selbe session haben. Also das jeder besucher nur einmal gezählt wird.

Aber wenn ich

SELECT * FROM counter WHERE datum LIKE '20061214%'
UNION
SELECT DISTINCT session FROM counter

abfragen will, dann kommt

#1064 - You have an error in your SQL syntax near 'UNION
SELECT DISTINCT session FROM counter LIMIT 0, 30' at line 2

Wie muß ich die Abfrage denn schreiben?
Hab jetzt schon fast alles durch.

ps:
Das sind die Spalten der Tabelle
id,
seite,
datum,
cookie,
anzahl,
referer,
port,
sprache,
browser,
host,
session,
ip
__________________
Gut geraten ist halb gewußt.
Mit Zitat antworten
  #2 (permalink)  
Alt 15-12-2006, 10:40
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Abgesehen von der Syntax ist UNION schon der falsche ansatz.

Zitat:
Nun möchte ich alle Einträge raussuchen, die von heute sind
und die selbe session haben. Also das jeder besucher nur einmal gezählt wird.
was denn jetzt?

SELECT * FROM counter WHERE datum LIKE '20061214%' AND session = 'x'

oder

SELECT DISTINCT session , ... FROM counter WHERE datum LIKE '20061214%'


BTW:
Code:
datum LIKE '20061214%'
Igitt!!!!
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich kann und werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Mit Zitat antworten
  #3 (permalink)  
Alt 15-12-2006, 10:42
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Vermutlich meint er eher: Alle von Heute, nach Session gruppiert, jeweilige Anzahl ggf. gezählt.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #4 (permalink)  
Alt 15-12-2006, 10:44
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Ich kann ihn verstehen:
Wenn man nicht weiß, was man will,
kann man auch nicht wissen, wie es geht...
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich kann und werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Mit Zitat antworten
  #5 (permalink)  
Alt 15-12-2006, 17:26
martinm79
 Registrierter Benutzer
Links : Onlinestatus : martinm79 ist offline
Registriert seit: Jan 2004
Ort: Deutschland
Beiträge: 744
martinm79 ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: 1 Tabelle - 2 Abfragen - UNION

Zitat:
Original geschrieben von martinm79

Nun möchte ich alle Einträge raussuchen, die von heute sind
und die selbe session haben. Also das jeder besucher nur einmal gezählt wird.
Was ist daran falsch ausgedrückt?

Nur wenn ich SELECT DISTINCT session benutze, dann kann ich ja nur die
session Spalte raussuchen. Ich möchte aber alle Spalten von heute haben.

Wen nicht UNION was/wie dann?
__________________
Gut geraten ist halb gewußt.
Mit Zitat antworten
  #6 (permalink)  
Alt 15-12-2006, 17:33
martinm79
 Registrierter Benutzer
Links : Onlinestatus : martinm79 ist offline
Registriert seit: Jan 2004
Ort: Deutschland
Beiträge: 744
martinm79 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von wahsaga
Vermutlich meint er eher: Alle von Heute, nach Session gruppiert, jeweilige Anzahl ggf. gezählt.
He he... nach Session gruppiert?

Wenn ich die Daten nach Session gruppiere, zeigt er mir die gleichen Session mehrmals an, oder immer nur verschiedene und läst die doppelten weg?

Die Einträge kamen ja so zu stande.
1. Benutzer betritt index.php
2. Benutzer betritt info.php
3. Benutzer betritt anmelden.php

Und auf jeder Seite fügt er eine Zeile in die db counter mit allen Daten vom Benutzer. Mithilfe der Session kann ich ja die einzelnen Benutzer ja gut unterscheiden, deswegen muß ich die doppelten Einträge nicht alle anzeigen.
__________________
Gut geraten ist halb gewußt.
Mit Zitat antworten
  #7 (permalink)  
Alt 15-12-2006, 22:18
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Definiere doppelte einträge.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich kann und werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Mit Zitat antworten
  #8 (permalink)  
Alt 16-12-2006, 15:33
martinm79
 Registrierter Benutzer
Links : Onlinestatus : martinm79 ist offline
Registriert seit: Jan 2004
Ort: Deutschland
Beiträge: 744
martinm79 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hab jetzt mal zum Beipspiel 4 Einträge aus dieser Datei genommen.
Als CSV dargestellt mit Simikolon als trennzeichen.

PHP-Code:
/*
id;  seite;  datum;  cookie;  anzahl;  referer;  port;  sprache;  browser;  host;  session;  ip  
30476;/home/index.php;20061216110701;1;1;;58375;;Python-urllib/2.1;web.efi-re.de;f994f643e6946762da254551cd3a6d78;195.226.187.21
30477;/home/feedback.php;20061216110701;1;1;;58376;;Python-urllib/2.1;web.efi-re.de;f994f643e6946762da254551cd3a6d78;195.226.187.21
30478;/home/kontakt.php;20061216110701;1;1;;58378;;Python-urllib/2.1;web.efi-re.de;f994f643e6946762da254551cd3a6d78;195.226.187.21
30479;/privat/index.php;20061216110701;1;1;;58382;;Python-urllib/2.1;web.efi-re.de;f994f643e6946762da254551cd3a6d78;195.226.187.21

*/ 
Und in der Spalte session sieht man, das alle Einträge von einem User/Crawler kommen.
Das meinte ich mit doppelten Einträgen.
Also will ich alle Einträge, die von dieser Session kommen, bei der Ergebnisaugabe nur
einmal anzeigen.

Deswegen wollte ich mittels UNION 2 Abfragen machen.
Einmal nach Zeitlichem Raum und das andere nach DISTINCT session.
Das ging aber nicht.
Hoffe Ihr versteht jetzt was ich meine.
__________________
Gut geraten ist halb gewußt.
Mit Zitat antworten
  #9 (permalink)  
Alt 16-12-2006, 16:09
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

aha, also doch nur pro session einen eintrag.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich kann und werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Mit Zitat antworten
  #10 (permalink)  
Alt 16-12-2006, 16:23
martinm79
 Registrierter Benutzer
Links : Onlinestatus : martinm79 ist offline
Registriert seit: Jan 2004
Ort: Deutschland
Beiträge: 744
martinm79 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Wie gestalte ich denn die SQL Abfrage am besten?
Das Hauptproblem was ich habe, ist wenn ich DISTINCT session abfrage, denn kann ich immer nur die Session abfragen. Ich möchte aber alle Spalten in der Abfrage haben und nicht nur die einzelnen Sessions.
__________________
Gut geraten ist halb gewußt.
Mit Zitat antworten
  #11 (permalink)  
Alt 16-12-2006, 16:24
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Wer sagt das? Wo steht das? Wie äußert sich das?
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich kann und werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Mit Zitat antworten
  #12 (permalink)  
Alt 16-12-2006, 16:50
martinm79
 Registrierter Benutzer
Links : Onlinestatus : martinm79 ist offline
Registriert seit: Jan 2004
Ort: Deutschland
Beiträge: 744
martinm79 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hat keiner gesagt, aber ich habe es angenommen, weil ich bei den Abfragen immer Fehlermeldungen bekamm.

Es äußert sich so.

Ich frage
SELECT DISTINCT session FROM counter

und er gibt mir alle session wieder. Aber auch nur die sessions, ist mir ja aber auch klar, weil ich ja nur nach session gefragt habe.

Wenn ich aber jetzt

SELECT datum, DISTINCT session FROM counter
abfrage, dann kommt eine Fehlermeldung.

#1064 - You have an error in your SQL syntax near 'DISTINCT session FROM counter

Wie muß ich denn die Abfrage verändert?
__________________
Gut geraten ist halb gewußt.
Mit Zitat antworten
  #13 (permalink)  
Alt 16-12-2006, 16:56
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

naja, hauptsache du hast das schon gestern stur behauptet, dass es so wäre anstatt unsere tipps zu hinterfragen.

http://dev.mysql.com/doc/refman/5.0/en/select.html
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich kann und werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Mit Zitat antworten
  #14 (permalink)  
Alt 16-12-2006, 17:48
martinm79
 Registrierter Benutzer
Links : Onlinestatus : martinm79 ist offline
Registriert seit: Jan 2004
Ort: Deutschland
Beiträge: 744
martinm79 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

PHP-Code:
SELECT INTO OUTFILE 'session.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
FROM counter 
Da füge ich noch meine WHERE abfrage ein und denn wird eine
csv Datei erstellt.
Diese Csv Datei lese ich denn in ein Array
und schließe die doppelten sessions Einträge aus.
Oder wie?

Und wenn ich das so mache,
denn liegt ja die Datei im data Ordner von mysql.
Wie komm ich da ran?
Denn muß ich die Datei temporär speichern das die Scripte daurauf zugreifen können oder wie?
__________________
Gut geraten ist halb gewußt.
Mit Zitat antworten
  #15 (permalink)  
Alt 16-12-2006, 17:57
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

na hauptsache, da taucht auf einmal ne csv-datei auf und keiner weiß woher oder was das mit dem problem zu tun hat...

Was hat es damit zu tun? Tut mir leid, wenn ich heute ein bisschen ungeduldig bin...
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich kann und werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

OnPremise versus Cloud - das richtige System finden
Wir beleuchten in diesem Artikel, die Vor- und Nachteile für Cloud oder OnPremise Systemen. Und warum es definitiv Zeit wird in die Cloud zu wechseln.

09.05.2022 | julia_mjr

Warum Texterstellung mit künstlicher Intelligenz richtig gut ist
Warum Texterstellung mit künstlicher Intelligenz richtig gut istKünstliche Intelligenz ist dabei, die Welt zu erobern. Die größten Unternehmen entwickeln Systeme, die einen Text für Sie schreiben können. Und sie machen das sehr gut.

05.01.2022 | Berni


 

Aktuelle PHP Scripte

phpBasics Counter

Der Counter arbeitet mit einer klassischen einstellbaren IP-Reloadsperre. Er zählt die Besucher, die Seitenaufrufe und ermittelt auch die aktuellen Onlineuser. Zur Datenspeicherung wird eine MySQL-Datenbank genutzt. Der Counter überprüft seine Instal

09.09.2022 numaek | Kategorie: PHP/ Counter
MyPHPlib-Bibliotheksverwaltung

MyPHPlib ist eine Scriptsammlung, mit der die Bibliotheksverwaltung incl. Ausleihe und Recherche gelingt. Die Scriptsammlung wird seit Mitte 2005 entwickelt und ist besonders an den Bedürfnissen von Schulen angepasst.

11.08.2022 RobertG | Kategorie: PHP/ Management
responsive vertikales Menu

Diese Menu basiert auf php, jQuery, css und ajax. Wer sein Menu mit nested sets vertikal realisieren will, findet darin eine gute Lösung.

11.08.2022 COVISIONMEDIA | Kategorie: JAVASCRIPT/ Navigation
 Alle PHP Scripte anzeigen

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