Avatar billede gqo Nybegynder
20. september 2011 - 14:33 Der er 9 kommentarer og
1 løsning

Skift fra php 4.x til php 5.x

Hej, lidt hjælp,tak.

I efterfølgende kode som virkede fint i php 4.x men "virker" ikke i php 5.x
Denne online tæller "virker" (jo det gør den jo, men fortæller at sætningenn"mysql_db_query" er udfaset) så det ser jo ikke godt ud i udskriften i php 5.x, har prøvet at slette _db_ fra linie 9 -13 -16, men der kommer så parameter fejl,
iflg. php manual skulle _db_ være udfaset i den nye version, men,men.?? pft. Gert
ps. hotellet er skiftet til PHP 5.x


<?php
include( 'nydb.php' ); // Stien til 'fil/nydb.php'
//sekunder til man ser om en bruger er gået
$timeoutseconds = 300;
//Variabel
$timestamp = time();
//til at se om brugeren stadig er på
$timeout = $timestamp-$timeoutseconds;
//skriver i tabellen
$insert = mysql_db_query($dbase, "INSERT INTO $tableuseronline VALUES
('$timestamp','$REMOTE_ADDR','$PHP_SELF')");
//sletter brugere der ikke er på mere
$delete = mysql_db_query($dbase, "DELETE FROM $tableuseronline WHERE timestamp<$timeout");
//$result får innholdet af kolonnen ip i tabellen useronline
$result = mysql_db_query($dbase, "SELECT DISTINCT ip FROM $tableuseronline WHERE file='$PHP_SELF'");
//tæller hvor mange rekker tabellen indholder
$user = mysql_num_rows($result);
//Lukker database
mysql_close();

// Udskriver
if($user == 1) { // hvis bare 1
print("User online $user");
} else { // hvis flere
print("$user users online");
}

?>
Avatar billede michael_stim Ekspert
20. september 2011 - 14:43 #1
mysql_query("dinSql"); //Der skal ikke vælges database her, det kan du evt. gøre der hvor du includer din connection (hvis du ikke allerede gør det).
Avatar billede Fnugus Nybegynder
20. september 2011 - 14:44 #2
mysql_db_query er med al sandsynlighed erstattet af mysql_query, som man vistnok også kan bruge i PHP4.x

Man plejer at gøre noget retning af

mysql_connect($host,$user,$pass);
mysql_select_db($dbnavn);

mysql_query() tager kun et enkelt parameter som udgangspunkt, nemlig selve query'en.
Avatar billede gqo Nybegynder
20. september 2011 - 15:03 #3
Tak for svarene, men som jeg skrev før, er fejlene de samme som omtalt tidligere, her er adgangen til databasen, som skulle være ok. men prøv at læs spørgsmålet igen, mysgl_db_query(), så selv om jeg sletter db så kommer der bare parameterfejl?? istedet? pft. Gert

<?php
$user = "holmenshus_dk" ;
$pass = "eksempel" ;
$dbase = "eksempel" ;
$tableuseronline = "useronline" ;
$host = "mysql4.unoeuro.com" ;
$hopap = mysql_connect ( $host , $user , $pass );
mysql_select_db ( $dbase );

?>
Avatar billede Fnugus Nybegynder
20. september 2011 - 15:11 #4
okay, det du gør er:

mysql_query($db,$sql);

hvor du burde gøre

mysql_query($sql);
Avatar billede michael_stim Ekspert
20. september 2011 - 15:12 #5
PHP_SELF er også udfaset.

$_SERVER['PHP_SELF'];
Avatar billede michael_stim Ekspert
20. september 2011 - 15:17 #6
Copy/paste dette:


<?php
include( 'nydb.php' ); // Stien til 'fil/nydb.php'
//sekunder til man ser om en bruger er gået
$timeoutseconds = 300;
//Variabel
$timestamp = time();
//til at se om brugeren stadig er på
$timeout = $timestamp-$timeoutseconds;
//skriver i tabellen
$insert = mysql_query("INSERT INTO ". $tableuseronline ." VALUES
('". $timestamp ."','".$_SERVER['REMOTE_ADDR']."','".$_SERVER['PHP_SELF']."')");
//sletter brugere der ikke er på mere
$delete = mysql_db_query($dbase, "DELETE FROM ". $tableuseronline ." WHERE timestamp<". $timeout ."");
//$result får innholdet af kolonnen ip i tabellen useronline
$result = mysql_db_query("SELECT DISTINCT ip FROM ". $tableuseronline ." WHERE file='". $_SERVER['PHP_SELF'] ."'");
//tæller hvor mange rekker tabellen indholder
$user = mysql_num_rows($result);
//Lukker database
mysql_close();

// Udskriver
if($user == 1) { // hvis bare 1
print("User online ". $user ."");
} else { // hvis flere
print("". $user ." users online");
}

?>
Avatar billede michael_stim Ekspert
20. september 2011 - 15:19 #7
Hov, mangler lige at fjerne db_ 2 steder:


<?php
include( 'nydb.php' ); // Stien til 'fil/nydb.php'
//sekunder til man ser om en bruger er gået
$timeoutseconds = 300;
//Variabel
$timestamp = time();
//til at se om brugeren stadig er på
$timeout = $timestamp-$timeoutseconds;
//skriver i tabellen
$insert = mysql_query("INSERT INTO ". $tableuseronline ." VALUES
('". $timestamp ."','".$_SERVER['REMOTE_ADDR']."','".$_SERVER['PHP_SELF']."')");
//sletter brugere der ikke er på mere
$delete = mysql_query("DELETE FROM ". $tableuseronline ." WHERE timestamp<". $timeout ."");
//$result får innholdet af kolonnen ip i tabellen useronline
$result = mysql_query("SELECT DISTINCT ip FROM ". $tableuseronline ." WHERE file='". $_SERVER['PHP_SELF'] ."'");
//tæller hvor mange rekker tabellen indholder
$user = mysql_num_rows($result);
//Lukker database
mysql_close();

// Udskriver
if($user == 1) { // hvis bare 1
print("User online ". $user ."");
} else { // hvis flere
print("". $user ." users online");
}

?>
Avatar billede gqo Nybegynder
20. september 2011 - 15:58 #8
Hej igen...

Nu virker det perfekt.. rigtig mange mange tak,
er det noget med at man skal smide et svar for at jeg kan lukke spørgsmålet?? Gert
Avatar billede michael_stim Ekspert
20. september 2011 - 16:05 #9
Hvis det var mig der kom med løsningen, så tager du bare selv pointene, da jeg ikke samler. Det gøres ved at du selv lægger et svar og accepterer det. Så skulle der være lukket og ryddet op ;o)
Avatar billede gqo Nybegynder
20. september 2011 - 16:09 #10
Ja det var jo dig der havde løsningen, jeg samler nu heller ikke på point, spørger bare en gang imellem..
Tak Gert
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester