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 |
23.11.2010, 10:29:40
|
Anfänger
|
|
Registriert seit: Nov 2010
Alter: 41
Beiträge: 27
|
|
forschleife mit DATE()
Guten Morgen liebe Forumgemeinde,
mich hat den bisherigen Morgen folgendes beschäftigt:
Ich möchte aus einer vorhandenen Tabelle Daten in eine neue Tabelle schreiben.
Und zwar die max und min werte bezogen auf Tage im Jahr.
PHP-Code:
mysql_connect($dbhost,$dbuser,$dbpass) or die ("datenbank nicht errecihbar");
mysql_select_db($dbname) or die ("die Datenbank gibt es nicht");
set_time_limit(60);
for (DATE(Datum)>='2009-01-01';DATE(Datum)<='2009-12-31';DATE(Datum)++)
{
$abfrage="INSERT INTO tagesenergiewerte(Anlagen_ID,Seriennummer,day,e_min,e_max)
SELECT Anlagen_ID,Seriennummer,DATE(Datum),min(`E-Total`),max(`E-Total`)
FROM messdaten_wr
WHERE `E-Total`>0 AND Seriennummer='2000562619'";
mysql_query($abfrage)or die (mysql_error());
}
Dadurch erreiche ich folgende Meldung:
Fatal error: Can't use function return value in write context in.....
Ich vermute,ich bekomme die 'schnittstelle' zwischen der schleife und der abfrage nicht hin.
Ich möchte die schleife benutzen da ich nicht die werte für jeden tag im jahr einzeln eintragen will.
Bitte um Hilfe.
mfg
|
23.11.2010, 10:37:56
|
|
Administrator
|
|
Registriert seit: Jul 2004
Beiträge: 3.707
|
|
AW: forschleife mit DATE()
Wo kommt "Datum" her?
__________________
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!
|
23.11.2010, 10:40:22
|
Anfänger
|
|
Registriert seit: Nov 2010
Alter: 41
Beiträge: 27
|
|
AW: forschleife mit DATE()
ebenfalls aus der tabelle.
verstehe, das muss mit in die abfrage....
aber wie?
|
23.11.2010, 10:40:41
|
SELFPHP Experte
|
|
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
|
|
AW: forschleife mit DATE()
Du versuchst eine Funktion zu inkrementieren.
Das geht aber nur mit Variablen.
Und was ist die Konstante "Datum" ?
PHP-Code:
<?php
error_reporting(-1);
ini_set('display_errors', TRUE);
setlocale(LC_ALL,'de_DE@euro', 'de_DE', 'de', 'ge');
date_default_timezone_set('Europe/Berlin');
function add_days($tag,$days)
{
return date('Y-m-d',strtotime("$tag +$days DAYS"));
}
$start = '2009-10-17';
$ende = add_days($start,10);
for($i=$start;$i<$ende;$i=add_days($i,1))
{
echo $i , '<br>';
}
|
23.11.2010, 10:49:21
|
Anfänger
|
|
Registriert seit: Nov 2010
Alter: 41
Beiträge: 27
|
|
AW: forschleife mit DATE()
Datum ist ein Spaltenname im DATETIME Format.
hatte fälschlicherweise angenommen, das man damit wie mit einer variable umspringen kann.
|
23.11.2010, 11:09:20
|
SELFPHP Experte
|
|
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
|
|
AW: forschleife mit DATE()
Ja, zumindest davon biste ja jetzt geheilt!
;-)
|
23.11.2010, 11:17:25
|
|
Administrator
|
|
Registriert seit: Jul 2004
Beiträge: 3.707
|
|
AW: forschleife mit DATE()
Zitat:
Zitat von held_der_arbeit
Datum ist ein Spaltenname im DATETIME Format.
hatte fälschlicherweise angenommen, das man damit wie mit einer variable umspringen kann.
|
Na dann, überarbeiten und bei weiteren Fragen wiederkommen ...
__________________
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!
|
23.11.2010, 13:04:35
|
Anfänger
|
|
Registriert seit: Nov 2010
Alter: 41
Beiträge: 27
|
|
AW: forschleife mit DATE()
hey,
also vielen dank für die antworten,
aber ich habe da noch eine kurze andere frage..
wenn ich bei UPDATE die funktion min() nutze, wie mache ich das?
PHP-Code:
$abfrage="UPDATE tagesenergiewerte
INNER JOIN messdaten_Wr
ON tagesenergiewerte.Seriennummer=messdaten_wr.Seriennummer
SET tagesenergiewerte.e_min=min(messdaten_wr.`E-Total`)
WHERE `E-Total`>0 AND tagesenergiewerte.Anlagen_ID=messdaten_wr.Seriennummer";
bei dem code^ gibts 'Invalid use of group function'
dieser SET Befehl muss falsch sein:
PHP-Code:
SET tagesenergiewerte.e_min=min(messdaten_wr.`E-Total`)
|
23.11.2010, 13:28:15
|
Junior Member
|
|
Registriert seit: Aug 2010
Alter: 14
Beiträge: 395
|
|
AW: forschleife mit DATE()
Probier mal so... (ohne Garantie mangels Tabellenstrukturen und Testdaten)
Code:
UPDATE tagesenergiewerte
SET tagesenergiewerte.e_min= ( SELECT MIN(`E-Total`)
FROM messdaten_Wr
WHERE messdaten_wr.Seriennummer = tagesenergiewerte.Seriennummer
AND messdaten_wr.Anlagen_ID = tagesenergiewerte.Anlagen_ID
AND `E-Total` > 0 )
Grüße
Thomas
__________________
Die SQL-Backstube
Bietet Rezepte, Lösungen und ausführliche Beispiele rund um gesundes SQL und zufriedene Datenbanken.
|
23.11.2010, 13:57:53
|
Anfänger
|
|
Registriert seit: Nov 2010
Alter: 41
Beiträge: 27
|
|
AW: forschleife mit DATE()
super!
das hat geklappt!:)
habe das skript jetzt noch mit
PHP-Code:
AND messdaten_wr.Datum=tagesenergiewerte.day
erweitert so das es jetzt folgendermaßen aussieht:
PHP-Code:
$abfrage="UPDATE tagesenergiewerte
SET tagesenergiewerte.e_min= ( SELECT MIN(`E-Total`)
FROM messdaten_Wr
WHERE messdaten_wr.Seriennummer = tagesenergiewerte.Seriennummer
AND messdaten_wr.Anlagen_ID = tagesenergiewerte.Anlagen_ID
AND `E-Total` > 0
AND messdaten_wr.Datum=tagesenergiewerte.day )";
jetzt funktioniert es nicht mehr.
kann es daran liegen, das DATETIME nicht mit DATE verglichen werden kann?
Datum ist DATETIME und day ist DATE, normalerweise müsste doch die TIME ignoriert werden oder?
|
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 08:24:58 Uhr.
|