33 Mensajes
12
Dochhh
Usuario habitual
Usuario habitual

Bueno, estoy intentando reutilizar un codigo en el cual se conecta a el servidor i comprueba si esta online, cantidad de players totales entre otros, este tiene que poder revisar cualquier servidor ( cualquier ip )

empezemos con el codigo:

Index.php o el archivo que vaya a mostrar

Cita

        require('config-and-functions.php');

Uptime: <?PHP if($config['status']['serverStatus_online'] == 1) echo $config['status']['serverStatus_uptime'].''; else echo '0h 0m'; ?><br />
                                    Players Online: <?PHP if($config['status']['serverStatus_online'] == 1) echo $config['status']['serverStatus_players'].''; else echo '0'; ?><br />

config-and-functions.php

Cita:

<?PHP

$config['site'] = parse_ini_file('config/config.ini');
$config['server'] = parse_ini_file($config['site']['server_path'].'config.lua');
function logo_monster()
{
    return str_replace(" ", "", trim(mb_strtolower($GLOBALS['config']['site']['logo_monster'])));
}

$statustimeout = 1;
foreach(explode("*", str_replace(" ", "", $config['server']['statusTimeout'])) as $status_var)
    if($status_var > 0)
        $statustimeout = $statustimeout * $status_var;

$statustimeout = $statustimeout / 1000;
$config['status'] = parse_ini_file('cache/serverstatus');
if($config['status']['serverStatus_lastCheck']+$statustimeout < time())
{
    $config['status']['serverStatus_checkInterval'] = $statustimeout+3;
    $config['status']['serverStatus_lastCheck'] = time();
    $info = chr(6).chr(0).chr(255).chr(255).'info';
    $sock = @fsockopen("XXXXX", XXXXX, $errno, $errstr, 1);
    if ($sock)
    {
        fwrite($sock, $info);
        $data='';
        while (!feof($sock))
            $data .= fgets($sock, 1024);
        fclose($sock);
        preg_match('/players online="(\d+)" max="(\d+)"/', $data, $matches);
        $config['status']['serverStatus_online'] = 1;
        $config['status']['serverStatus_players'] = $matches[1];
        $config['status']['serverStatus_playersMax'] = $matches[2];
        preg_match('/uptime="(\d+)"/', $data, $matches);
        $h = floor($matches[1] / 3600);
        $m = floor(($matches[1] - $h*3600) / 60);
        $config['status']['serverStatus_uptime'] = $h.'h '.$m.'m';
        preg_match('/monsters total="(\d+)"/', $data, $matches);
        $config['status']['serverStatus_monsters'] = $matches[1];
        preg_match('/npcs total="(\d+)"/', $data, $matches);
        $config['status']['serverStatus_npcs'] = $matches[1];
    }
    else
    {
        $config['status']['serverStatus_online'] = 0;
        $config['status']['serverStatus_players'] = 0;
        $config['status']['serverStatus_playersMax'] = 0;
        $config['status']['serverStatus_monsters'] = 0;
        $config['status']['serverStatus_uptime'] = 0;
        $config['status']['serverStatus_npcs'] = 0;
    }
    $file = fopen("cache/serverstatus", "w");
    foreach($config['status'] as $param => $data)
    {
$file_data .= $param.' = "'.str_replace('"', '', $data).'"
';
    }
    rewind($file);
    fwrite($file, $file_data);
    fclose($file);
}

$views_counter = "cache/usercounter.dat";

if (file_exists($views_counter))
{
    $actie = fopen($views_counter, "r+");
    $page_views = fgets($actie, 9);
    $page_views++;
    rewind($actie);
    fputs($actie, $page_views, 9);
    fclose($actie);
}
else
{
    $actie = fopen($views_counter, "w");
    $page_views = 1;
    fputs($actie, $page_views, 9);
    fclose($actie);
}
?>

the ini just redirects to a .lua file with the config

config.ini

Cita

server_path = "C:\xampp\htdocs\config\"

config.lua ( muchas de estas funciones no hacen falta para lo que queremos )

Cita:


    worldId = 0
    ip = " "
    bindOnlyGlobalAddress = false
    loginPort = 7171
    gamePort = 7172
    loginTries = 3
    retryTimeout = 5 * 1000
    loginTimeout = 60 * 1000
    maxPlayers = 1000
    motd = ""
    displayOnOrOffAtCharlist = false
    onePlayerOnlinePerAccount = true
    allowClones = 0
    serverName = "OTServ"
    loginMessage = ""
    statusTimeout = 5 * 60 * 1000
    replaceKickOnLogin = true
    forceSlowConnectionsToDisconnect = false
    loginOnlyWithLoginServer = false

 
    statusPort = 7171
    ownerName = ""
    ownerEmail = ""
    url = ""
    location = ""

realmente, no se como hacer lo que busco, pero bueno espero que podais ayudarme

todos los archivos estan simplificados evitando lo superfluo.

gracias

Dochhh
Usuario habitual
Usuario habitual

alguien puede ayudarme?

Avatar Image
Moderador
Moderador
Escrito originalmente por Dochhh

alguien puede ayudarme?

dices, a tener paciencia?

De interés Público
NO AGREGARME COMO AMIGO, gracias
Asuntos claros en los temas
Consultas en temas no afines serán borradas
Tratemos de expresarnos bien, que así da gusto leer


Dochhh
Usuario habitual
Usuario habitual

Realmente, escribes para decir eso? porque si es así te lo puedes ahorrar, gracias

Avatar Image
Moderador
Moderador

me sé un par de poemas si quieres... Pero la verdad voy a que hay veces que los usuarios no saben la respuesta o quien la sabe no ha pasado por acá. La paciencia es una virtud a cultivar en todo sistema de foros en que quieras preguntar/participar

De interés Público
NO AGREGARME COMO AMIGO, gracias
Asuntos claros en los temas
Consultas en temas no afines serán borradas
Tratemos de expresarnos bien, que así da gusto leer


Avatar Image
@man / @woman
@man / @woman
Escrito originalmente por Dochhh

alguien puede ayudarme?

Teniendo en cuenta que pones un montón de código y no das una pista ni del fallo que te da... pues lo mejor es que preguntes al autor del código que te explique como lo ha hecho y como se hace para que funcione.

Dochhh
Usuario habitual
Usuario habitual
Escrito originalmente por NoSetup.org
Escrito originalmente por Dochhh

alguien puede ayudarme?

Teniendo en cuenta que pones un montón de código y no das una pista ni del fallo que te da... pues lo mejor es que preguntes al autor del código que te explique como lo ha hecho y como se hace para que funcione.

no da ningun fallo, pero quiero adaptarlo a lo que necesito, aparte de comprobar si la ip X del servidor con X puerto esta online, estas X son dadas a partir de la DB y ademas tiene que decirme tambien los players online y cuanto tiempo lleva uptime, que es ahi donde ya me pierdo

Avatar Image
@man / @woman
@man / @woman
Escrito originalmente por Dochhh
Escrito originalmente por NoSetup.org
 

no da ningun fallo, pero quiero adaptarlo a lo que necesito, aparte de comprobar si ...y ademas tiene que .... y .... que es ahi donde ya me pierdo

A ver... si quieres hacer todo a la vez, nada te va a salir.

Tendrás que empezar a hacer una cosa, y cuando te salga la siguiente...

Por lo que, elige por donde empezar, después empieza a programar y cuando te pierdas en un paso en concreto pregunta, indicando que quieres hacer, hasta donde llegas y que has intentado.

Dochhh
Usuario habitual
Usuario habitual

de momento tengo esto:

Cita:

 <?php
 ini_set('display_errors', 'Off');
ini_set('display_startup_errors', 'Off');
error_reporting(0);
        require('seguridad.php');

/* UPTIME */

$downtime = (mysql_query("SELECT `downtime` FROM `servers` WHERE `banned` = 0 ORDER BY `id` DESC"));
$al = ($downtime / 43200) X 100;
$totalup = (1 - $al);


?>
 <?php
 $site = mysql_query("SELECT `host` FROM `servers` WHERE `banned` = 0 ORDER BY `id` DESC");
