Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

junaooaks

redundancia no resultado

Recommended Posts

galera to tendo uma redundancia no resultado de uma consulta

 

lista de ip esta me gerando assim

192.168.0.1

192.168.0.1

192.168.0.1

192.168.0.2

192.168.0.2

192............

 

era pra gera assim:

192.168.0.1

192.168.0.2

192.168.0.3

192...........

 

codigo:

<?php

//selecionar dados na tabela relacionamento
$sql = "SELECT * FROM relacionamento, ip WHERE ip.ips != relacionamento.ip";
$sql = mysql_query($sql) or die (mysql_error());

//resultado na tela
while ($row = mysql_fetch_array($sql)){
$ips= $row   ['ip'];
$macs = $row   ['mac'];
$ip= $row   ['ips'];
$mac = $row   ['macs'];
$status = $row ['statu'];

echo "
  <tr> 
	<td bgcolor='#FFFFFF'>
<div align='center'><font size='2' face='Verdana, Arial, Helvetica, sans-serif'>$ip<font color='#FFFFFF'></font></font></div></td>
	<td bgcolor='#FFFFFF'>
<div align='center'><font size='2' face='Verdana, Arial, Helvetica, sans-serif'>$mac<font color='#FFFFFF'></font></font></div></td>
	<td bgcolor='#FFFFFF'>
<div align='center'><font size='2' face='Verdana, Arial, Helvetica, sans-serif'>$status<font color='#FFFFFF'></font></font></div></td>
  </tr>"
;}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

o BETWEEN serve para indicar um determinado intervalo de valores dentro de uma query

nao e isto que estou querendo

 

o que eu pedi foi pra que mostre os valores qua nao sao iquais, diferentes de relacionamento.ip

 

os valores que eu tiver em na tabela ip.ips eu quero que mostre so mente os que nao tenha na tabela relacionamento.ip

Compartilhar este post


Link para o post
Compartilhar em outros sites

editei o codigo

 

agora esta me mostrando certo, mas os valores nao estao fazendo comparaçao com o IF

 

<?
//puxar a pagina de coneção para dentro deste script
include "conexao_mysql.php";

//selecionar dados na tabela relacionamento
$sql = "SELECT * FROM relacionamento";
$sql = mysql_query($sql) or die (mysql_error());

//selecionar dados na tabela ip
$my = "SELECT * FROM ip ";
$my = mysql_query($my) or die (mysql_error());


//resultado na tela
while ($row = mysql_fetch_array($my))
{
	$ips= $row   ['ips'];
	$mac = $row   ['macs'];
	$status = $row ['statu'];
	
	$row = mysql_fetch_array($sql);

	$ip= $row   ['ip'];
	$macs = $row   ['mac'];



//FAZER COMPARAÇAO DO IPS DISPONIVEL E USADOS
if ($ips <> $ip){
echo "
  <tr> 
	<td bgcolor='#FFFFFF'>
<div align='center'><font size='2' face='Verdana, Arial, Helvetica, sans-serif'>$ips<font color='#FFFFFF'></font></font></div></td>
	<td bgcolor='#FFFFFF'>
<div align='center'><font size='2' face='Verdana, Arial, Helvetica, sans-serif'>$mac<font color='#FFFFFF'></font></font></div></td>
	<td bgcolor='#FFFFFF'>
<div align='center'><font size='2' face='Verdana, Arial, Helvetica, sans-serif'>$status<font color='#FFFFFF'></font></font></div></td>
  </tr>"
;}}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que eu to precisando e nao to conseguindo fazer e o seguinte

 

tenho duas tabelas uma chamada relacionamento e a outra ip

 

todas duas tem um campo que quardas os ips

 

eu preciso fazer uma consulta que me retorna todos os ips cadastrado na tabela de ip mas fazendo comparaçao com a tabela relacionamento

 

se tiver o mesmo ip na tabela de relacionamento eu nao quero que ele aparece na tabela

 

tipo assim

 

