Jump to content


Photo

Visualizar Produtos E Planos Php


  • Faça o login para participar
8 replies to this topic

#1 MnMk

MnMk

    Novato no fórum

  • Usuários
  • 16 posts
  • Sexo:Feminino
  • Localidade:Curitiba

Posted 30/03/2010, 21:24

Preciso fazer uma página que relacione categorias com planos, sendo que cada categoria pode ter vários planos e preciso que eles sejam mostrados na tabela referente a sua categoria, porém cada tabela está mostrando todos os planos.

Segue a página.

<?php
require_once 'BD_conecta.php';

//pega categoria
$sql = "SELECT NomeCategoria, Descricao FROM categoria WHERE Situacao=1";
$res = mysql_query($sql) or die (mysql_error);

//categoria
while (($row = mysql_fetch_assoc($res)) != null)
{
echo "<br><br><table border='1'><tr>";
$cat = $row['NomeCategoria'];
echo $cat;
echo "<td width='150px'><b>Categoria: ".$row['NomeCategoria']."</b></td>";
echo "<td>".$row['Descricao']."</td></tr>";

//pega plano da categoria
$sql2 = "SELECT Nome, Categoria, Valor, Comissao FROM plano, categoria WHERE Categoria=NomeCategoria AND Status=1";
$res2 = mysql_query($sql2) or die (mysql_error);

//mostra planos
while (($row2 = mysql_fetch_assoc($res2)) != null)
{
echo "<td></td><td><table width='300px' border='1'><tr>";
echo "<td><strong>Plano: ".$row2['Nome']."</strong></td></tr>";
echo "<tr><td>Valor: ".$row2['Valor']."</td>";
echo "<td><input type='radio' name='radio' id='ativo' value='ativo' /> Ativo</td></tr>";
echo "<tr><td>Comissão: ".$row2['Comissao']."</td>";
echo "<td><input type='radio' name='radio' id='inativo' value='inativo' /> Inativo</td></tr>";
echo "</table></td></tr>";
}
}

echo "</table>";

?>


Qualquer ajuda é bem vinda..
XD

#2 kleryson

kleryson

    Mestre

  • Usuários
  • 687 posts
  • Sexo:Masculino

Posted 31/03/2010, 01:35

Bom não sei se é isso mais se você passar a Categoria por GET, POST ou SESSION

Você poderá recuperar e não precisará desse SQL...

//pega categoria
$sql = "SELECT NomeCategoria, Descricao FROM categoria WHERE Situacao=1";
$res = mysql_query($sql) or die (mysql_error);

O que vai interessar mesmo é o seguinte:

$categoria = $_GET['categoria'];
$sql2 = "SELECT Nome, Categoria, Valor, Comissao FROM plano, categoria WHERE Categoria=$categoria AND Status=1";
        $res2 = mysql_query($sql2) or die (mysql_error);
        
                //mostra planos
                while (($row2 = mysql_fetch_assoc($res2)) != null)
                {
                        echo "<td></td><td><table width='300px' border='1'><tr>";
                        echo "<td><strong>Plano: ".$row2['Nome']."</strong></td></tr>";
                        echo "<tr><td>Valor: ".$row2['Valor']."</td>";
                        echo "<td><input type='radio' name='radio' id='ativo' value='ativo' /> Ativo</td></tr>";
                        echo "<tr><td>Comissão: ".$row2['Comissao']."</td>";
                        echo "<td><input type='radio' name='radio' id='inativo' value='inativo' /> Inativo</td></tr>";
                        echo "</table></td></tr>";
                }


(y) ?

#3 MnMk

MnMk

    Novato no fórum

  • Usuários
  • 16 posts
  • Sexo:Feminino
  • Localidade:Curitiba

Posted 31/03/2010, 11:42

Bom não sei se é isso mais se você passar a Categoria por GET, POST ou SESSION

Você poderá recuperar e não precisará desse SQL...

//pega categoria
$sql = "SELECT NomeCategoria, Descricao FROM categoria WHERE Situacao=1";
$res = mysql_query($sql) or die (mysql_error);

O que vai interessar mesmo é o seguinte:

$categoria = $_GET['categoria'];
$sql2 = "SELECT Nome, Categoria, Valor, Comissao FROM plano, categoria WHERE Categoria=$categoria AND Status=1";
        $res2 = mysql_query($sql2) or die (mysql_error);
        
                //mostra planos
                while (($row2 = mysql_fetch_assoc($res2)) != null)
                {
                        echo "<td></td><td><table width='300px' border='1'><tr>";
                        echo "<td><strong>Plano: ".$row2['Nome']."</strong></td></tr>";
                        echo "<tr><td>Valor: ".$row2['Valor']."</td>";
                        echo "<td><input type='radio' name='radio' id='ativo' value='ativo' /> Ativo</td></tr>";
                        echo "<tr><td>Comissão: ".$row2['Comissao']."</td>";
                        echo "<td><input type='radio' name='radio' id='inativo' value='inativo' /> Inativo</td></tr>";
                        echo "</table></td></tr>";
                }


(y) ?



Bom não sei se é isso mais se você passar a Categoria por GET, POST ou SESSION

Você poderá recuperar e não precisará desse SQL...

//pega categoria
$sql = "SELECT NomeCategoria, Descricao FROM categoria WHERE Situacao=1";
$res = mysql_query($sql) or die (mysql_error);

O que vai interessar mesmo é o seguinte:

$categoria = $_GET['categoria'];
$sql2 = "SELECT Nome, Categoria, Valor, Comissao FROM plano, categoria WHERE Categoria=$categoria AND Status=1";
        $res2 = mysql_query($sql2) or die (mysql_error);
        
                //mostra planos
                while (($row2 = mysql_fetch_assoc($res2)) != null)
                {
                        echo "<td></td><td><table width='300px' border='1'><tr>";
                        echo "<td><strong>Plano: ".$row2['Nome']."</strong></td></tr>";
                        echo "<tr><td>Valor: ".$row2['Valor']."</td>";
                        echo "<td><input type='radio' name='radio' id='ativo' value='ativo' /> Ativo</td></tr>";
                        echo "<tr><td>Comissão: ".$row2['Comissao']."</td>";
                        echo "<td><input type='radio' name='radio' id='inativo' value='inativo' /> Inativo</td></tr>";
                        echo "</table></td></tr>";
                }


(y) ?




Não, não tem nada a ver com get ou post ou session, preciso apenas ter uma tabela com as categorias que mostre o nome e a descrição das categorias e dentro de cada uma dessas tabelas preciso que mostre seus respextivos planos, o problema é que todas as tabelas estão mostrando todos os planos.

#4 kleryson

kleryson

    Mestre

  • Usuários
  • 687 posts
  • Sexo:Masculino

Posted 31/03/2010, 11:54

Descupe-me pensei que ia ser em páginas diferentes...

Então vamos fazer assim...

[tabela_categoria]
id INT
categoria  VARCHAR[10]

[tabela_plano]
id INT
plano varchar[20]
id_categoria INT FOREINGKEY tabela_categoria.id

Agora vamos para o código:

$sql = "SELECT * FROM tabela_categoria";
$query = mysql_query($sql);
while ( $result = mysql_fetch_assoc($query) ){
    echo "<table>";
    echo "<tr>";
    echo "<td>".$result['categoria']."</td>";
    echo "</tr>";
    $sql = "SELECT * FROM tabela_plano WHERE id_categoria = ".$result['id'];
    $query2 = mysql_query($sql);
    while ( $rest = mysql_fetch_assoc($query2)){
       echo "<tr>";
       echo "<td>".$rest['plano']."</td>";
       echo "</tr>";
    }
    echo "</table><br/><br/>";
}

Bom então acho que é isso...

Como você não postou a estrutura das tabelas eu preferi te passar um exemplo de como seria com a estrutura de uma tabelas montadas acima...

Não tive tempo de testar por isso se apresentar algum erro posta que eu verifico...

(y)?

#5 MnMk

MnMk

    Novato no fórum

  • Usuários
  • 16 posts
  • Sexo:Feminino
  • Localidade:Curitiba

Posted 31/03/2010, 13:38

Descupe-me pensei que ia ser em páginas diferentes...

Então vamos fazer assim...