$puerto = mysql_query("SELECT `port` FROM `servers` WHERE `banned` = 0 ORDER BY `id` DESC");
$timeout= 6;

  function ping($site,$puerto,$timeout)

   {

          @$fsock = fsockopen($site, $puerto, $errno, $errstr, $timeout);

     if ( ! $fsock )
           {
        return FALSE;
           }
          else
          {
                  return TRUE;
        }
}




/* esta online? */
$up = ping($site,$puerto,$timeout);
/* condicion */
if ($up == TRUE){
mysql_query("INSERT INTO servers where banned = 0 (online, uptime, players, on) VALUES (1, '.$totalup.', '.$players.', 1)")
}
else
{
mysql_query("INSERT INTO servers where banned = 0 (online, uptime, players, on) VALUES ('0', '.$totalup.', 0, '0')")
}


?>

y me saltan 2 errores, uno en el calculo del uptime i otro en la condicion del si esta online, alguien ve el fallo?

Avatar Image
@man / @woman
@man / @woman
Escrito originalmente por Dochhh

de momento tengo esto:

Cita:

/* UPTIME */

$downtime = (mysql_query("SELECT `downtime` FROM `servers` WHERE `banned` = 0 ORDER BY `id` DESC"));
$al = ($downtime / 43200) X 100;
$totalup = (1 - $al);

y me saltan 2 errores, uno en el calculo del uptime

¿En esta parte del código te da el problema?

¿Que tienes en la variable $downtime? (ojo, no que quieres tener, sino que tienes)

Respecto al otro error... después.

Dochhh
Usuario habitual
Usuario habitual
Escrito originalmente por NoSetup.org
Escrito originalmente por Dochhh

de momento tengo esto:

Cita:

/* UPTIME */

$downtime = (mysql_query("SELECT `downtime` FROM `servers` WHERE `banned` = 0 ORDER BY `id` DESC"));
$al = ($downtime / 43200) X 100;
$totalup = (1 - $al);

y me saltan 2 errores, uno en el calculo del uptime

¿En esta parte del código te da el problema?

¿Que tienes en la variable $downtime? (ojo, no que quieres tener, sino que tienes)

Respecto al otro error... después.

downtime se supone que es un numero, el 0 , principalmente

y me da error en el apartado de la division, un T_String

Avatar Image
@man / @woman
@man / @woman

Tienes una sentencia mysql_query...

$downtime = (mysql_query("SELECT `downtime` FROM `servers` WHERE `banned` = 0 ORDER BY `id` DESC"));

¿Que sale?

Lo mejor que puedes hacer es hacer un print_r($downtime); y veras lo que sale... y lo copias aquí... y veras si con eso, después se puede trabajar o se tiene que transformar...

Recuerda, no quiero saber lo que se supone tiene que salir, eso lo sabes tu, quiero lo que realmente sale...

Dochhh
Usuario habitual
Usuario habitual

parece ser que la consulta no esta bien hecha, no aparece nada

de todas formas me parece que esta no es la manera correcta de hacer lo que quiero conseguir. Quiero comprovar cada servidor de mi db, comprovar cada una de sus columnas, actualizar datos, i pasar al servidor siguiente para hacer lo mismo, con este query solo me saldra el numero de servidores que cumplen esa condicion

Avatar Image
@man / @woman
@man / @woman

Entiendo que tienes una serie de direcciones que quieres comprobar si están o no funcionado ¿verdad?

¿Como quieres comprobar si una dirección funciona?

Dochhh
Usuario habitual
Usuario habitual
Escrito originalmente por NoSetup.org

Entiendo que tienes una serie de direcciones que quieres comprobar si están o no funcionado ¿verdad?

¿Como quieres comprobar si una dirección funciona?

se pingea minimamente una direccion con un puerto, si hay respuesta es que esta online, este seria el codigo,  he comprobado que funciona:

Cita:

ini_set('display_errors', 'Off');
ini_set('display_startup_errors', 'Off');
error_reporting(0);

   /* our simple php ping function */

 $site = @$_POST["site"] or die('Unknown Adress');;
