Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, estou precisando fazer uma liação de dados entre duas tabelas no php ex.
tabela 1 = id - al
tabela 2 = id2 - pa
preciso que o php pegue o código id da tabela 1 depois entrar na tabela 2 e procurar o id da tabela 1 nos registros (campo id2) da tabela 2, ex:
tabela 1
registro 1 - id = 10 al = 20
registro 2 - id = 15 al = 25
tabela 2
registro 1 - id2 = 15 pa = ab
registro 2 - id2 = 10 pa = cd
No exemplo o php deveria exibir em tela assim (pa registro2)cd/(id-registro1)10-(al registro 1)20
fica assim:
cd/10-20
como faço isso?
olá gui0, oq esse código faz exatamente? não entendi o "s.*, p". Acontece é que são vários registros no banco de dados e n dá pra definir qual será o id que ele tem q pegar na tabela 1 (são vários e ele tem que pegar de todos os registros)
O INNER JOIN é responsável para relacionar as tabelas.
Por exemplo, suponhamos que a tabela de transação tenha apenas o id do produto vendido e o id do cliente que comprou.
Ai eu quero que apartir do id do produto e o id do usuário exiba as Info do usuário e do produto.
Segue um exemplo que relaciona a tabela transação com a tabela de produtos e de usuários.
SELECT p.*, c.nome AS categoria, u.nome AS usuario FROM produtos AS p INNER JOIN categorias AS c ON p.categoria_id = c.id INNER JOIN usuarios AS u ON p.usuario_id = u.id WHERE (p.ativo = 1) ORDER BY p.nome ASC
meu código tá assim:
<?php
$sql = "SELECT * FROM content WHERE content.`state` NOT IN (0) AND content.`id` NOT IN (8,9,20,15,16) ORDER BY created DESC";
$sql2 ="SELECT * FROM categories WHERE categories.`id`";
$query = mysql_query($sql);
$query2 = mysql_query($sql2);
while($result = mysql_fetch_array($query)) {
while ($result2 = mysql_fetch_array($query2)){
$catid = "$result2[id]=$result[catid]";
$catpath = "result2[id] $result[catid]->$result2[path]";
$art = "$result[id]"."-"."$result[alias]";
}
<?= http://www.url.com/".$catpath.'/'?>
?>
preciso que o php procure o numero do campo catid de uma tabela no campo id de outra tabela, quando ele encontrar nessa tabela vai ter um path, ele exibe o path a frente da url
Se eu entendi, faz assim:
$query = "SELECT c., t. FROM categories AS c INNER JOIN content AS t ON c.id = t.catid WHERE t.state NOT IN (0) AND t.id NOT IN (8,9,20,15,16) order by t.created` DESC";
Depois só da um while e exibir.
Se não funcionar, posta seu banco. Porque desculpa mais não consegui compreender direito o que você quer fazer.
Abç
fiz assim:
<?
$sql = "SELECT * FROM content WHERE content.`state` NOT IN (0) AND content.`id` NOT IN (8,9,20,15,16) ORDER BY created DESC";
$sql2 ="select categories.path from categories inner join content on( content.catid=categories.id)";
$query = mysql_query($sql);
$query2 = mysql_query($sql2);
while($result = mysql_fetch_array($query)) {
while($result2 = mysql_fetch_array($query2)) {
<?="http://www.url.com/".$result2.'/'?>agora o link ta saindo www.url.com/Array/
como faço?
basicamente quero unir content com categories pelo catid e id e salvar o path da categories
Utilize INNER JOIN:
Exemplo:
SELECT s.*, p.
nomeAS nome FROMtabela1AS p INNER JOINtabela2AS p ON p.id2= s.idWHERE (p.ativo= 1) ORDER BY p.idASC