Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
ein paar Fragen... [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
ein paar Fragen...


 
OliOli
05-07-2003, 11:53 
 
Hallo, langsam hab ich keinen Bock, mehr es geht mal wieder nichts...

Naja, also zweierlei.
1. Ich bin dabei, eine Anzeige zu realisieren, die besagt, auf welcher Seite welcher User gerade ist, oder eben in den letzten 10 Sek war.

Hm, jetzt will ich die Seitenid in die Tabelle eintragen lassen, alle Seiten haben eine Kennung (mit ?page="kennung") wird der Inhalt der HP ermittelt) und eine seitenid. Diese sind in einer weiteren Tabelle vorhanden.

Ich habe jetzt das Prob, dass bei seitenid in der Tabelle in der die aktuellen User sind (www_aktuellon) immer 1 eingetragen wird. Bei einem Testscript allerdings wird die korrekte seitenid angezeigt.

Hier der code:
$seiten = $db->query_first("SELECT seitenid FROM www_seiten WHERE kennung='".$page."'");
$db->query("UPDATE www_aktuellon SET seitenid='".$seiten[seitenid]."', time='".time()."' WHERE userid='".$user_id."'");


2. Jetzt will ich schauen, welche User gerade online sind, und das dann auch ausgeben.
Ich hab dazu ne Funktion gemacht:
function getonlinelist() {
// datenbank classe machen und connecten
$db = new db;
$db->connect();
$db->select_db("wiewowarum");

$result = $db->query("SELECT A.userid, A.time, U.nick, S.name FROM www_aktuellon A LEFT JOIN www_user U USING(userid) LEFT JOIN www_seiten S USING(seitenid)");
while($row = $db->fetch_array())
{
eval ("\$useronlinebit .= \"".gettemplate("useronlinebit")."\";");
}

}
Geht natürlich nicht. Weiß jemand wo der Fehler sein könnte?

 
Wurzel
05-07-2003, 12:38 
 
was steht denn in $seiten drin? schon mal mit print_r() ausgegeben?

 
OliOli
05-07-2003, 12:48 
 
Hm, bei einem Testscript war $seiten[seitenid] richtig, also 6 nicht 1.

 
Wurzel
05-07-2003, 12:52 
 
Original geschrieben von OliOli
Hm, bei einem Testscript war $seiten[seitenid] richtig, also 6 nicht 1. war das meine frage?
da hier keiner die verwendete klasse sehen kann, wäre es schön, den rückgabewert zu kennen => print_r() oder echo ;)

 
OliOli
05-07-2003, 16:50 
 
Array ( [0] => 6 [seitenid] => 6 )

ALso korrekt...

 
Wurzel
05-07-2003, 23:06 
 
wie siehts damit aus:
$seiten['seitenid']
$seiten[0]

 
OliOli
08-07-2003, 15:49 
 
hallo, bin nicht dazu gekommen, weiterzuarbeiten...

Also die stimmen beide auch...

 
Wurzel
08-07-2003, 16:09 
 
$db->query("UPDATE www_aktuellon SET seitenid='".$seiten[0]."', time='".time()."' WHERE userid='".$user_id."'");
// oder
$db->query("UPDATE www_aktuellon SET seitenid='".$seiten['seitenid']."', time='".time()."' WHERE userid='".$user_id."'");
und, mal probiert ?

 
OliOli
08-07-2003, 16:13 
 
Ja, den zweiten Code hab ich ja so.

HIer, das muss doch gehen:

$seiten = $db->query_first("SELECT seitenid FROM www_seiten WHERE kennung='".$page."'");
$db->query("UPDATE www_aktuellon SET seitenid='".$seiten['seitenid']."', time='".time()."' WHERE userid='".$user_id."'");
echo $seiten['seitenid'];
echo $seiten[0];
echo $anzahl;

So. die Echos sind richtig, es kann doch nicht sein, dass er dann was anderes in die DB einträgt!
Und bei einem anderen Testscript, wo ich nur diesen Code habe, klappt es einwandfrei! Aber die Tabelle wird sonst nirgendwo angesprochen, die Variablen sind auch noch nicht belegt oder sowas!
Verflucht! :mad:

 
Wurzel
08-07-2003, 16:23 
 
:confused:
mal aufdröseln:

$jetzt = time();
$sql="UPDATE www_aktuellon SET seitenid='".$seiten['seitenid']."', time='".$jetzt."' WHERE userid='".$user_id."'";
echo $sql;
$db->query($sql);

 
OliOli
08-07-2003, 16:28 
 
lol.... Er gibt aus: UPDATE www_aktuellon SET seitenid='5', time='1057674543' WHERE userid='1'

