Logo - MyWebsolution.de
User gesamt  :  2308205
User online  :  1
KubaSeoTräume, PHP Forum, PHP Community and more ... MyWebsolution.de!
   
   
 
Registrieren Login User F.A.Q Suche Home

eingeloggt bleiben

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.


Profil ansehen Mail senden
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.
Profil ansehen
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.
Profil ansehen
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
Profil ansehen
Seite: <  1 2 no reply
Powered by Pascal Landau © 2006 MyWebsolution.de
Designed by Pascal Landau © 2006 MyWebsolution.de
 
 
 
 
Home Email Impressum Disclaimer Statistik