$puerto = @$_POST["puerto"] or die('Unknown Port');;
$timeout= 6;

  function ping($site,$puerto,$timeout)

   {

          @$fsock = fsockopen($site, $puerto, $errno, $errstr, $timeout);

     if ( ! $fsock )
           {
        return FALSE;
           }
          else
          {
                  return TRUE;
        }
}



/* check if the host is up */


$up = ping($site,$puerto,$timeout);



/* display */
echo '<img src="'.($up ? 'on' : 'off').'.jpg" alt="'.($up ? 'The Adress is Online' : 'The Adress is Offline').'" />';

?>

intento coger cada direccion de la db comprobar si responde entre otros, esto es lo que tengo por el momento pero me salta el fallo anterior que comenté, este codigo no esta testeado:

Cita:

<?php
 ini_set('display_errors', 'Off');
ini_set('display_startup_errors', 'Off');
error_reporting(0);
        require('seguridad.php');

/* COMPROBAR LA CANTIDAD DE SERVERS QUE HAY */
$totalservers = ("SELECT COUNT(*) FROM `servers` WHERE `id`>0 AND `banned` = 0");
while( $totalservers > 0) {

/*cALCULAR EL UPTIME */

$downtime = (mysql_query("SELECT `downtime` FROM `servers` WHERE `banned` = 0 ORDER BY `id` DESC"));
$al = ($downtime / 43200) X 100;
$totalup = (1 - $al);

?>
 <?php
/*COMPROBAR SI LA WEB ESTA ON */
 $site = mysql_query("SELECT `host` FROM `servers` WHERE `banned` = 0 ORDER BY `id` DESC");
$puerto = mysql_query("SELECT `port` FROM `servers` WHERE `banned` = 0 ORDER BY `id` DESC");
$timeout= 6;

  function ping($site,$puerto,$timeout)

   {

          @$fsock = fsockopen($site, $puerto, $errno, $errstr, $timeout);

     if ( ! $fsock )
           {
        return FALSE;
           }
          else
          {
                  return TRUE;
        }
}




/* esta online? */
$up = ping($site,$puerto,$timeout);
/* condicion */
if ($up == TRUE){
mysql_query("INSERT INTO servers where banned = 0 (online, uptime, players, on) VALUES (1, '.$totalup.', '.$players.', 1)")
}
else
{
mysql_query("INSERT INTO servers where banned = 0 (online, uptime, players, on) VALUES ('0', '.$totalup.', 0, '0')")
}}

$totalservers--;
}
?>

gracias por tu atencion

Avatar Image
@man / @woman
@man / @woman

Es decir, ahora tienes una base de datos con direcciones y necesitas hacer una consulta para sacar cada una de ellas ¿verdad?

 $site = mysql_query("SELECT `host` FROM `servers` WHERE `banned` = 0 ORDER BY `id` DESC");

El problema que tienes, es que crees que en $site tienes una dirección o similar... cuando lo que tienes es otro cosa, haz un print_r($site); y veras que tipo de información te saca y como tendrás que trabajar con ella dentro de un bucle.

Dochhh
Usuario habitual
Usuario habitual

he cambiado un poco el codigo, para poder hacer el while con la id (que tiene llave primaria) de cada server

Cita:

/* COMPROBAR LA CANTIDAD DE SERVERS QUE HAY */

$totalservers = ("SELECT COUNT(*) FROM `servers` WHERE `id`> 0 AND `banned` = 0 AND `deleted` = 0");

/* BUSCAR POR ID*/
$id = ("SELECT * FROM servers WHERE id ='$totalservers' AND banned = 0 AND deleted = 0 ORDER BY id DESC");
$row = mysql_fetch_assoc($id); /* no se si esta bien esta parte */
while( $id > 0) {

/*cALCULAR EL UPTIME */

$downtime = $row["downtime"];
$al = (($downtime / 43200) X 100);
$totalup = (1 - $al);

.....

$totalservers--;
}

la parte del row no se si esta bien, ya que los he visto pero no usado nunca, he buscado info pero me sale el error de T_String, a ver si alguien ve el error, gracias

Avatar Image
@man / @woman
@man / @woman