if ($ip.ips != $relacionamento.ip){

echo "aparece todos os ips cadastrado na tabela ip";

 

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

a estrutura do codigo esta assim

<?
//selecionar dados na tabela relacionamento
$sql = "SELECT * FROM relacionamento";
$sql = mysql_query($sql) or die (mysql_error());

//selecionar dados na tabela ip
$my = "SELECT * FROM ip ";
$my = mysql_query($my) or die (mysql_error());

//resultado na tela

//selecionar dados na tabela ip
//$sql = "SELECT * FROM ip ";
//$sql = mysql_query($sql) or die (mysql_error());

//resultado na tela
while ($row = mysql_fetch_array($my))
{
	$ips= $row   ['ips'];
	$mac = $row   ['macs'];
	$status = $row ['statu'];
	
	$row = mysql_fetch_array($sql);

	$ip= $row   ['ip'];
	$macs = $row   ['mac'];
//$statu = $row ['statu'];
echo $ip;

//FAZER COMPARAÇAO DO IPS DISPONIVEL E USADOS
if ($ips <> $ip){
echo "
  <tr> 
	<td bgcolor='#FFFFFF'>
<div align='center'><font size='2' face='Verdana, Arial, Helvetica, sans-serif'>$ips<font color='#FFFFFF'></font></font></div></td>
	<td bgcolor='#FFFFFF'>
<div align='center'><font size='2' face='Verdana, Arial, Helvetica, sans-serif'>$mac<font color='#FFFFFF'></font></font></div></td>
	<td bgcolor='#FFFFFF'>
<div align='center'><font size='2' face='Verdana, Arial, Helvetica, sans-serif'>$status<font color='#FFFFFF'></font></font></div></td>
  </tr>"
;}
?>

estrutura da tabela ip

id_ip

ip

mac

status

 

estrutura da tabela relacionamento

id_relacionamento

id_cliente

ip

status

mac

kb

obs

Compartilhar este post


Link para o post
Compartilhar em outros sites

CREATE TABLE `relacionamento` (

`id` int(20) NOT NULL auto_increment,

`id_cliente` varchar(100) NOT NULL default '',

`ip` varchar(20) NOT NULL default '',

`status` varchar(30) NOT NULL default '',

`kb` int(10) NOT NULL default '0',

`mac` varchar(20) NOT NULL default '',

`mac2` varchar(20) NOT NULL default '',

`plano` varchar(30) NOT NULL default '',

`obs` text NOT NULL,

PRIMARY KEY (`id`,`id_cliente`)

) TYPE=MyISAM AUTO_INCREMENT=110 ;

 

INSERT INTO `relacionamento` VALUES (108, '1043', '10.0.0.34', '1', 1, '00:11:22:33:44:55', '', 'RESIDENCIAL_ME', 'TESTE');

INSERT INTO `relacionamento` VALUES (109, '15', '10.0.0.25', '1', 1, '00:00:00:33:22:11', '', 'RESIDENCIAL_ME', '');

INSERT INTO `relacionamento` VALUES (107, '1045', '10.0.0.30', '1', 3, 'CC:CC:CC:CC:CC:CC', 'AA:AA:AA:AA:AA:A1', 'RESIDENCIAL_ME', 'REALIZAR');

 

 

CREATE TABLE `ip` (

`id` int(17) NOT NULL auto_increment,

`ips` varchar(20) NOT NULL default '',

`macs` varchar(20) NOT NULL default '',

`statu` int(3) NOT NULL default '0',

PRIMARY KEY (`id`)

) TYPE=MyISAM AUTO_INCREMENT=1022 ;

 

INSERT INTO `ip` VALUES (767, '10.0.0.1', '00:00:00:00:00:00', 0);

INSERT INTO `ip` VALUES (768, '10.0.0.2', '00:00:00:00:00:00', 0);

INSERT INTO `ip` VALUES (769, '10.0.0.3', '00:00:00:00:00:00', 0);

INSERT INTO `ip` VALUES (770, '10.0.0.4', '00:00:00:00:00:00', 0);

INSERT INTO `ip` VALUES (771, '10.0.0.5', '00:00:00:00:00:00', 0);

INSERT INTO `ip` VALUES (772, '10.0.0.6', '00:00:00:00:00:00', 0);

INSERT INTO `ip` VALUES (773, '10.0.0.7', '00:00:00:00:00:00', 0);

INSERT INTO `ip` VALUES (774, '10.0.0.8', '00:00:00:00:00:00', 0);

INSERT INTO `ip` VALUES (775, '10.0.0.9', '00:00:00:00:00:00', 0);

INSERT INTO `ip` VALUES (776, '10.0.0.10', '00:00:00:00:00:00', 0);

INSERT INTO `ip` VALUES (777, '10.0.0.11', '00:00:00:00:00:00', 0);

INSERT INTO `ip` VALUES (778, '10.0.0.12', '00:00:00:00:00:00', 0);

INSERT INTO `ip` VALUES (779, '10.0.0.13', '00:00:00:00:00:00', 0);

INSERT INTO `ip` VALUES (780, '10.0.0.14', '00:00:00:00:00:00', 0);

INSERT INTO `ip` VALUES (781, '10.0.0.15', '00:00:00:00:00:00', 0);

INSERT INTO `ip` VALUES (782, '10.0.0.16', '00:00:00:00:00:00', 0);

INSERT INTO `ip` VALUES (783, '10.0.0.17', '00:00:00:00:00:00', 0);

INSERT INTO `ip` VALUES (784, '10.0.0.18', '00:00:00:00:00:00', 0);

INSERT INTO `ip` VALUES (785, '10.0.0.19', '00:00:00:00:00:00', 0);

INSERT INTO `ip` VALUES (786, '10.0.0.20', '00:00:00:00:00:00', 0);

INSERT INTO `ip` VALUES (787, '10.0.0.21', '00:00:00:00:00:00', 0);

INSERT INTO `ip` VALUES (788, '10.0.0.22', '00:00:00:00:00:00', 0);

INSERT INTO `ip` VALUES (789, '10.0.0.23', '00:00:00:00:00:00', 0);

INSERT INTO `ip` VALUES (790, '10.0.0.24', '00:00:00:00:00:00', 0);

INSERT INTO `ip` VALUES (791, '10.0.0.25', '00:00:00:00:00:00', 0);

INSERT INTO `ip` VALUES (792, '10.0.0.26', '00:00:00:00:00:00', 0);

INSERT INTO `ip` VALUES (793, '10.0.0.27', '00:00:00:00:00:00', 0);

INSERT INTO `ip` VALUES (794, '10.0.0.28', '00:00:00:00:00:00', 0);

INSERT INTO `ip` VALUES (795, '10.0.0.29', '00:00:00:00:00:00', 0);

INSERT INTO `ip` VALUES (796, '10.0.0.30', '00:00:00:00:00:00', 0);

INSERT INTO `ip` VALUES (797, '10.0.0.31', '00:00:00:00:00:00', 0);

INSERT INTO `ip` VALUES (798, '10.0.0.32', '00:00:00:00:00:00', 0);

INSERT INTO `ip` VALUES (799, '10.0.0.33', '00:00:00:00:00:00', 0);

INSERT INTO `ip` VALUES (800, '10.0.0.34', '00:00:00:00:00:00', 0);

INSERT INTO `ip` VALUES (801, '10.0.0.35', '00:00:00:00:00:00', 0);

INSERT INTO `ip` VALUES (802, '10.0.0.36', '00:00:00:00:00:00', 0);

INSERT INTO `ip` VALUES (803, '10.0.0.37', '00:00:00:00:00:00', 0);

INSERT INTO `ip` VALUES (804, '10.0.0.38', '00:00:00:00:00:00', 0);

INSERT INTO `ip` VALUES (805, '10.0.0.39', '00:00:00:00:00:00', 0);

INSERT INTO `ip` VALUES (806, '10.0.0.40', '00:00:00:00:00:00', 0);

INSERT INTO `ip` VALUES (807, '10.0.0.41', '00:00:00:00:00:00', 0);

INSERT INTO `ip` VALUES (808, '10.0.0.42', '00:00:00:00:00:00', 0);

INSERT INTO `ip` VALUES (809, '10.0.0.43', '00:00:00:00:00:00', 0);

INSERT INTO `ip` VALUES (810, '10.0.0.44', '00:00:00:00:00:00', 0);

Compartilhar este post


Link para o post
Compartilhar em outros sites

execute isso e veja como funciona

 

SELECT ip.ips as ip

FROM relacionamento, ip

WHERE ip.ips

not in(select relacionamento.ip from relacionamento)

exibirá todos os ips da tabela ip exceto os ips que estao na tabela relacionamento.

 

nesse caso,

 

.25

.30

.34

Compartilhar este post


Link para o post
Compartilhar em outros sites

esta dando este erro:

Você tem um erro de sintaxe no seu SQL próximo a 'SELECT relacionamento.ip FROM relacionamento )' na linha 2

 

$sql = "SELECT * FROM relacionamento, ip WHERE ip.ips

NOT IN(SELECT relacionamento.ip FROM relacionamento )";

$sql = mysql_query($sql) or die (mysql_error());

 

//resultado na tela

while ($row = mysql_fetch_array($sql))

{

$ips = $row ['ips'];

$mac = $row ['macs'];

$status = $row ['statu'];

Compartilhar este post


Link para o post
Compartilhar em outros sites

Junaooaks,

tenta assim no SQL

 

SELECT * FROM IP WHERE IPS NOT IN (SELECT IP FROM nomedobanco.relacionamento)

Compartilhar este post


Link para o post
Compartilhar em outros sites

o distinct

"SELECT DISTINCT ip.ips , ip.macs, ip.statu, relacionamento.ip FROM ip,relacionamento)";

nao resolveu

 

 

SELECT * FROM IP WHERE IPS NOT IN (SELECT IP FROM relacionamento)

tambem nao resolveu

erro:Você tem um erro de sintaxe no seu SQL próximo a 'SELECT IP FROM relacionamento)' na linha 1

 

ja tentei assim tambem

SELECT * FROM ip, relacionamento WHERE ip.ips <> relacionamento.ip

fica reduntante

 

tipo assim:

 

192.168.0.1

192.168.0.1

192.168.0.1

192.168.0.2

192.168.0.2

192.168.0.2

192.168.0.3

192.168.0.3

192.168.0.3

................ //quando chega ao ip que esta cadastrado nos dois que e o caso do 192.168.0.34 / 192.168.0.30 / 192.168.0.25

os ips so repete duas vezes

192.168.0.25

192.168.0.25

.................

192.168.0.30

192.168.0.30

...............

192.168.0.34

192.168.0.34

 

 

eu to muito perdido http://forum.imasters.com.br/public/style_emoticons/default/blush.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

você não fez como mostrei acima..

 

quando faz relacionamente co duas tabelas, sempre que se refererir a um campo em específico deve especificar a tabela a qual pertence. no seu caso:

 

SELECT ip.* FROM relacionamento, ip WHERE ip.ips NOT IN(SELECT relacionamento.ip FROM relacionamento)

Compartilhar este post


Link para o post
Compartilhar em outros sites

$sql = "SELECT ip.* FROM relacionamento, ip WHERE ip.ips NOT IN(SELECT relacionamento.ip FROM relacionamento)";
$sql = mysql_query($sql) or die (mysql_error());

ao executar aparece a frase: Você tem um erro de sintaxe no seu SQL próximo a 'SELECT relacionamento.ip FROM relacionamento)' na linha 1

 

:wacko:

Compartilhar este post


Link para o post
Compartilhar em outros sites

me falaram um EXCEPT no mysql como usa procurei no google e nao encontrei

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.