|
|
User gesamt
|
:
|
2399982
|
User online
|
:
|
2
|
|
KubaSeoTräume, PHP Forum, PHP Community and more ... MyWebsolution.de!
|
|
|
|
MyWebsolution.de Foren » Workshops » Autologout
Seite:
|
<
1
2
|
Posts pro Seite: 5
10
20
|
Autor
|
Thread
|
01.04.2009 09:11 Uhr
|
|
Flitze
|
Administrator
|
|
registriert
|
17.10.2006
|
wohnt in
|
Eschwege
|
Beiträge
|
332
|
|
Hey,
ich kann leider die Einträge in deiner Datenbank nich einsehen, aber vom Code her müsste das eigentlich stimmen. Musst mal manuell nachschaun, ob das was in der Datenbank steht wirklich kleiner/größer als time()-20*60 ist..
Das mysql_num_rows immer nur einen Wert liefert is ja klar, wenn du die Gruppenfunktion COUNT() benutzt. Die liefert dir auch wirklich nur die Anzahl.
Ich würde allerdings COUNT(*) benutzen, du spezifizierst ja in der WHERE-Bedingung schon, nach welchen Kriterien gezählt werden soll.
Zitat:Ich seh jetzt auch immer mehr die Vorteile alles mit echo zu machen gegenüber meinem...Muss aufpassen wie ein Schießhund, weil sonst hauts mir die undefinierten Variablen nur so um die Ohren. Das Problem gibts bei deinem Script schon mal nicht.
Da kommts drauf an, was man macht.. wenn ich ne komplett neue Website aufbaue, dann liegt das Grundlayout auch nur als HTML vor und bekommt halt an den entsprechenden Stellen im Code nen include für die konkreten mit PHP erzeugten Inhalte.
Innerhalb von Skripten benutz ich dann allerdings immer echo, weil ichs einfach übersichtlicher finde.
|
|
|
03.04.2009 15:03 Uhr
|
|
strolch_007
|
Forenuser
|
|
registriert
|
16.03.2009
|
wohnt in
|
|
Beiträge
|
40
|
|
hallo und danke für deine antwort,
also die pure Verzweiflung hat mich jetzt auch zur Verzweiflungstat getrieben. Hab alles getestet (gefühlte 1000 mal) alle Einträge im DB Feld,PHP usw., Ausgaben alles korrekt.
Hab sogar die 20 und 60 umgedreht um zu sehen ob sich da was ändert. nüscht! Der mag mich einfach nicht.
Drum hab ich jetzt den Weg so
PHP:
$sql = "SELECT letzte_aktion FROM xxxxx WHERE anrede = 'Frau'" ;
$result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
while ($row = mysql_fetch_assoc($result)) {
if(time()-60*2 < $row['letzte_aktion'])
$wife_online = count($row['letzte_aktion']);
if($wife_online < "1")
$wife_online = "0";
}
bestritten. -Und siehe da!!! - bis jetzt funktioniert es einwandfrei (habs zu Testzwecken auf 2 Minuten geändert). Ich weiß das ist nicht schön, umständlich und langatmig, aber wenn das anderee partout nicht gehen mag. Ehrlich gesagt stinkt mich das gewaltig an das ich das mit dem schönen, kurzen knackigen SELECT nicht hin bekomme. Nach wie vor hab ich keine Ahnung warum das nicht funktioniert. Aber nachdem ich jetzt wohl so eine Woche alles tausendmal geprüft, geändert, versucht und gebastelt habe, denk ich mir das da evtl. doch irgendwo ein klitzekleiner Fehler im SELECT sein muß. Eine andere Erklärung hab ich einfach nicht. Kann aber normalerweise auch nicht sein, weil sonst mein error_reporting(E_ALL); schreien würde. Ach und übrigens das mit Count(*) hatte ich bei mir so. Keine Ahnung warum ich da wieder was anderes gepostet habe. Das kommt vom vielen rumwurschteln:-)
Gruss
strolch_007
Dieser Beitrag wurde am 03.04.2009 um 15:08:40 Uhr von strolch_007 zum 2. Mal editiert.
|
|
|
04.04.2009 07:17 Uhr
|
|
strolch_007
|
Forenuser
|
|
registriert
|
16.03.2009
|
wohnt in
|
|
Beiträge
|
40
|
|
hallo und guten morgen,
man kommt halt doch irgendwie zu einer Lösung:-)
PHP:
<?php
// Abfrage wieviel Frauen in den letzten 20 Minuten aktiv waren und somit als online gewertet
// werden
$sql = "SELECT COUNT(*) letzte_aktion FROM xxxxx WHERE '".(time()-60*2)."' < letzte_aktion AND anrede = 'Frau'" ;
$result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
$row = mysql_fetch_assoc($result);
$wife_online = $row['letzte_aktion'];
// Abfrage wieviel Männer in den letzten 20 Minuten aktiv waren und somit als online gewertet
// werden
$sql = "SELECT COUNT(*) letzte_aktion FROM xxxxx WHERE '".(time()-60*2)."' < letzte_aktion AND anrede = 'Herr'" ;
$result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
$row = mysql_fetch_assoc($result);
$men_online = $row['letzte_aktion'];
//Abfrage wieviele Gesamt in den letzten 20 Minuten aktiv waren und somit als online gewertet
// werden
$sql = "SELECT COUNT(*) letzte_aktion FROM xxxxx WHERE '".(time()-60*2)."' < letzte_aktion" ;
$result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
$row = mysql_fetch_assoc($result);
$all_online = $row['letzte_aktion'];
?>
Ich habe jetzt diesen Code doch etwa umgebaut und auf einmal funktioniert es. Warum? Tja gute Frage, nächste Frage:-)
Falls es interessiert und andere auch mal Probleme mit einer Abfrage (INT Feld in einer DB) haben.
So läuft es bis jetzt bei mir zu 100%!
Und das --->
PHP:
<?php
$sql = "SELECT COUNT(anrede)
FROM xxxxx
WHERE anrede = 'Frau'
AND letzte_aktion > ".time()-20*60."
";
?>
funktionert aus mir unerklärlichen Gründen nicht korrekt!
Einfach ist wenn es einfach einfach ist:-) Hab nur letzte_abfrage und time() vertauscht. Auf sowas muß man erst mal kommen:-)
Gruss
strolch_007
Dieser Beitrag wurde am 04.04.2009 um 07:23:12 Uhr von strolch_007 zum 4. Mal editiert.
|
|
|
22.12.2011 03:15 Uhr
|
|
daxili
|
Forenposter
|
|
registriert
|
21.12.2011
|
wohnt in
|
|
Beiträge
|
50
|
|
contract is signed. once the audit is ordinarily a commodity, the contract goes to the most affordable bid and high class is irrelevant.moncler jackets women sale
moncler vest men sale
moncler vest women sale
moncler vest women cheap
|
|
|
Seite:
|
<
1
2
|
|
|
Powered by
|
Pascal Landau
|
© 2006
|
MyWebsolution.de
|
Designed by
|
Pascal Landau
|
© 2006
|
MyWebsolution.de
|
|
|
|
|
|