[tabela_categoria]
id INT
categoria  VARCHAR[10]

[tabela_plano]
id INT
plano varchar[20]
id_categoria INT FOREINGKEY tabela_categoria.id

Agora vamos para o código:

$sql = "SELECT * FROM tabela_categoria";
$query = mysql_query($sql);
while ( $result = mysql_fetch_assoc($query) ){
    echo "<table>";
    echo "<tr>";
    echo "<td>".$result['categoria']."</td>";
    echo "</tr>";
    $sql = "SELECT * FROM tabela_plano WHERE id_categoria = ".$result['id'];
    $query2 = mysql_query($sql);
    while ( $rest = mysql_fetch_assoc($query2)){
       echo "<tr>";
       echo "<td>".$rest['plano']."</td>";
       echo "</tr>";
    }
    echo "</table><br/><br/>";
}

Bom então acho que é isso...

Como você não postou a estrutura das tabelas eu preferi te passar um exemplo de como seria com a estrutura de uma tabelas montadas acima...

Não tive tempo de testar por isso se apresentar algum erro posta que eu verifico...

(y)?



Aqui as tabelas devem ser separadas, sem ter chave estrangeira, segue o modelo delas.
Categoria:
IdCategoria - int auto incremento
NomeCategoria - varchar(255)
Descricao - varchar(255)
Situiacao - int(1)

Plano
IdPlano - int auto incremento
Categoria - varchar (aqui é gravado o nomeCategoria da tabela acima)
Nome - varchar(255)
Valor - float
Comissao - float
Status - int(1)

#6 kleryson

kleryson

    Mestre

  • Usuários
  • 687 posts
  • Sexo:Masculino

Posted 31/03/2010, 15:10

O problema dessa forma é que se o nome da categoria tiver um espaço a mais ele vai dar diferênça na consulta...

Mais é só trocar o id com a categoria...

$sql = "SELECT * FROM tabela_categoria";
$query = mysql_query($sql);
while ( $result = mysql_fetch_assoc($query) ){
    echo "<table>";
    echo "<tr>";
    echo "<td>".$result['categoria']."</td>";
    echo "</tr>";
    $sql = "SELECT * FROM tabela_plano WHERE Categoria = '".$result['categoria']."'";
    $query2 = mysql_query($sql);
    while ( $rest = mysql_fetch_assoc($query2)){
       echo "<tr>";
       echo "<td>".$rest['plano']."</td>";
       echo "</tr>";
    }
    echo "</table><br/><br/>";
}


#7 MnMk

MnMk

    Novato no fórum

  • Usuários
  • 16 posts
  • Sexo:Feminino
  • Localidade:Curitiba

Posted 31/03/2010, 16:01

O problema dessa forma é que se o nome da categoria tiver um espaço a mais ele vai dar diferênça na consulta...

Mais é só trocar o id com a categoria...

$sql = "SELECT * FROM tabela_categoria";
$query = mysql_query($sql);
while ( $result = mysql_fetch_assoc($query) ){
    echo "<table>";
    echo "<tr>";
    echo "<td>".$result['categoria']."</td>";
    echo "</tr>";
    $sql = "SELECT * FROM tabela_plano WHERE Categoria = '".$result['categoria']."'";
    $query2 = mysql_query($sql);
    while ( $rest = mysql_fetch_assoc($query2)){
       echo "<tr>";
       echo "<td>".$rest['plano']."</td>";
       echo "</tr>";
    }
    echo "</table><br/><br/>";
}



Já tinha tentado fazer assim, ele cria um loop dentro da 1ª tabela com todos os planos aparecendo várias vezes.
Alguma outra idéia?

#8 kleryson

kleryson

    Mestre

  • Usuários
  • 687 posts
  • Sexo:Masculino

Posted 31/03/2010, 16:29

Feito o teste do código que te passei...

link

Vê como ficou o resultado...

(y)??

#9 MnMk

MnMk

    Novato no fórum

  • Usuários
  • 16 posts
  • Sexo:Feminino
  • Localidade:Curitiba

Posted 31/03/2010, 22:56

Já resolvi o problema de uma outra maneira, a sua realmente não funcionou.. mas brigadão a atenção..
XD




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq