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 |
20.02.2007, 19:04:29
|
|
Member
|
|
Registriert seit: Jul 2006
Ort: Göttingen/Deutschland
Alter: 35
Beiträge: 586
|
|
Where verneinen
Hallo! Ich bastle mir grade einen counter und bin auf die simple Frage gestoßen, wie verneine ich eine WHERE -Abfrage also z.B.
PHP-Code:
$sql = "SELECT COUNT(*) as Anzahl FROM Online WHERE Name != 'Gast'";
So wie es hier steht funktioniert das allerdings nicht schade! Wäre für eure Hilfe dankbar!
MfG, Andy
|
20.02.2007, 19:10:46
|
SELFPHP Guru
|
|
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
|
|
AW: Where verneinen
was funktioniert denn daran nicht?
normalerweise sollte es nämlich mit != keine probleme geben. ansonsten tuts ein WHERE NOT a = 'b' auch...
Geändert von feuervogel (20.02.2007 um 19:12:08 Uhr)
|
20.02.2007, 19:45:15
|
Administrator
|
|
Registriert seit: Jan 2002
Ort: Köln
Alter: 53
Beiträge: 1.276
|
|
AW: Where verneinen
Hi,
PHP-Code:
$sql = "SELECT COUNT(*) as Anzahl FROM Online WHERE Name <> 'Gast'";
Aber eigentlich sollte es ja auch so wie feuervogel gesagt hat funktionieren....
Damir
|
20.02.2007, 20:01:34
|
|
Member
|
|
Registriert seit: Jul 2006
Ort: Göttingen/Deutschland
Alter: 35
Beiträge: 586
|
|
AW: Where verneinen
Also wie gesagt, habe ich einen counter gebastelt, der aber leider nicht das tut, was er soll nämlich anzeigen, wenn ein registrierter user eingeloggt ist und dann auch dessen namen ausgeben. Da ich aber keine weiteren Fehler finde, würde ich euch bitten ma kurz drüber zu schauen. Die session id enthält eine einmalige id, die jedem registrierten user fest zugeordnet wird und ihn so erkennbar macht.
PHP-Code:
<?php session_start(); $verbindung = mysql_connect("host","user","passwort") or die ("Keine Verbindung moeglich!"); mysql_select_db("datenbank") or die ("Die Datenbank existiert nicht!");
$sql = "SELECT COUNT(*) as Anzahl FROM Online WHERE IP = '".$_SERVER['REMOTE_ADDR']."'"; $result = mysql_query($sql) OR die(mysql_error()); $row = mysql_fetch_assoc($result); if($row['Anzahl'] && !isset($_SESSION["id"])) { // Nur Datum Updaten $sql = "UPDATE Online SET Datum = NOW() WHERE IP = '".$_SERVER['REMOTE_ADDR']."'"; mysql_query($sql) OR die(mysql_error()); } elseif($row['Anzahl'] && isset($_SESSION["id"])) { $sessid = $_SESSION["id"]; $sql = "SELECT nick as name FROM user WHERE id = '$sessid'"; $result = mysql_query($sql) OR die(mysql_error()); $row = mysql_fetch_assoc($result); $name = $row['name']; $sql = "UPDATE Online SET Name = '$name' WHERE IP = '".$_SERVER['REMOTE_ADDR']."'"; mysql_query($sql) OR die(mysql_error()); $sql = "UPDATE Online SET Datum = NOW() WHERE IP = '".$_SERVER['REMOTE_ADDR']."'"; mysql_query($sql) OR die(mysql_error()); } else { // Neuer eintrag wenn $_SESSION["id"] nicht gesetzt if(!isset($_SESSION["id"])) { $sql = "INSERT INTO Online (IP, Datum, Name) VALUES ('".$_SERVER['REMOTE_ADDR']."', NOW(), 'Gast')"; mysql_query($sql) OR die(mysql_error()); } // Neuer eintrag wenn $_SESSION["id"] gesetzt elseif (isset($_SESSION["id"])) { $sessid = $_SESSION["id"]; $sql = "SELECT nick as name FROM user WHERE id = '$sessid'"; $result = mysql_query($sql) OR die(mysql_error()); $row = mysql_fetch_assoc($result); $name = $row['name']; $sql = "INSERT INTO Online (IP, Datum, Name) VALUES ('".$_SERVER['REMOTE_ADDR']."', NOW(), '$name')"; mysql_query($sql) OR die(mysql_error()); } }
// alte Datensätze löschen $sql = "DELETE FROM Online WHERE DATE_SUB(NOW(), INTERVAL 3 MINUTE) > Datum"; mysql_query($sql) OR die(mysql_error());
// Anzahl Ausgeben alle $sql = "SELECT COUNT(*) as Anzahl FROM Online"; $result = mysql_query($sql) OR die(mysql_error()); $row = mysql_fetch_assoc($result);
echo "<h6>Benutzer online: ".$row['Anzahl']."</h6><br />";
// Anzahl Ausgeben user $sql = "SELECT COUNT(*) as Anzahl FROM Online WHERE NOT Name = 'Gast'"; $result = mysql_query($sql) OR die(mysql_error()); $row = mysql_fetch_assoc($result);
echo "<h6>Registrierte Benutzer: ".$row['Anzahl']."</h6><br />";
// Anzahl Ausgeben gäste $sql = "SELECT COUNT(*) as Anzahl FROM Online WHERE Name = 'Gast'"; $result = mysql_query($sql) OR die(mysql_error()); $row = mysql_fetch_assoc($result);
echo "<h6>Gäste: ".$row['Anzahl']."</h6><br /><hr style='width:95%; color:#000000; border-style:solid; border-width:1px;'>";
// Name Ausgeben user $sql = "SELECT Name FROM Online WHERE NOT Name = 'Gast'"; $result = mysql_query($sql) OR die(mysql_error()); while($row = mysql_fetch_object($result)) { $name = $row->Name; echo '<h6>' . $name . ' |</h6>'; } mysql_close($verbindung); ?>
Meiner Meinung nach sollte das so eigentlich gut funktionieren.
MfG, Andy
Geändert von Socrates (20.02.2007 um 20:47:33 Uhr)
|
20.02.2007, 20:29:11
|
Member
|
|
Registriert seit: Feb 2006
Beiträge: 883
|
|
AW: Where verneinen
Wo kommt der "Gast" (d.h. dieser String) denn eigentlich her?
|
20.02.2007, 20:38:52
|
|
Member
|
|
Registriert seit: Jul 2006
Ort: Göttingen/Deutschland
Alter: 35
Beiträge: 586
|
|
AW: Where verneinen
Das wird oben in der if-abfrage, die im else steht in die datenbank eingetragen und dann immer nur überprüft bzw ausgelesen.
PHP-Code:
if(!isset($_SESSION["id"]))
{
$sql = "INSERT INTO Online (IP, Datum, Name) VALUES ('".$_SERVER['REMOTE_ADDR']."', NOW(), 'Gast')";
mysql_query($sql) OR die(mysql_error());
}
MfG, Andy
|
20.02.2007, 21:11:54
|
Member
|
|
Registriert seit: Feb 2006
Beiträge: 883
|
|
AW: Where verneinen
Sorry, hatte das wegen des horizontalen Scrollbalkens nicht gesehen.
Jetzt fällt mir auch nix Gescheites ein.
Wenn ich das auf deiner HP richtig lokalisiere, steht da garnix. Mach' doch ml mit einem String eine Testausgabe. Und vielleicht liest du mit mysql_fetch_object usw. das array Name nicht richtig aus..... ist aber nur geraten.
|
21.02.2007, 17:25:17
|
|
Member
|
|
Registriert seit: Jul 2006
Ort: Göttingen/Deutschland
Alter: 35
Beiträge: 586
|
|
AW: Where verneinen
Also ich weiß jett woran es liegt, aber ich weiß nicht, wie ich es ändern soll. Und zwar erkennt er die $_SESSION["id"] nicht. Wenn ich sie auf der Seite ausgeben lasse, auf der ich den counter include, habe ich kein problem er zeigt sauber die id des users an. lasse ich die session aber im counter-script ausgeben passiert rein garnichts. Woran kann das liegen?
MfG, Andy
|
21.02.2007, 18:02:19
|
|
Administrator
|
|
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|
|
AW: Where verneinen
Wenn Du das Counter-Script ausführst und eine Ausgabe von $_SESSION['id'] tätigst, dann zeigt er Dir $_SESSION['id'] nicht an, weil diese nicht deklariert ist.
__________________
Gruß |Coding
---
Qozido® - Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.
www.qozido.de
|
21.02.2007, 18:05:08
|
|
Member
|
|
Registriert seit: Jul 2006
Ort: Göttingen/Deutschland
Alter: 35
Beiträge: 586
|
|
AW: Where verneinen
warum das ich denke sessions werden, wenn sie in cookies gespeichert werden vom browser gespeichert und sollten so überall abfragbar sein. oder klappt es deswegen nicht, weil counter.php included wird? wenn ja welche alternative habe ich an die infos in der session zu kommen?
MfG, Andy
|
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:19:38 Uhr.
|