A ver... haces una consulta a una base de datos... que te devuelve un array, con 0 resultados, con 1 o con varios...

 Mira este código...

   $result = mysql_query('SELECT * FROM ....); // Sentencia SQL
    $n=mysql_num_rows($result);            // Número de registros, por si es necesario
    while ($row = mysql_fetch_array($result)) // Vamos mirando registro a registro
    {
       echo 'El dato es: '.$row['id'].'<br />';
    }

Si haces esto, modificando el código, obviamente... empezarías a sacar datos...

Dochhh
Usuario habitual
Usuario habitual

he estado comprobando el codigo por separado porque ya no se que hacer y el problema viene de las queries me temo:

<?php
mysql_connect("localhost","xxxxxx","xxxxx"); 
mysql_select_db("xxxxx");

/* COMPROBAR LA CANTIDAD DE SERVERS QUE HAY */
$totalservers = mysql_query('SELECT COUNT(*) FROM `servers` WHERE `id` > 0 AND `banned` > 0 AND `deleted` > 0 ORDER BY `id` DESC') or die ('A');;


       echo 'El dato es: '.$totalservers.''

?>

me devuelve:

Cita:

El dato es: Resource id #4

Supongo que por eso ya se fastidian las operaciones y las otras queries.. apesar de que me tendrian que salir 6 no 4 que son los servers que tengo de prueba en la db...como podria hacer para que me devolviera solo un numero?

Avatar Image
@man / @woman
@man / @woman

Te dije que sacases el dato con un print_r($...); no con un echo.

Y mira y entende el código que te he puesto.

Dochhh
Usuario habitual
Usuario habitual

ok, ya he comprobado el codigo, pero ahora surje un problema, y es que me devuelve un array con los valores de todas las filas que se elijan, como toca, pero necesito que me devuelva el valor de una fila en concreto, solo 1 valor, para poder hacer las operaciones necesarias con este, i poder hacer las comprobaciones de ip etc. He modificado un poco el codigo :

<?php
        require('seguridad.php');/* COMPROBAR LA CANTIDAD DE SERVERS QUE HAY */
$totalservers = mysql_query('SELECT COUNT(id) AS totalservers FROM `servers` WHERE `banned` = 0 AND `deleted` = 0 ORDER BY `id` DESC');
$result = mysql_query('SELECT * FROM `servers` WHERE id = totalservers AND `banned` = 0 AND `deleted` = 0 ORDER BY `id` DESC');
$n = mysql_num_rows($result);
while ($row = mysql_fetch_array($result))
{
/*CALCULAR EL UPTIME */
$minutos = 43200;
$al = $row['downtime'] / $minutos X 100;
$totalup = 1 - $al;
mysql_query("UPDATE servers SET downtime = $totalup");
/*COMPROBAR SI LA WEB ESTA ON */
 $site = $row['host'];
$puerto = $row['puerto'];
$timeout= 6;  function ping($site,$puerto,$timeout)   {          @$fsock = fsockopen($site, $puerto, $errno, $errstr, $timeout);     if ( ! $fsock )
           {
        return FALSE;
           }
          else
          {
                  return TRUE;
        }
}
/* esta online? */
$up = ping($site,$puerto,$timeout);
/* condicion */
if ($up == TRUE){
mysql_query("UPDATE servers SET WHERE banned = 0 (online, uptime, players, on) VALUES (1, '.$totalup.', '.$players.', 1)")
}
else
{
mysql_query("UPDATE servers SET WHERE banned = 0 (online, uptime, players, on) VALUES ('0', '.$totalup.', 0, '0')")
}}$totalservers--;
}
?>

la primera variable, cuenta las id's i las llama totalserver, la variable segunda se supone que escoje la fila con la id que asigna la primera variable, luego necesito que el loop sea solo con el array que devuelve la 2º variable, con el objetivo que no me devuelva toda la fila de arrays sino las de la id especifica i luego ya hacer los calculos i las compobaciones, el codigo tine algun fallo en la 2º variable de/*CALCULAR EL UPTIME */ un T_SRING, gracias por ayudarme NoSetup.org, en php soy autodidactico, no tengo estudios


