Ir para conteúdo

POWERED BY:

Arquivado

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

cafdesigner

Problamas No Sitema Q To Fazendu

Recommended Posts

Ola pessoal tudo bom?

 

Bom seguinte to fazendu um sistema de cadastros divididos em categorias!

Bom meu problema é q nao consigo fazer o sistema exibir somente os cadastros da categoria selecionada, ou seja tenho la 2 categorias, Arquiterura e WebHost, beleza ai quando clico em Arquitetura ele exibe os dados da arquitetura mais tbm mostra os do webhost!

 

Vo posta os codigos ai:

 

guaira.php (mostra as categorias)

PHP [/tr][tr]

<?

include "sistema/config.php";

 

$sql = mysql_query("SELECT * FROM $categorias ORDER BY id");

while ($row = mysql_fetch_array($sql))

{

$categoria = $row['categoria'];

$id = $row['id'];

echo "

<a href=ver_guaira.php?categoria=$id>$categoria</a><br>"

;

}

?>

[/tr]

 

ver_guaira.php (mostra os cadastros da categoria escolhida na pagina acima)

PHP [/tr][tr]

<?

$id = $_GET['categoria'];

 

include "sistema/config.php";

 

$sql = mysql_query("SELECT * FROM $cadastros");

$lpp = 3; // Especifique quantos resultados você quer por página

$total = mysql_num_rows($sql); // Esta função irá retornar o total de linhas na tabela

$paginas = ceil($total / $lpp); // Retorna o total de páginas

if(!isset($pagina)) { $pagina = 0; } // Especifica uma valor para variavel pagina caso a mesma não esteja setada

$inicio = $pagina * $lpp; // Retorna qual será a primeira linha a ser mostrada no MySQL

$sql = mysql_query("SELECT * FROM $cadastros WHERE id='$categoria' LIMIT $inicio,$lpp"); // Executa a query no MySQL com o limite de linhas.

 

while ($row = mysql_fetch_array($sql))

{

$empresa = $row['empresa'];

$endereco = $row['endereco'];

$fone = $row['fone'];

$email = $row['email'];

$site = $row['site'];

$descricao = $row['descricao'];

$logo = $row['logo'];

 

echo "

<table width=450 border=0 cellspacing=0 cellpadding=0>

<tr>

<th width=178 rowspan=5 scope=col><img src=$logo width=100 height=100></th>

<th width=68 class=texto_medio2 align=left>Empresa:</th>

<th width=224 class=texto_medio align=left>$empresa</th>

</tr>

<tr>

<td class=texto_medio2>Endereço:</td>

<td class=texto_medio>$endereco</td>

</tr>

<tr>

<td class=texto_medio2>Telefone:</td>

<td class=texto_medio>$fone</td>

</tr>

<tr>

<td class=texto_medio2>Email:</td>

<td class=texto_medio><a href=mailto:$email>$email</td>

</tr>

<tr>

<td class=texto_medio2>Site:</td>

<td class=texto_medio><a href=http://$site target=_blank>$site</a></td>

</tr>

<tr>

<td colspan=3 class=texto_medio2>Descrição: <span class=texto_medio>$descricao</span></td>

</tr>

</table>

<br>

<br>

"

;

}

?>

PAGINACAO:

<?php // Agora o mais importante, gera os links....

 

if ($pagina > 0) {

$menos = $pagina - 1;

$url = "$PHP_SELF?pagina=$menos";

print "<a href=\"$url\"><span class=texto_pequeno2><< Anterior</span></a>";

} else {

print "<span class=texto_pequeno2><< Anterior</span>";

}

 

for($i = 0; $i < $paginas; $i++) {

$linksp = $i + 1;

if ($pagina == $i) {

print " <span class=texto_pequeno2>| <b>$linksp</b></span>";

} else {

$url = "$PHP_SELF?pagina=$i";

print " | <a href=\"$url\">$linksp</a>";

}

}

 

if($pagina < ($paginas - 1)) {

$mais = $pagina + 1;

$url = "$PHP_SELF?pagina=$mais";

print " | <a href=\"$url\"><span class=texto_pequeno2>Próxima >></span></a>";

} else {

print " <span class=texto_pequeno2>| Próxima >></span>";

}

?>

[/tr]

 

A pagina ver_guaira.php esta com um codigo de paginacao! Como você's podem ver!

Eu consegui fazer exibir + ou - os dados referente a categoria escolhida so q ele so mostra um cadastro sendo q tem 3 cadastros!

Consegui fazer mostrar 1 pelo menos usando isso: WHERE id='$categoria' la nesta linha:

$sql = mysql_query("SELECT * FROM $cadastros WHERE id='$categoria' LIMIT $inicio,$lpp"); // Executa a query no MySQL com o limite de linhas.

 

Alguem sabe como faço pra resolver isso? vlw!

Compartilhar este post


Link para o post
Compartilhar em outros sites

você já tentou passar o id da categoria no link de paginação?ficaria ?pagina=$menos&idcat=$idacho que seria issoqualquer coisa manda ae.

