php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 07.08.2007, 15:40  
Neuer Benutzer
 
Registriert seit: 07.08.2007
Beiträge: 9
elwood
Standard MySQL

Hallo!

Ich bin MySQL-Newbie und hätte eine Frage zum Abruf bestimmter Einträge aus der Datenbank.

Ich möchte mir gerne eine Log-Statistik basteln. Der Eintrag der Seitenaufrufe in die Datenbank stellt kein Problem dar und funzt bei mir auch...

Zum Abruf der Daten habe ich mir ein Listenfeld zur Auswahl des Jahres sowie 12 Links für je einen Monatsnamen vorgestellt.

Theoretischer Ablauf: zuerst wähle ich aus dem Listenfeld ein Jahr aus (z.B. 2006) und dann einen Monat durch Klick auf den entsprechenden Link (z.B. April). Dann sollten alle Aufrufe dieses Jahres/ Monats abgerufen und dargestellt werden können a la „Im April 2006 hattest Du XXX Aufrufe.“

Meine Frage: ist das in dieser Form überhaupt möglich?
Es geht mir also um das Zusammenspiel zw. Listenfeld und Monatslink, den Befehl zum Abruf der Daten krieg ich dann schon hin.


Vielen Dank im Voraus,

mfg Matthias
elwood ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 07.08.2007, 19:24  
Erfahrener Benutzer
 
Registriert seit: 23.12.2003
Beiträge: 243
mAy^daY
Standard Re: MySQL

Zitat:
Zitat von elwood
[...]
Meine Frage: ist das in dieser Form überhaupt möglich?
Es geht mir also um das Zusammenspiel zw. Listenfeld und Monatslink, den Befehl zum Abruf der Daten krieg ich dann schon hin.
[...]

Hallo, so ist das durchaus möglich. Das scheint dann aber ehr ins PHP Forum zu passen. Du erstellst ein Formular mit deinem Listenfeld und je nach Auswahl steuert ein PHP Script die SQL Abfrage.
mAy^daY ist offline   Mit Zitat antworten
Alt 07.08.2007, 19:48  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Wenn du deine Log-Einträge zum Beispiel in dieser Form machst:

Code:
log:
id [INT, auto_increment, primary key]
page [VARCHAR]
time [DATETIME, index]
Kannst du die Anzahl Log-Einträge ganz einfach berechnen:
Code:
SELECT COUNT(*) FROM `log` WHERE YEAR(`time`) = 2006 AND MONTH(`time`) = 4
Zergling-new ist offline   Mit Zitat antworten
Alt 10.08.2007, 12:53  
Neuer Benutzer
 
Registriert seit: 07.08.2007
Beiträge: 9
elwood
Standard

Hallo!

Danke erstmal für Eure schnellen Antworten!!!

Sorry, dass ich mich so spät melde, hatte schlaflose Nächte mit meinem Problem gehabt.

Also ich habe da jetzt mein Listenfeld mit den Jahreszahlen und 12 -jetzt nicht mehr Monatslinks- sondern grafische SUBMIT-Buttons mit den Monatsnamen.

Allerdings wurden anfänglich alle Werte der 12 SUBMIT-BUTTONS (im IE) ‚mitgeschickt’, egal welchen ich angeklickt habe.

Hat eine Ewigkeit gedauert, bis ich auf eine akzeptable Lösung kam: ich habe einfach jedem Button einen Wert in Array-Form zugewiesen. Und jetzt klappt die Übermittlung der Daten!!!

if (isset($submit[0])) {$month="January";}
if (isset($submit[1])) {$month="February";}
if (isset($submit[2])) {$month="March";} usw.

Theoretischer Ablauf: ich wähle ein Jahr aus dem Listenfeld und übergebe diesen und den Wert des Submit-Buttons an das Auswertungs-Skript. Die Auswertung erfolgt übrigens auf der gleichen Seite, daher:
<form action="<?php $PHP_SELF ?>" method="POST">

@ Zergling: mache die Log-Einträge in exakt gleicher Form wie Du, der Abruf der Daten funktioniert aber nicht???