[cabe decir que el codigo que intento hacer se ejecutara cada X tiempo y solo sirve para actualizar la db otro codigo mostrara los datos, pero ese es otro tema]

Avatar Image
@man / @woman
@man / @woman
Escrito originalmente por Dochhh

ok, ya he comprobado el codigo, pero ahora surje un problema, y es que me devuelve un array con los valores de todas las filas que se elijan, como toca, pero necesito que me devuelva el valor de una fila en concreto, solo 1 valor

El código te devuelve un array con varias filas, una por servidor, si solo quieres una fila, tendrás que adaptar el código para que haga eso.

Por lo que veo en $totalservers intentas meter un número ¿lo consigues?

Después con ese número intentas hacer un SELECT buscando por id ¿es realmente la fila que estas buscando? es decir, por un lado $totalservers cuenta un número de resultados, que podría ser 10, pero después ¿quieres sacar la fila con id = 10 ? además, haces metes más condicionates, seguimos en la segunda sentencia, para hacer el SELECT, cuando el id ya es único. Además metes un ORDER cuando en principio, solo quieres sacar 1 fila, por lo que no tiene sentido.

Es decir, creo que fallas en como seleccionas el servidor.

También te vendría bien imprimir $n, pues te dice cuantas filas hay en tu última selección, si da más de 1, es que esta mal el código...

Dochhh
Usuario habitual
Usuario habitual

vuelve a dar lo de resource id #4, nose porque pasa, quizas tiene que salir eso, luego examinaré el codigo e intentaré volverlo hacer de otra manera o solucionarlo

en la primera variable, cuando pongo lo de

AS totalservers

no lo pilla como variable, no se muy bien como hacer queries con variables en php

Dochhh
Usuario habitual
Usuario habitual

ok ya casi lo tengo, $totalservers ya guarda el valor numerico correcto y $result coje el array bien del valor que le asigna $totalservers, ahora el empujon que necesito es hacer que $totalservers una vez a terminado con la primera id( es decir la mas grande, ya que esta ordenada en DESC) disminuya en 1 su valor i vuelva a actualizar los datos de la id inferior