UNd trotzdem immer noch 1 in der DB

 
Wurzel
08-07-2003, 16:41 
 
*mühsam_ernährt_sich_das_eichhörnchen*

wird das update überhaupt ausgeführt ? => was ist mit "time", ändert sich da was?
*grrr* "TIME" als spaltenbezeichnung könnte der fehler sein

setz den mal in backticks => `time`='$jetzt'

 
OliOli
08-07-2003, 16:42 
 
wird ausgeführt, die Zeit ändert sich genau wie sie soll....

 
Wurzel
08-07-2003, 17:22 
 
muss ich das verstehen?? langsam gehen mir die ideen aus.

letzter versuch:
wie sieht denn die tabelle aus, poste doch mal nen dump der struktur.

 
OliOli
09-07-2003, 12:35 
 
#
# Tabellenstruktur für Tabelle `www_aktuellon`
#

CREATE TABLE www_aktuellon (
userid int(3) NOT NULL default '0',
seitenid int(3) NOT NULL default '0',
time int(32) NOT NULL default '0',
UNIQUE KEY userid (userid)
) TYPE=MyISAM;


Hm, bei dem Testscript ging es aber...

 
Wurzel
09-07-2003, 13:08 
 
ich verstehs nicht.

versuchs mal mit dem testscript (das, wo's lief) ... wer weiss, was sich im laufe der evolution da geändert hat ... ansonsten check die klasse, ob dort irgendwo die "1" reinrutscht.

mehr fällt mir dazu auch nicht mehr ein :dontknow:

 
OliOli
10-07-2003, 11:08 
 
Also...

Ich habe jetzt eine Funktion draus gebastelt.
function setonlinelist($page,$user_id) {
$db = new db;
$db->connect();
$db->select_db("wiewowarum");
$seiten = $db->query_first("SELECT seitenid FROM www_seiten WHERE kennung='".$page."'");
$anzahl = $db->num_rows("SELECT userid FROM www_aktuellon WHERE userid='".$user_id."'");
if($anzahl == "0")
{
$seiten = $db->query_first("SELECT seitenid FROM www_seiten WHERE kennung='".$page."'");
$db->query("INSERT INTO www_aktuellon (userid, seitenid, time) VALUES ('".$user_id."','".$seiten['seitenid']."','".time()."')");
}
else
{
$seiten = $db->query_first("SELECT seitenid FROM www_seiten WHERE kennung='".$page."'");
$db->query("UPDATE www_aktuellon SET seitenid='".$seiten['seitenid']."', time='".time()."' WHERE userid='".$user_id."'");
}
$gesamt = $page."->".$seiten[seitenid]."|".$user_id;
return $gesamt;
}

Ok. Wenn ich die Funktion in meiner Page aufrufe, dann wird wieder 1 eingetragen, wenn ich sie aber im Testscript aufrufe, dann stimmts!
Kombiniere: In der Page wird irgendwo $page wieder auf 1 gesetzt, bevor er das update ausführt, obwohl ich nicht weiß wo.
Das Ergebnis der Funktion, $gesamt, ist auch so, wie es soll.

 
OliOli
10-07-2003, 19:30 
 
Hallo!

Ähm Wurzel.. Kann ich vielleicht mal die bisherige HP anhängen, (mit SQL dump) so dass du so schauen kannst?
Wär sehr nett, wenn du das tun könntest...

 
graf
10-07-2003, 19:37 
 
da brauchst du doch nicht zu fragen ... hier ist mit sicherheit jeder bereit, komplette HP's auf fehler zu überprüfen.

 
Wurzel
10-07-2003, 21:15 
 
Original geschrieben von OliOli
In der Page wird irgendwo $page wieder auf 1 gesetzt, bevor er das update ausführt, obwohl ich nicht weiß wo. wenn du den fehler soweit schon eingekreist hast ... wo ist das problem. also bei mir liegt die suche im editor unter "F3".

Original geschrieben von OliOli
Kann ich vielleicht mal die bisherige HP anhängen, (mit SQL dump) so dass du so schauen kannst?poste deinen code lieber hier. ich glaube nicht, dass du meinen stundensatz lieben wirst ;)

@graf
:grin:

 
OliOli
10-07-2003, 22:35 
 
... Haha.. Wär schön wenn die HP komplett wäre..

Ich bin gerade dabei, das Usersystem zu machen, und damit hab ich angefangen... Aber wies aussieht wird die Seite wohl erst ende 2014 fertig sein... :)

Jippi, dann darf ich alles auf php23 umstellen...
Naja, es ist zuviel code um es hier zu posten, und meine Vermutung hat sich nicht bestätigt.... :dontknow:

Hm, tja...

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:47 Uhr.