Datum Filtern
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
algebra
auslese
code
datum
eintippen
endziel
expansion
feld
filtern
http
korrekte abfrage
last
projektion
selektion
spalte
tabelle
tag
univers
url
-
Ich habe ein kleines Problem beim tag/filtern">Filtern meiner Accounts.
Mein Endziel ist es die Leute zu bannen bzw. zu löschen die längere Zeit Offline sind zb. also 2 Monate Offline sind das diese wegen Inaktivität gekickt werden.
Dafür jedes Datum das länger als zb. 14 Tage alt ist erstmal rausfiltern das ich sie zb. via echo anzeigen kann.
Theoretisch ist dies mit:
$dayseven = "SELECT 'last_login' FROM 'account' WHERE 'TO_DAYS(feld)+14 < TO_DAYS(NOW())'";
möglich jedoch habe ich das Problem das er bei mir nicht die Abfrage im SQL tätigt sondern den Gesamten Befehl ins Echo ausspruckt.
Echo dann halt:
SELECT 'last_login' FROM 'account' WHERE 'TO_DAYS(feld)+14 < TO_DAYS(NOW())
Hat da jemand eine Idee was ich falsch mache ??
Mfg
Jwolff -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Könntest du den Codeausschnitt einfügen wo du den SQL-Querry auch an die DB schickst?
Oder könnte es sein das du diese CHAR-Kette in den ECHO befehl gehaun hast?
MfG
//EDIT
versuchs mal mit dem hier nachdem du dich mit der DB connected hast:
$abfrage = "SELECT 'last_login' FROM 'account' WHERE 'TO_DAYS(feld)+14 < TO_DAYS(NOW())";
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_object($ergebnis);
und dann $row benutzen ;)
Beitrag zuletzt geändert: 29.1.2010 12:46:40 von lordcodex -
$hostname_mySQL = "XXXX"; $database_mySQL = "homepage"; $username_mySQL = "XXXX"; $password_mySQL = "XXXX"; $mySQL = mysql_pconnect($hostname_mySQL, $username_mySQL, $password_mySQL); //_____ Gebannte User auslesen _______________________________________________________ /* 6 */ $dayseven = "SELECT 'last_login' FROM 'account' WHERE 'TO_DAYS(feld)+14 < TO_DAYS(NOW())'";
und dann einfach ein
echo $dayseven;
Alles natürlich im <?php ^^
-
s.o auf mein EDIT bitte
und bitte die ganzen Hochkommata aus dem SELECT nehmen ;)
ausserdem PHP MYSQL einfach mal googeln...da findest du genug Zeugs
wie man SQL Querrys an die DB per PHP schickt ;)
Beitrag zuletzt geändert: 29.1.2010 12:49:06 von lordcodex -
SELECT * FROM `account` WHERE DATEDIFF( CURDATE( ) , `last_login` ) >14
Versuch das mal mit dieser Abfrage... damit sollten alle Logins, die älter als 14 Tage sind, aufgelistet werden! -
jwolff schrieb:
$hostname_mySQL = "XXXX"; $database_mySQL = "homepage"; $username_mySQL = "XXXX"; $password_mySQL = "XXXX"; $mySQL = mysql_pconnect($hostname_mySQL, $username_mySQL, $password_mySQL); //_____ Gebannte User auslesen _______________________________________________________ /* 6 */ $dayseven = "SELECT 'last_login' FROM 'account' WHERE 'TO_DAYS(feld)+14 < TO_DAYS(NOW())'";
und dann einfach ein
echo $dayseven;
Alles natürlich im <?php ^^
led
Ich hab mal ne Frage, entweder hab ich es übersehen, was ich nicht glaube....
So wie ich das an deinem Quelltext sehe, speicherst du die Abfrage in der Variablen $dayseven, aber ich kann an deinem Quelltext nicht erkennen das du den Befehl auch an deine Datenbank sendest.
Hab ich was übersehen? -
bbotool schrieb:
led
Ich hab mal ne Frage, entweder hab ich es übersehen, was ich nicht glaube....
So wie ich das an deinem Quelltext sehe, speicherst du die Abfrage in der Variablen $dayseven, aber ich kann an deinem Quelltext nicht erkennen das du den Befehl auch an deine Datenbank sendest.
Hab ich was übersehen?
habe ich wohl selbst übersehen ^^ (Hab nur teile kopiert nicht alles da ist das mit unter gegangen
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\board\acc\exgminfo.php on line 20
kommt im übrigen bei
$abfrage = "SELECT 'last_login' FROM 'account' WHERE 'TO_DAYS(feld)+14 < TO_DAYS(NOW())";
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_object($ergebnis);
Beitrag zuletzt geändert: 29.1.2010 13:17:27 von jwolff -
jwolff schrieb:
bbotool schrieb:
led
Ich hab mal ne Frage, entweder hab ich es übersehen, was ich nicht glaube....
So wie ich das an deinem Quelltext sehe, speicherst du die Abfrage in der Variablen $dayseven, aber ich kann an deinem Quelltext nicht erkennen das du den Befehl auch an deine Datenbank sendest.
Hab ich was übersehen?
habe ich wohl selbst übersehen ^^
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\board\acc\exgminfo.php on line 20
kommt im übrigen bei
$abfrage = "SELECT 'last_login' FROM 'account' WHERE 'TO_DAYS(feld)+14 < TO_DAYS(NOW())";
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_object($ergebnis);
Nimm bitte die ganzen Hochkommata aus dem Querry raus...sonst erkennt die DB das nicht als Querry ;)
$abfrage = "SELECT last_login FROM account WHERE TO_DAYS(feld)+14 < TO_DAYS(NOW())";
müsste so eigentlich gehn =) -
Steht noch immer da in Reihe 20 steht halt das hier:
$row = mysql_fetch_object($ergebnis); -
Versuchs einfach mal mit ner anderen einfachen SELECT abfrage,
(wo du genau weißt das sie richtig ist)
da ich vermute das deine Abfrage einfach keine Ergebnistabelle liefert :\
Sonst fällt mir ehrlich gesagt grad kein weiterer Grund ein warum der Fehler kommt -.- -
Das hier ist das kommplette Script wie es momentan ist.
<?php include "config.php"; mysql_select_db($database_mySQL, $mySQL); $abfrage = "SELECT last_login FROM account WHERE TO_DAYS(feld)+14 < TO_DAYS(NOW())"; $ergebnis = mysql_query($abfrage); $row = mysql_fetch_object($ergebnis); echo $row ; ?>
Arbeite momentan nur an einer Liste von ExMitgliern (GMs)
der link zur Seite ist:
http://universe-gaming.ath.cx:5/board/acc/test11.php
DB Eintrag sieht so aus:
2010-01-28 04:10:05
Beitrag zuletzt geändert: 29.1.2010 14:12:21 von jwolff -
Wenn ihr mit stark veralteten Funktionen wie mysql_* arbeitet, gewöhnt euch an Fehler ausgeben zu lassen:
mysql_query(...) OR die(mysql_error());
Dann bekommst du sicher ne Fehlermeldung, die dir weiterhilft ;) -
Naja, das sagts ja. Du hast keine Spalte "feld" in deiner DB. Heißt sie zufällig "Feld"?
-
<?php include "config.php"; mysql_select_db($database_mySQL, $mySQL); $abfrage = "SELECT last_login FROM account WHERE TO_DAYS(feld)+14 < TO_DAYS(NOW())"; $ergebnis = mysql_query($abfrage); $row = mysql_fetch_object($ergebnis); echo $row ; ?>
Wenn das dein Quelltext ist ist last _login aber der Name der Tabelle und nicht der Name des Feldes! -
FALSCH! Du verwechselst Selektion in der Relationalen Algebra mit dem MySQL SELECT. SELECT entspricht der relationalen Projektion, nicht der Selektion.
SELECT last_login FROM account WHERE TO_DAYS(last_login)+14 < TO_DAYS(NOW())
Das ist die korrekte Abfrage. -
Um das mal zu klären, wie sieht den deine Tabellenstrucktur überhaubt aus?
-
bbotool schrieb: Um das mal zu klären, wie sieht den deine Tabellenstrucktur überhaubt aus?
id
username
sha_pass_hash
gmlevel
sessionkey
v
s
email
joindate XXXX-XX-XX 00:00:00
last_ip
failed_logins
locked
last_login
online
expansion
mutetime
locale
Igame name
Das wäre so zimlich die TabellenStrucktur..
Oder was meinst du da dran ?
nikic schrieb: FALSCH! Du verwechselst Selektion in der Relationalen Algebra mit dem MySQL SELECT. SELECT entspricht der relationalen Projektion, nicht der Selektion.
SELECT last_login FROM account WHERE TO_DAYS(last_login)+14 < TO_DAYS(NOW())
Das ist die korrekte Abfrage.
Klappt auch nicht.
http://universe-gaming.ath.cx:5/board/acc/lima da siehste wie des script momentan aussieht. (test11.php eingeben)
kannst mir ja sagen was falsch dran ist bzw. es editieren...
Beitrag zuletzt geändert: 29.1.2010 18:39:53 von jwolff -
SELECT * FROM account WHERE TO_DAYS(last_login)+14 < TO_DAYS(NOW())
Probier das mal aus....
ich gehe mal davon aus das die Tabelle account heißt. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage