
Comparando Dados De Um For Com Outro
Started By cleimar, 12/11/2009, 09:36
11 replies to this topic
#1
Posted 12/11/2009, 09:36
Bom dia pessoal!
sou leigo em php, estou precisando fazer uma consulta e um banco de dados e verificar o resultado e comprar com outro gerado por um for
organizar por ordem cresente e marcar os dados com um (X) os que estao na tabela e com um (V) os que estao livres exemplo
no banco contem o ip 192.168.0.1 192.168.0.2 192.168.0.8 192.168.0.10 cadastrado no banco de dados
no codigo que vai gerar um for vai ter 192.168.0.1 ate 192.168.0.254
no resultado teria que aparecer
192.168.0.1(X)
192.168.0.2(X)
192.168.0.3(V)
192.168.0.4(V)
192.168.0.5(V)
192.168.0.6(V)
192.168.0.7(V)
192.168.0.8(X)
192.168.0.9(V)
192.168.0.10(X)
192.168.0.11(V) ate o
192.168.0.254(V)
e este cogigo para gerar o ip para fazer a comparação
vai gerar de 4 em 4 e vai pegar o final ex 2 vai comparar na consulta no db e da o resultado se tiver no db marca com um (X)
se nao tiver insere no meio da consulta como live (V)
for ($ip4=2;$ip4<255;$ip4=$ip4+4) {
echo "192.168.0.$ip4<br />";
}
estou usando este codigo para consulta no banco de dados
if ($classe > "0"){
$select = "SELECT * FROM log WHERE ip REGEXP '" . $classe . "' GROUP BY ip ORDER BY (ip) ASC";
$query = mysql_query($select,$con) or die(mysql_error());
if (mysql_num_rows($query) == 0){ echo "<b>A busca da clesse <font color=\"#FF0000\">($classe)</font> Não Foi localizada no sistema..</b>";}
echo "<table width=\"225\" border=\"1\" align=\"center\" cellspacing=\"0\">";
echo "<tr>";
echo "<td><strong>IP's USADOS NA CLASSE</strong></td>";
echo "</tr>";
for ($n=0; $n<mysql_num_rows($query);$n++) {
$r = mysql_fetch_row($query);
$id = $r[0];
$ip = $r[1];
$user = $r[2];
echo "<td style=\"border-right: 2px solid #FFFFFF\">$ip</td>";
echo "<td style=\"border-right: 2px solid #FFFFFF\">$user</td>";
echo "</tr>";
}
echo "</table>";
}//fim do if da classe
?>
o problema e pegar o que gera o final do ip de 4 em 4 verificar se tem no banco e marcarlo se esta ou nao sendo usado
desculpe pela enrolação na esplicação mais sou meio leigo....
quem puder coperar agradecerei muito!!!
fiquem com DEUS
sou leigo em php, estou precisando fazer uma consulta e um banco de dados e verificar o resultado e comprar com outro gerado por um for
organizar por ordem cresente e marcar os dados com um (X) os que estao na tabela e com um (V) os que estao livres exemplo
no banco contem o ip 192.168.0.1 192.168.0.2 192.168.0.8 192.168.0.10 cadastrado no banco de dados
no codigo que vai gerar um for vai ter 192.168.0.1 ate 192.168.0.254
no resultado teria que aparecer
192.168.0.1(X)
192.168.0.2(X)
192.168.0.3(V)
192.168.0.4(V)
192.168.0.5(V)
192.168.0.6(V)
192.168.0.7(V)
192.168.0.8(X)
192.168.0.9(V)
192.168.0.10(X)
192.168.0.11(V) ate o
192.168.0.254(V)
e este cogigo para gerar o ip para fazer a comparação
vai gerar de 4 em 4 e vai pegar o final ex 2 vai comparar na consulta no db e da o resultado se tiver no db marca com um (X)
se nao tiver insere no meio da consulta como live (V)
for ($ip4=2;$ip4<255;$ip4=$ip4+4) {
echo "192.168.0.$ip4<br />";
}
estou usando este codigo para consulta no banco de dados
if ($classe > "0"){
$select = "SELECT * FROM log WHERE ip REGEXP '" . $classe . "' GROUP BY ip ORDER BY (ip) ASC";
$query = mysql_query($select,$con) or die(mysql_error());
if (mysql_num_rows($query) == 0){ echo "<b>A busca da clesse <font color=\"#FF0000\">($classe)</font> Não Foi localizada no sistema..</b>";}
echo "<table width=\"225\" border=\"1\" align=\"center\" cellspacing=\"0\">";
echo "<tr>";
echo "<td><strong>IP's USADOS NA CLASSE</strong></td>";
echo "</tr>";
for ($n=0; $n<mysql_num_rows($query);$n++) {
$r = mysql_fetch_row($query);
$id = $r[0];
$ip = $r[1];
$user = $r[2];
echo "<td style=\"border-right: 2px solid #FFFFFF\">$ip</td>";
echo "<td style=\"border-right: 2px solid #FFFFFF\">$user</td>";
echo "</tr>";
}
echo "</table>";
}//fim do if da classe
?>
o problema e pegar o que gera o final do ip de 4 em 4 verificar se tem no banco e marcarlo se esta ou nao sendo usado
desculpe pela enrolação na esplicação mais sou meio leigo....
quem puder coperar agradecerei muito!!!
fiquem com DEUS
#2
Posted 12/11/2009, 09:44
man.. ta muito confuso.... o que vc quer fazer
explica ai .. pra que possa te ajudar...
pelo que entendi .. vc resolve isso com uma consulta so
SELECT tb1.ip,tb2.ip,if(tb2.ip= '','V','X') as tipo FROM tb1 LEFT JOIN tb2 ON (tb1.ip = tb2.ip);
mais u]ou menos isso
explica ai .. pra que possa te ajudar...
pelo que entendi .. vc resolve isso com uma consulta so
SELECT tb1.ip,tb2.ip,if(tb2.ip= '','V','X') as tipo FROM tb1 LEFT JOIN tb2 ON (tb1.ip = tb2.ip);
mais u]ou menos isso
<?php $squall = new Squall(); $squall->Ajudando("você"); $resultado = $squall->solucao(); ?>
#3
Posted 12/11/2009, 09:51
Bom dia Squall Robert,
o que quero e o seguinte
quero fazer uma consulta em somente uma tabela
e pegar um loop feito pelo for onde e gerado numeros de 4 em 4
e pegar esses numeros de 4 e 4 e compara com o resultado da tabela
se na tabela tiver um ip 192.168.0.2 ele nao adiciona este ip mais marca ele com um (X) me mostrando que ja esta em uso
e na tabela nao tem o 192.168.0.6 ai ele marca com (V) mostrando que esta livre
sou meio confuso em explicaçoes desculpe a enrolação...
obrigado
o que quero e o seguinte
quero fazer uma consulta em somente uma tabela
e pegar um loop feito pelo for onde e gerado numeros de 4 em 4
e pegar esses numeros de 4 e 4 e compara com o resultado da tabela
se na tabela tiver um ip 192.168.0.2 ele nao adiciona este ip mais marca ele com um (X) me mostrando que ja esta em uso
e na tabela nao tem o 192.168.0.6 ai ele marca com (V) mostrando que esta livre
sou meio confuso em explicaçoes desculpe a enrolação...
obrigado
#4
Posted 12/11/2009, 09:58
olha so ... ele vai fazer essa comparação em outra tabela..?
tipo são 2 tabelas?
pego de umame comparo na outra... se o ip é unico
por que vo separar os IPS;;;;
vc vai Pegar 4 ips
ou vc vai explodir o ip GERANDO
4 indices....
ainda esta confuso
tipo são 2 tabelas?
pego de umame comparo na outra... se o ip é unico
por que vo separar os IPS;;;;
vc vai Pegar 4 ips
ou vc vai explodir o ip GERANDO
4 indices....
ainda esta confuso
<?php $squall = new Squall(); $squall->Ajudando("você"); $resultado = $squall->solucao(); ?>
#5
Posted 12/11/2009, 11:15
podemos modificar e acresentar uma tabela com os ips para verificação
mais com o final pois tem ips com
192.168.0.1, 192.168.0.2 e etc
no caso
na tabela 1 teria 192.168.0.2, 192.168.0.6, 192.168.0.10
na tabela 2 teria os finais dos ips como 2, 6, 10, 14, 18, 22 etc
e comparariamos os resultados se na tabela 1 tem 192.168.0.2 iria verificar na outra tabela e me mostrar se numa estiver e na outra nao ele me daria o status dele (X) para usado e (V) para livre...
se tiver em uma e nao tiver na outra ele me da como vago
e se tiver em uma e na outra ele me da como usado
so que respeitando a ordem crecente 2, 6, 10, 14, 18 etc
n sei explicar bem nao
mais a idea e essa
obrigado
mais com o final pois tem ips com
192.168.0.1, 192.168.0.2 e etc
no caso
na tabela 1 teria 192.168.0.2, 192.168.0.6, 192.168.0.10
na tabela 2 teria os finais dos ips como 2, 6, 10, 14, 18, 22 etc
e comparariamos os resultados se na tabela 1 tem 192.168.0.2 iria verificar na outra tabela e me mostrar se numa estiver e na outra nao ele me daria o status dele (X) para usado e (V) para livre...
se tiver em uma e nao tiver na outra ele me da como vago
e se tiver em uma e na outra ele me da como usado
so que respeitando a ordem crecente 2, 6, 10, 14, 18 etc
n sei explicar bem nao
mais a idea e essa
obrigado

#6
Posted 12/11/2009, 12:29
cara se entendi o que vc quer é mais ou menos isso
<?php /** * @author Squall * @copyright 2009 */ $sql =mysql_query("SELECT ip FROM tabela") or die (mysql_error()); while($linha = mysql_fetch_assoc($sql)) { $vetor[] = $linha['ip']; } $ip_base = "192.168.1."; for($x = 1; $x <= 254; $x++) { if(array_search($ip_base. $x,$vetor)) { echo $ip_base . $x . " = Ocupado"; } else { echo $ip_base . $x . " = Livre"; } } ?>
Edição feita por: Squall Robert, 12/11/2009, 12:38.
<?php $squall = new Squall(); $squall->Ajudando("você"); $resultado = $squall->solucao(); ?>
#7
Posted 13/11/2009, 07:52
Oopa estamos quase la!
e isso ai mesmo
so preciso de uma alteração....
onde ele gera o for queria adiconar esse codigo ($x = 2; $x < 255; $x = $x+4) para gerar os ips de 4 em 4 para verificação
voce e D+
estou muito grato pela sua ajuda!
e isso ai mesmo
so preciso de uma alteração....
onde ele gera o for queria adiconar esse codigo ($x = 2; $x < 255; $x = $x+4) para gerar os ips de 4 em 4 para verificação
<?php /** * @author Squall * @copyright 2009 */ include("conexao.php"); $classe = "10.7.7."; //$sql =mysql_query("SELECT ip FROM log") or die (mysql_error()); /* alteirei a linha de baixo para me mostrar a classe de ips que quero buscar no banco de dados */ $sql =mysql_query("SELECT * FROM log WHERE ip REGEXP '" . $classe . "' GROUP BY ip ORDER BY (ip) ASC") or die (mysql_error()); while($linha = mysql_fetch_assoc($sql)) { $vetor[] = $linha['ip']; } $ip_base = $classe; /*gostaria de inserir este comando para que ele procure de 4 em 4 */ //($x = 2; $x < 255; $x = $x+4) for($x = 1; $x <= 255; $x++) { if(array_search($ip_base. $x,$vetor)) { echo $ip_base . $x . " = Ocupado<br>"; } else { echo $ip_base . $x . " = Livre<br>"; } } ?>
voce e D+
estou muito grato pela sua ajuda!
Edição feita por: cleimar, 13/11/2009, 07:53.
#8
Posted 13/11/2009, 08:21
e ai man
seguinte isso deve resolver
seguinte isso deve resolver
<?php /** * @author Squall * @copyright 2009 */ include("conexao.php"); $classe = "10.7.7."; //$sql =mysql_query("SELECT ip FROM log") or die (mysql_error()); /* alteirei a linha de baixo para me mostrar a classe de ips que quero buscar no banco de dados */ $sql =mysql_query("SELECT * FROM log WHERE ip REGEXP '" . $classe . "' GROUP BY ip ORDER BY (ip) ASC") or die (mysql_error()); while($linha = mysql_fetch_assoc($sql)) { $vetor[] = $linha['ip']; } $ip_base = $classe; /*gostaria de inserir este comando para que ele procure de 4 em 4 */ //($x = 2; $x < 255; $x = $x+4) $y = 1; $res = ""; for($x = 1; $x <= 255; $x++) { if(array_search($ip_base. $x,$vetor)) { $res .= $ip_base . $x . " = Ocupado<br>"; //echo $ip_base . $x . " = Ocupado<br>"; } else { $res .= $ip_base . $x . " = Livre<br>"; //echo $ip_base . $x . " = Livre<br>"; } if($y == 4) { echo $res; $y = 1; $res = ""; } $y++; } ?>
<?php $squall = new Squall(); $squall->Ajudando("você"); $resultado = $squall->solucao(); ?>
#9
Posted 13/11/2009, 10:09
Ola Squall Robert,
tamo qasela
ele gera o seguinte
10.7.7.1 = Livre
10.7.7.2 = Ocupado
10.7.7.3 = Livre
10.7.7.4 = Livre
10.7.7.5 = Livre
10.7.7.6 = Livre
10.7.7.7 = Livre
10.7.7.8 = Livre
10.7.7.9 = Livre
no caso ele teria que gerar assim
10.7.7.2Ocupado
10.7.7.6 = Livre
10.7.7.10 = Ocupado
10.7.7.14 = Livre
10.7.7.18 = Livre
10.7.7.22 = Livre
10.7.7.26 = Ocupado
10.7.7.30 = Livre
10.7.7.34 = Livre
10.7.7.38 = Ocupado
so falta ficar assim e fica prontinho
cara nem sei como te agradecer
valeu mesmo!!!
tamo qasela

ele gera o seguinte
10.7.7.1 = Livre
10.7.7.2 = Ocupado
10.7.7.3 = Livre
10.7.7.4 = Livre
10.7.7.5 = Livre
10.7.7.6 = Livre
10.7.7.7 = Livre
10.7.7.8 = Livre
10.7.7.9 = Livre
no caso ele teria que gerar assim
10.7.7.2Ocupado
10.7.7.6 = Livre
10.7.7.10 = Ocupado
10.7.7.14 = Livre
10.7.7.18 = Livre
10.7.7.22 = Livre
10.7.7.26 = Ocupado
10.7.7.30 = Livre
10.7.7.34 = Livre
10.7.7.38 = Ocupado
so falta ficar assim e fica prontinho

cara nem sei como te agradecer

valeu mesmo!!!
#10
Posted 13/11/2009, 11:36
vc quer que pule de 4 em 4 ?
vc não quer mostrar os 4 e sim a cada 4?
ai é so mudar $x+4
que vai funfar
vc não quer mostrar os 4 e sim a cada 4?
ai é so mudar $x+4
que vai funfar
<?php $squall = new Squall(); $squall->Ajudando("você"); $resultado = $squall->solucao(); ?>
#12
Posted 13/11/2009, 16:38
Boa tarde pessoal gostaria muito de agradecer o Squall Robert e o Dudu pelas suas colaboraçoes!
que deus abençoe as mentes brilhantes que voces tem e que continuem assim ajudando o proximo
muito obrigado mesmo
Fiquem com Deus e qualquer coisa estarei ai para ajudar sou leigo mais um dia fico bom
forte abraço aos colaboradores!
que deus abençoe as mentes brilhantes que voces tem e que continuem assim ajudando o proximo
muito obrigado mesmo

Fiquem com Deus e qualquer coisa estarei ai para ajudar sou leigo mais um dia fico bom
forte abraço aos colaboradores!
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)