Wenn ich in phpMyAdmin zwecks Testlauf den Befehl:
SELECT COUNT(*) FROM statistic WHERE YEAR('time')=2007 AND Month('time')=8 eingebe, erscheint als Ergebnis count(*) 0.

Der Befehl scheint also richtig zu sein, da keine Fehlermeldung ausgegeben wird, das Resultat ist aber 0.

Wo könnte der Fehler liegen???

Vielleicht habt Ihr ja noch eine Idee, ich stehe kurz vorm Ziel.


Vielen Dank,

Matthias
elwood ist offline   Mit Zitat antworten
Alt 10.08.2007, 12:56  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

du verwechselst das einfache Anführungszeichen ' nicht mit dem Backtick `

Der Unterschied ist wie Tag und Nacht:
Das einfache Anführungszeichen umschließt Strings, Zeichenketten.
Der Backtick umschließt Bezeichner. Bezeichner für Datenbank-, Tabellen- oder Spaltennamen.

'time' ist also wirklich time, klar dass hier der Versuch, ein Jahr zu extrahieren fehlschlägt

`time` bezeichnet in diesem Zusammenhang eine Spalte, diese wird im aktuell selektierten Datensatz gesucht und durch ihren Wert (zum Beispiel die Zeichenkette '2007-08-02' ersetzt). Jetzt kann sehrwohl ein Jahr extrahiert werden.
Zergling-new ist offline   Mit Zitat antworten
Alt 10.08.2007, 13:49  
Neuer Benutzer
 
Registriert seit: 07.08.2007
Beiträge: 9
elwood
Standard @ Zergling

Dank, Dank und nochmals Dank!!!

Es kunktioniert!!!

Ich habe ein MySql-Anfängerbuch, da steht aber von einem Backtick nichts drin.

Ist das Basiswissen oder habe ich da irgendwas verpasst?

Wie gesagt, ich bin Newbie!

Du hast mir SEHR geholfen,

Matthias
elwood ist offline   Mit Zitat antworten
Alt 10.08.2007, 14:01  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Die Backticks sind optional. Allerdings entscheidet MySQL dann selbst, für was es deine Bezeichner hält. Das geht fast immer gut. Aber bei Sonderzeichen oder reservierten Worten scheppert es dann halt ohne Backticks.
Zergling-new ist offline   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
[Erledigt] Kein Ergebnis bei SELECT (MySQL 4.1.9) dr.e. Datenbanken 4 15.06.2008 19:54
[Erledigt] MySQL - ERROR 1044 bei erstellen einer Datenbank _youngenterpriser_ Datenbanken 2 05.02.2008 17:56
Mysql Server Einstellunen Optimieren pchero Datenbanken 3 01.05.2007 19:50
[Erledigt] MYSQL Problem Datenbanken 4 09.02.2006 15:14
Kein Zugriff über ODBC mit der IP-Adresse auf MySql DB Datenbanken 4 09.02.2006 11:04
[Erledigt] Zu blöd um MySQL in PHP einzurichten? Apache Server PHP Tipps 2006 18 30.01.2006 23:39
[Erledigt] Mysql 4.1.x unter php 4.3.9 Datenbanken 3 15.11.2005 13:49
Wieso funktioniert mein MySQL nicht mehr ? Skazi Datenbanken 1 09.11.2005 14:49
Schnittstelle zwischen PHP und MySQL klappt net !!! Datenbanken 16 16.10.2005 14:24
[Erledigt] not allowed to connect to this MySQL server PHP Tipps 2005-2 2 23.09.2005 18:34
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
MYSQL läuft nur wenn /tmp auf 777 Datenbanken 5 06.07.2005 08:38
mysql root passwort vergessen Datenbanken 1 29.05.2005 11:33
Access denied for user: '@localhost' / SYSTEM@localhost Datenbanken 0 10.11.2004 20:35
[Erledigt] PHP5 &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;a m p; MySQL Datenbanken 5 01.08.2004 05:47

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
zusammenspiel php und mysql

Alle Zeitangaben in WEZ +2. Es ist jetzt 06:39 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.