Ir para conteúdo

POWERED BY:

Arquivado

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

Owner

[Resolvido] Busca relacionada PHP+Mysql

Recommended Posts

Olá galera, estou com o seguinte problema:

 

Tenha a tabela wallpapers onde tem (id, nome, categoria, end_imagem). Consego exibir por categorias sem problemas só que gostaria de quando selecionar um wallpaper para visualizar (ex.: Série 24 Horas) mostre do lado 'x' wallpapers da Série 24 Horas só que diferentes do wallpaper maior, que é o principal; Caso tenha somente 1 wallpaper da Série 24 Horas mostra "x" wallpapaers da mesma categoria.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Da pra explicar melhor.. não entendi direito oque se deve fazer com os wallpapers

Tenha uma tabela wallpapers com as informações id, nome, categoria.

Quando clicar em determinado wallpaper gostaria que do lado dele mostrasse outros wallpapers com o mesmo nome que o principal sem que ele apareça novamente. Caso não tenha outros wallpapers com o mesmo nome então será mostrado outros da mesma categoria. Se não entendeu me avise que dou print e envio para ficar melhor o exemplo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho que seria melhor você criar uma tabela de categorias ... ae deixar a "id_categoria" como como chave estrangeira na tabela dos wallpapers ... pq se nao na hora de seleciona talvez você digite uma coisinha diferente e ele nao pega todos.. sendo a id um numero fica mais facil...

 

quanto a pegar o numero tolta de registros da pra faze um select normal (*SQL) ... usando WHERE .. dai no caso ficaria "select * from wallpapers WHERE id_categoria = $categoria" .. dai so da um nun_rows e vai te traze o numero...

 

valww espero ter ajudado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seguinte.. ve se entendi..

 

na tabela havera diversas imagens da seria 24 horas por exemplo... toras com o nome 24 HORAS ou variaçoes (24 HORAS_1; 24HORAS_2 ; ETC)

 

se for este o caso.. quando voce clicar em um wallpapers da serie 24 horas, da um SELECT * FROM wallpapers WHERE NOME LIKE '%24HORAS%' por exemplo. assim tu vai pegar na tabele todos os nomes que tenham 24HORAS. Dai você pode mostrar com o mysql_num_rows.

 

EX.

$resultado = mysql_query("SELECT * FROM wallpapers WHERE NOME LIKE '%24HORAS%''");

$linhas = mysql_num_rows($resultado);

for ($i=0 ; $i<$linhas ; $i++)

{

$imagem= mysql_result ($resultado,$i,"imagem");

echo $imagem;

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

No caso eu já pego os valores do wallpaper principal pelo id usando método GET:

 

$colname_exibe_wallpaper = "-1";
if (isset($_GET['id'])) {
  $colname_exibe_wallpaper = $_GET['id'];
}
mysql_select_db($database_conec_tudoparaiphone, $conec_tudoparaiphone);
$query_exibe_wallpaper = sprintf("SELECT * FROM wallpapers WHERE id = %s", GetSQLValueString($colname_exibe_wallpaper, "int"));
$exibe_wallpaper = mysql_query($query_exibe_wallpaper, $conec_tudoparaiphone) or die(mysql_error());
$row_exibe_wallpaper = mysql_fetch_assoc($exibe_wallpaper);
$totalRows_exibe_wallpaper = mysql_num_rows($exibe_wallpaper);

Então preciso que a busca abaixo pegue os valores desse id para mostrar wallpapers relacionados com o resultado principal

 

$colname_exibe_wallpaper_relacionado = "-1";
if (isset($_GET['id'])) {
  $colname_exibe_wallpaper_relacionado = $_GET['id'];
}
mysql_select_db($database_conec_tudoparaiphone, $conec_tudoparaiphone);
$query_exibe_wallpaper_relacionado = sprintf("SELECT * FROM wallpapers WHERE nome = %s", GetSQLValueString($colname_exibe_wallpaper_relacionado, "text"));
$query_limit_exibe_wallpaper_relacionado = sprintf("%s LIMIT %d, %d", $query_exibe_wallpaper_relacionado, $startRow_exibe_wallpaper_relacionado, $maxRows_exibe_wallpaper_relacionado);
$exibe_wallpaper_relacionado = mysql_query($query_limit_exibe_wallpaper_relacionado, $conec_tudoparaiphone) or die(mysql_error());
$row_exibe_wallpaper_relacionado = mysql_fetch_assoc($exibe_wallpaper_relacionado);

Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom faça o seguinte:

<?php

$sql = mysql_query ("SELECT * FROM wallpapers WHERE categoria = '24 Horas'");
$rows = mysql_num_rows ($sql);

echo 'Existem '.$rows'. categorias sobre 24 Horas';

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ah sim, mais é só alterar a query... mudando de categoria para nome.

 

<?php

$sql = mysql_query ("SELECT * FROM wallpapers WHERE categoria = 'nome_da_categoria' AND nome = '24 Horas'");
$rows = mysql_num_rows ($sql);

echo 'Existem '.$rows'. categorias sobre 24 Horas';

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui pegar os da mesma categoria e excluir dos resultados o wallpaper principal, só que não consigo recuperar o valor "nome"

 

$colname_exibe_wallpaper_relacionado = "-1";
if (isset($_GET['id'])) {
  $colname_exibe_wallpaper_relacionado = $_GET['id'];
}
/*$query_exibe_wallpaper_relacionado = sprintf("SELECT * FROM wallpaper WHERE id =".$_GET['id'], "NOT LIKE id=1");
*/
mysql_select_db($database_conect_iphone, $conect_iphone);
$query_exibe_wallpaper_relacionado = sprintf("SELECT * FROM wallpaper WHERE nome = 'AQUI NOME WALLPAPER' AND id NOT LIKE ".$_GET['id']);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom use um <select> para a pessoa selecionar a categoria, depois disso use $_POST ou $_GET para pegar o seu valor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom use um <select> para a pessoa selecionar a categoria, depois disso use $_POST ou $_GET para pegar o seu valor.

Aqui está o exemplo http://tudoparaiphone.com/visualiza_wallpaper.php?id=2

No caso eu defini no código que o nome do wallpaper é Gisele Bundchen, então quando clico no dela que é id=2 mostra outras categorias pois não tem outro dela diferente do principal; Ai se vou em id=1 mostra o dela abaixo.

Por isso não seria viável o <select> pois só preciso pegar o nome de algum jeito dinâmico na consulta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema já foi resolvido, fui tentando até que achei um jeito.

No caso criei variaveis da consulta wallpaper e na consulta wallpaper relacionado coloquei o nome = variavel que pegava o nome da consulta wallpaper.

 

Obrigado a todos que me ajudaram!!!

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.