Compartilhar este post


Link para o post
Compartilhar em outros sites

$sql = mysql_query("SELECT * FROM $cadastros WHERE id='$categoria' LIMIT $inicio,$lpp"); // Executa a query no MySQL

acho que essa linha deveria ser assim, pois voce pega no get a categoria e coloca na variavel id

 

$sql = mysql_query("SELECT * FROM $cadastros WHERE id='$id' LIMIT $inicio,$lpp"); // Executa a query no MySQL

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tipo o problema é na hora q eu clico na categoria, ele abre a pagina e mostra todos os cadastros de todas as categorias, ao invez de mostrar somente os da categoria q eu cliquei!

Entao quando adicionei isso: WHERE id='$categoria' nesta linha:

$sql = mysql_query("SELECT * FROM $cadastros WHERE id='$categoria' LIMIT $inicio,$lpp"); // Executa a query no MySQL com o limite de linhas.

 

Ele mosttrou dai os dados referente akela categoria q eu cliquei, porem so mostrou um resultado sendo q no banco de dados tem 5, e tbm a paginacao nao funcionou mais!

 

O q devo fazer? qual seria o codigo correto?

Ja vim de outro forum q nao pode me ajudar, espero q você´s possam, conto com você´s vlw!

 

você's podem ver o sistema por aki:

http://www.guiadocomercio.net/guia_guaira.php

 

ai você vera q quando você clica em Arquiterura ele mostra o do Host File tbm q é da categoria Web Host!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que vi você está pegando os resultados do DB pelo nome da categoria.Pra ficar mais fácil e rápido coloque um campo id_cat no banco de dados assimid_cat int(11) not null primary key auto_incremente pega a categoria pelo id dela e não pelo nome.Lembre de manter o id_cat no link de paginação.Verifique seu banco de dados para ver se está indo tudo ok nos registros (por exemplo na hora de incluir um nova categoria.No site que você passou eu verifiquei que está vindo correto pelo menos na área de "Colégios e Cursos" coloque mais registros pra ver melhor a lógica.faloa ae

Compartilhar este post


Link para o post
Compartilhar em outros sites

PHP [/tr][tr]

PAGINACAO:

<?php // Agora o mais importante, gera os links....

 

if ($pagina > 0) {

$menos = $pagina - 1;

$url = "$PHP_SELF?pagina=$menos&idcat=$categoria";

print "<a href=\"$url\"><span class=texto_pequeno2><< Anterior</span></a>";

} else {

print "<span class=texto_pequeno2><< Anterior</span>";

}

 

for($i = 0; $i < $paginas; $i++) {

$linksp = $i + 1;

if ($pagina == $i) {

print " <span class=texto_pequeno2>| <b>$linksp</b></span>";

} else {

$url = "$PHP_SELF?pagina=$i&idcat=$categoria";

print " | <a href=\"$url\">$linksp</a>";

}

}

 

if($pagina < ($paginas - 1)) {

$mais = $pagina + 1;

$url = "$PHP_SELF?pagina=$mais&idcat=$categoria";

print " | <a href=\"$url\"><span class=texto_pequeno2>Próxima >></span></a>";

} else {

print " <span class=texto_pequeno2>| Próxima >></span>";

}

?>

[/tr]

 

verifica isso aqui

 

Onde mudei

$url = "$PHP_SELF?pagina=$menos&idcat=$categoria";$url = "$PHP_SELF?pagina=$i&idcat=$categoria";$url = "$PHP_SELF?pagina=$mais&idcat=$categoria";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Troque

 

PHP [/tr][tr]

$sql = mysql_query("SELECT * FROM $cadastros");

$lpp = 3; // Especifique quantos resultados você quer por página

$total = mysql_num_rows($sql); // Esta função irá retornar o total de linhas na tabela

$paginas = ceil($total / $lpp); // Retorna o total de páginas

if(!isset($pagina)) { $pagina = 0; } // Especifica uma valor para variavel pagina caso a mesma não esteja setada

$inicio = $pagina * $lpp; // Retorna qual será a primeira linha a ser mostrada no MySQL

$sql = mysql_query("SELECT * FROM $cadastros WHERE id='$categoria' LIMIT $inicio,$lpp"); // Executa a query no MySQL com o limite de linhas.

[/tr]

 

por

 

PHP [/tr][tr]

$sql = mysql_query("SELECT * FROM $cadastros WHERE id='$categoria' ");

$lpp = 3; // Especifique quantos resultados você quer por página

$total = mysql_num_rows($sql); // Esta função irá retornar o total de linhas na tabela

$paginas = ceil($total / $lpp); // Retorna o total de páginas

if(!isset($pagina)) { $pagina = 0; } // Especifica uma valor para variavel pagina caso a mesma não esteja setada

$inicio = $pagina * $lpp; // Retorna qual será a primeira linha a ser mostrada no MySQL

$sql = mysql_query("SELECT * FROM $cadastros WHERE id='$categoria' LIMIT $inicio,$lpp"); // Executa a query no MySQL com o limite de linhas.

[/tr]

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.