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 |
09.04.2009, 14:01:37
|
Junior Member
|
|
Registriert seit: Jun 2003
Beiträge: 186
|
|
Daten der aktuellen Woche abfragen
Hallo,
ich hab hier einen Hänger.
Und zwar möchte ich aus meiner Datenbank alle Datensätze der aktuellen Woche auslesen.
Hintergrund ist, ich möchte alle Trainingsheinheiten der aktuellen woche bzw. die absolvierten Km berechnen.
Mein Ansatzt erzeugt keinen SQL-Fehler, jedoch auch kein Ergebinis.
Meine Überlegung war in der WHERE-Clausel mit WEEK und der aktuellen Woche durch date('W') diese ermitteln zu können.
Hier der Ansatz:
PHP-Code:
//========= KM der akt. Woche ===============
$akt_woche = date("W");
$result = mysql_query("SELECT mt.runden, st.runde, st.distanz
FROM laufen_meintraining mt, laufen_strecken st
WHERE mt.user_id = ".$_SESSION['user_id']."
AND mt.strecken_id = st.strecken_id
AND WEEK(mt.datum) = ".$akt_woche."",$db) or trigger_error(mysql_error($db));
if(!$result){ logfile('sql',error_get_last());}
if(mysql_affected_rows($db) > 0){
while($week = mysql_fetch_array($result)){
$distanz_day = $_monat['distanz']+($_monat['runden']*$_monat['runde']);
$ges_week = $ges_week + $distanz_day;
}
} else {
$ges_week = '---';
}
Oder lieg ich mit meinem Ansatz ganz falsch?!
Geändert von AlexD (09.04.2009 um 20:29:23 Uhr)
|
09.04.2009, 15:54:04
|
|
Administrator
|
|
Registriert seit: Jul 2004
Beiträge: 3.707
|
|
AW: Daten der aktuellen Woche abfragen
Ohne den Code jetzt genauer geprüft zu haben, hast Du Dir Dein SQL-Statment schon mal ausgeben lassen und es auf Richtigkeit geprüft? Wie sind Deine beiden Tabellen miteinander verbunden (Schlüssel)?
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert
Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!
Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
|
09.04.2009, 20:40:22
|
Junior Member
|
|
Registriert seit: Jun 2003
Beiträge: 186
|
|
AW: Daten der aktuellen Woche abfragen
hi vt1816,
also hab das Statement oben nochmal ergänzt, es fehlte in der Tat die Verbindung der Tabellen "AND mt.strecken_id = st.strecken_id".
Die Tabellen sind wie folgt aufgebaut:
laufen_meintraining
trainings_id int(11) primary Key autoincrement
user_id int(11)
strecken_id int (5)
type_id smallint(1)
runden smallint(2)
datum date
laufzeit time
laufen_strecken
strecken_id int(5) primary Key autoincrement
distanz varchar(5)
runde varchar(5)
bezeichnung varchar(200)
hab das Statement auch in PHPmyAdmin laufen lassen, es werden auch hier keine Fehler ausgegeben, leider auch kein Ergebnis.
|
15.04.2009, 00:48:25
|
Junior Member
|
|
Registriert seit: Jun 2003
Beiträge: 186
|
|
AW: Daten der aktuellen Woche abfragen
Hab noch einen anderen Lösungsansatz.
Und zwar ermittle ich die Tage der aktuellen Woche und hab versucht über BETWEEN diese zu extrahieren.
Lieder klappt das bisher noch nicht so wirklich, es wird kein Fehler aber auch kein Resultat ausgegeben.
Wo liegt denn hier den nur der Fehler?
PHP-Code:
//========= KM der akt. Woche ===============
// Tage der aktuellen Woche ermitteln $akt_woche = date("W"); if($week < 10){ $week = "0".$akt_woche; } else { $akt_woche = $akt_woche; } for($i=1; $i<=7; $i++) { $dates[$i] = strtotime($jahr.'W'.$akt_woche.$i); } $anfang = date("Y-m-d",$dates[1]); $ende = date("Y-m-d",$dates[7]);
include('./db_connect/connect_sql.php');
$sql = "SELECT mt.runden, st.runde, st.distanz FROM laufen_meintraining mt, laufen_strecken st WHERE (mt.datum BETWEEN ".$anfang." AND ".$ende.") AND mt.user_id = ".$_SESSION['user_id']; $result = mysql_query("".$sql."",$db) or trigger_error(mysql_error($db)); if(!$result){ logfile('sql',error_get_last());} if(mysql_affected_rows($db) > 0){ while($week = mysql_fetch_array($result)){
$distanz_day = $week['distanz']+($week['runden']*$week['runde']); $ges_week = $ges_week + $distanz_day; } } else { $ges_week = '---'; }
Geändert von AlexD (16.04.2009 um 15:34:39 Uhr)
|
15.04.2009, 23:21:04
|
|
Senior Member
|
|
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 56
Beiträge: 1.044
|
|
AW: Daten der aktuellen Woche abfragen
Ich glaub so müsste die IF-Anweisung lauten. $db ist ja sicher nur der Konnekt zur DB.
PHP-Code:
if(mysql_affected_rows($result > 0))
Geändert von urvater (15.04.2009 um 23:22:09 Uhr)
|
16.04.2009, 15:26:59
|
Junior Member
|
|
Registriert seit: Jun 2003
Beiträge: 186
|
|
AW: Daten der aktuellen Woche abfragen
Hi,
glaub nicht das es daran liegt, denn ich nutze es so schon bei vielen Abfragen.
Hab es aber mal ausprobiert.... bekomm dann einen SQL-Fehler
Warning: mysql_affected_rows(): supplied argument is not a valid MySQL-Link resource in F:\http\entwicklung\startseite\user_groups\laufsport\laufen_start.php on line 121
hab das Statement nochmal ein wenig geändert, und zwar jetzt nicht mit BETWEEN sondern einfach mit den Vergleichs-Operatoren >= und <=
hier das Statement, der Rest ist wie oben.
PHP-Code:
$sql = "SELECT mt.runden, st.runde, st.distanz FROM laufen_meintraining mt, laufen_strecken st WHERE mt.datum >= ".$anfang." AND mt.datum <= ".$ende." AND mt.user_id = ".$_SESSION['user_id'];
leider bekomm ich auch hier keine Resultat geliefert... nix.
Irgendwie versteh ichs ned mehr.
Die entsprechende SQL-Spalte ist vom Type [date] und die aktuellen Tage der Woche lass ich auch auf das Format 'Y-m-d' mit der PHP-Funktion date() formatieren.
Geändert von AlexD (16.04.2009 um 15:29:39 Uhr)
|
16.04.2009, 15:42:58
|
Junior Member
|
|
Registriert seit: Oct 2008
Alter: 47
Beiträge: 274
|
|
AW: Daten der aktuellen Woche abfragen
Poste doch bitte mal einen Beispieldatensatz der beiden Tabellen.
|
16.04.2009, 15:53:18
|
|
Administrator
|
|
Registriert seit: Jul 2004
Beiträge: 3.707
|
|
AW: Daten der aktuellen Woche abfragen
PHP-Code:
$sql = "SELECT mt.runden, st.runde, st.distanz
FROM laufen_meintraining mt, laufen_strecken st
WHERE mt.datum >= ".$anfang."
AND mt.datum <= ".$ende."
AND mt.user_id = ".$_SESSION['user_id'];
Hast Du Dir schon mal Dein Statment per
ausgeben lassen? Stehen dort die Werte/Bedingungen wie Du sie erwartest drin?
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert
Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!
Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
|
16.04.2009, 19:38:49
|
Junior Member
|
|
Registriert seit: Jun 2003
Beiträge: 186
|
|
AW: Daten der aktuellen Woche abfragen
also $sql gibt mir folgendes aus
Code:
SELECT mt.runden, st.runde, st.distanz FROM laufen_meintraining mt, laufen_strecken st WHERE mt.datum >= 2009-04-13 AND mt.datum <= 2009-04-19 AND mt.user_id = 1
Ein Beispiel-Datensatz:
laufen_meintraining
trainings_id 1
user_id 1
strecken_id 1
runden 1
datum 2009-04-16
laufzeit 00:56:42
laufen_strecken
strecken_id 1
distanz 0.92
runde 8.55
bezeichnung kleine Dorfrunde
|
16.04.2009, 20:13:55
|
|
Administrator
|
|
Registriert seit: Jul 2004
Beiträge: 3.707
|
|
AW: Daten der aktuellen Woche abfragen
Es fehlen die ' um die Datumsangaben:
PHP-Code:
$sql = "SELECT mt.runden, st.runde, st.distanz
FROM laufen_meintraining mt, laufen_strecken st
WHERE mt.datum >= '".$anfang."'
AND mt.datum <= '".$ende."'
AND mt.user_id = ".$_SESSION['user_id'];
Dann klappt es auch mit der Abfrage:
Zitat:
runden runde distanz
1 8.55 0.92
|
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert
Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!
Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
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 07:06:10 Uhr.
|