Problem z if
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.
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.
<?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.
mgr inż. Pavulon
30.01.2011
dziwna metoda sprawdzania...
Nie lepiej !$pobrane lub $pobrane==NULL ?
Nie lepiej !$pobrane lub $pobrane==NULL ?
if ( !$pobrane ) {
//OFF
} else {
//ON
}
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
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
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
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"; } ?>
karolo_k
30.01.2011
Ślicznie dziękuję oczywiscie +
PS
Tylko
I może mi ktoś powiedzieć dlaczego to nie chciało działać w mojej wersji ?
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 ?