( si por ejemplo tengo 10 id's, que al terminar de comprobar i actualizar la decima id pase a la novena i asi sucesivamente hasta llegar a la ID 1 dondedeberia parar de comprobar y actualizar)

<?php
$conexion = mysql_connect("xxxx", "xxxxxxxxx", "xxxxxxxxxxxx");
mysql_select_db("xxxxxxx", $conexion);/* COMPROBAR LA CANTIDAD DE SERVERS QUE HAY */
$totalserversquery = mysql_query("SELECT id FROM `servers` WHERE `banned` = 0 AND `deleted` = 0 ORDER BY `id` DESC");
$totalservers = mysql_num_rows($totalserversquery);
$result = mysql_query("SELECT * FROM `servers` WHERE id = '$totalservers' AND `banned` = 0 AND `deleted` = 0 ORDER BY `id` DESC");$line = mysql_num_rows($result);
while ($row = mysql_fetch_array($result))
{
echo 'compruebo el dato y lo actualizo: '.$row['id'].'<br />';
echo 'compruebo el dato y lo actualizo: '.$row['host'].'<br />';
echo 'compruebo el dato y lo actualizo: '.$row['puerto'].'<br />';
$totalservers--;
}?>
Avatar Image
@man / @woman
@man / @woman
Escrito originalmente por Dochhh

ok ya casi lo tengo, $totalservers ya guarda el valor numerico correcto y $result coje el array bien del valor que le asigna $totalservers, ahora el empujon que necesito es hacer que $totalservers una vez a terminado con la primera id( es decir la mas grande, ya que esta ordenada en DESC) disminuya en 1 su valor i vuelva a actualizar los datos de la id inferior

No tienes que hacer que disminuya uno... sino tienes que hacer un bucle con la primera busqueda... es decir, NO te interesa saber cuantas filas hay... te interesa manejar todas y cada una de ellas.

Si te fijas en tu código, tienes dos sentencias SQL, la primera cuentas servers y la segunda para ver uno en concreto. Eso es ta MAL, con la primera sentencia tienes suficiente, si después les metes el bucle este hara que se vaya recorriendo mientras haya registros que se cumplan las condiciones puestas.

Espero un código con solo una sentencia SQL.

Y a nivel informátivo:

Además, sigo diciendo que tienes un problema de concepto, $totalservers te puede dar 15 por ejemplo, pero después puede que NO haya uno con ID=15, por lo que el script fallaría.

Y en la segunda sentencia SQL si metes una selección por ID, el resto de factores en principio sobrarian, por lo que no cargues el código con cosas innecesarias.

Dochhh
Usuario habitual
Usuario habitual

aqui esta el codigo con una sentencia, el calcular uptime no me funciona, no se como hacer la operacion aritmetica i guardarla el $al para luego restarle $al a 1 i almacenarlo en la db, de momento el codigo le asigna el valor 1 a todas las filas de downtime, supongo que porque en $totalup se salta el restarle el $al que no va.

sobre lo de que si la ID=15 no existirera, hice una especie de remedio un poco chapuza, y es que si alguien quiere borrar su cuenta en lugar de borrarla i quedar por ejemplo ID=14 i la siguiente fila ID=16 seria poner el valor 1 en la casilla de delete en la cuenta que hade ser borrada, i asi el codigo se saltaria esa fila tal vez esto se podria quitar usando un try o nose..

<?php
$conexion = mysql_connect("xxxx", "xxxxx", "xxxxx");
mysql_select_db("xxxxxxxxx", $conexion);
$totalserversquery = mysql_query("SELECT * FROM `servers` WHERE `banned` = 0 AND `deleted` = 0 ORDER BY `id` DESC");
$totalservers = mysql_num_rows($totalserversquery);
 while ($totalservers = mysql_fetch_array($totalserversquery))
{
echo 'El dato es: '.$totalservers['id'].'<br />';
echo 'El dato es: '.$totalservers['host'].'<br />';
echo 'El dato es: '.$totalservers['puerto'].'<br />';

 /*cALCULAR EL UPTIME */
$num1 = 43200;
$num2 = 100;
$al =$totalservers['downtime'] / $num1 X $num2;
$totalup = 1 - $al;
mysql_query("UPDATE servers SET downtime = $totalup");}
?>
Avatar Image
@man / @woman
@man / @woman

¿Ya consigues recorrer todos los registros que te interesan? SI / NO

El tema del uptime ¿lo quieres para todos los registros? ¿o solo para uno en concreto?

¿$al ya te da un valor númerico? ¿es el que quieres guardar? ¿o quieres guardar $totalup?

Dochhh
Usuario habitual
Usuario habitual
$totalservers['downtime'] / $num1 X $num2;

en $al, pero al parecer esta no esta bien codeada

Avatar Image
@man / @woman
@man / @woman

A ver... se supone que ya recorres todos los registros y en ese bucle tienes a $totalup tienes un valor númerico que quieres actualizar en ese registro... por lo que cuando hagas la SQL, tendrás que decirle en cual estas... con un WHERE ID=... de esta forma, lo guardar en el registro indicado.

Dochhh
Usuario habitual
Usuario habitual
/*cALCULAR EL UPTIME */
$num1 = 43200;
$num2 = 100;
$al = $totalservers['downtime'] / $num1 X $num2;
$totalup = 1 - $al;
mysql_query("UPDATE servers SET downtime = $totalup WHERE id = $totalservers['id']");

 pero de todas formas algo pasa aqui, me tira un T_String en esta linea

$al = $totalservers['downtime'] / $num1 X $num2;

Dios que fallo mas tonto, en lugar de poner * en la multiplicacion puse X, ahora añado mas codigo y si necesito ayuda, posteo de momento eso ya va

33 Mensajes
12
ATENCIÓN: Este tema no tiene actividad desde hace más de 6 MESES,
te recomendamos abrir un nuevo tema en lugar de responder al actual
Opciones:
Ir al subforo:
Permisos:
TU NO PUEDES Escribir nuevos temas
TU NO PUEDES Responder a los temas
TU NO PUEDES Editar tus propios mensajes
TU NO PUEDES Borrar tus propios mensajes
Temas similares
No se han encontrado temas similares