←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

PHP
Problem z if

Zablokowany

  • +
  • -
karolo_k - zdjęcie karolo_k 30.01.2011

Witam, napisałem sobie taki skrypcik do którego zadaniem jest wyświetlanie czy serwer jest online czy offline i dodałem do tego pobieranie adresów z bazy.
<?php

include("config.php");
include("class_PQ.php");

$conn = mysql_connect("$host","$nameuser","$passworddb" ) or die('Could not connect to mysql server.' );
mysql_select_db("$namedb") or die('Could not select database.');
$sql = "SELECT `email`,`ip_adres`,`status` FROM `test_online`";
$abc = mysql_query($sql,$conn);
if (!mysql_query($sql,$conn))
{
die('Error: ' . mysql_error());
}
while ($wiersz = mysql_fetch_row($abc))
{

$email = $wiersz[0];
// echo "a";
$adres = $wiersz[1];
// echo "b";
$status = $wiersz[2];
// echo "c<p>";
$pq = PQ::create($conf);

while($pobrane = $pq->query_info($adres)) {
$ping = $pobrane['ping'];
$ip = $pobrane['ip'];
$port = $pobrane['port'];
$nazwa = $pobrane['name'];
$mapa = $pobrane['map'];
$total = $pobrane['totalplayers'];
$max = $pobrane['maxplayers'];
$haslo = $pobrane['serverlocked'];
$protocol = $pobrane['protocol'];
$gamename = $pobrane['gamename'];


if($total < 1 and $max < 1)
echo "offline";
else
echo "online";


break;

}
}
?>

Mam tutaj bardzo dziwny problem gdyż pojawia się tylko komunikat online (oczywiscie gdzy sprawdzany jest adres serwera online) a komunikaty offline nie są wyświetlanie, i nie mam pojęcia dlaczego.
Odpowiedz

  • +
  • -
mgr inż. Pavulon - zdjęcie mgr inż. Pavulon 30.01.2011

dziwna metoda sprawdzania...
Nie lepiej !$pobrane lub $pobrane==NULL ?
if ( !$pobrane ) {
//OFF
} else {
//ON
}
Odpowiedz

  • +
  • -
karolo_k - zdjęcie karolo_k 30.01.2011

Po prostu korzystałem z gameq no i oni tam mieli taki warunek " if($total < 1 and $max < 1) " aby sprawdzić czy serwer jest online.
Ale ta twoja podpowiedź nie pomogła dalej komunikat wyświetlał się tylko online.
Tak wygląda moja baza danych
-- Struktura tabeli dla  `test_online`
--

CREATE TABLE IF NOT EXISTS `test_online` (
  `ID` int(6) NOT NULL AUTO_INCREMENT,
  `email` varchar(25) NOT NULL,
  `ip_adres` varchar(25) NOT NULL,
  `status` varchar(10) NOT NULL,
  `wolny` varchar(10) NOT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=12 ;

--
-- Zrzut danych tabeli `test_online`
--

INSERT INTO `test_online` (`ID`, `email`, `ip_adres`, `status`, `wolny`) VALUES
(4, 'asd1111o2.pl', '194.xx.175.160:27018', '0', ''),
(6, '[email protected]', '194.xx.175.160:27015', '0', ''),
(7, '[email protected]', '194.xx.175.160:27012', '0', ''),
(8, '[email protected]', '194.xx.175.160:27015', '0', ''),
(9, '[email protected]', '194.xx.175.160:27015', '0', ''),
(10, '[email protected]', '194.xx.175.160:27012', '0', ''),
(11, '[email protected]', '194.xx.175.160:27010', '0', '');
Musiałem zamiast IP wpisać xx bo przez regulanim nie mogłem wysłać posta.
Adresy serwerów zakończone portem 27015 lub 27010 to serwery online. Więc wynik działania skryptu powinien być offline online offline online online offline online. A jest tak:
http://img684.images...13/36795917.png
Odpowiedz

  • +
  • -
G[o]Q - zdjęcie G[o]Q 30.01.2011

<?php



include("config.php");

include("class_PQ.php");



$conn = mysql_connect("$host","$nameuser","$passworddb" ) or die('Could not connect to mysql server.' );

mysql_select_db("$namedb") or die('Could not select database.');

$sql = "SELECT `email`,`ip_adres`,`status` FROM `test_online`";

$abc = mysql_query($sql,$conn);

if (!mysql_query($sql,$conn))

{

die('Error: ' . mysql_error());

}

while ($wiersz = mysql_fetch_row($abc)) 

{

  

  $email = $wiersz[0];

 // echo "a";

  $adres = $wiersz[1];

//  echo "b";

  $status = $wiersz[2];

//  echo "c<p>";

  $pq = PQ::create($conf);



   $pobrane = $pq->query_info($adres);

        

        

    if(!pobrane) 

                echo "offline";

    else

        echo "online";

        

        

    

    



}       

?>
Odpowiedz

  • +
  • -
karolo_k - zdjęcie karolo_k 30.01.2011

Ślicznie dziękuję :rolleyes: oczywiscie +
PS
Tylko
if(!pobrane) 
trzeba zamienić na
if(!$pobrane)

I może mi ktoś powiedzieć dlaczego to nie chciało działać w mojej wersji ?
Odpowiedz
Zablokowany