Array
(
    [0] => stdClass Object
        (
            [Votos_Balanceados] => -1
            [id] => 553414
            [titulo] => Definir determinado campo de uma tabela para select
            [dataCadastro] => DateTime Object
                (
                    [date] => 2016-05-06 23:14:25
                    [timezone_type] => 3
                    [timezone] => America/Sao_Paulo
                )

            [isFirstPost] => -1
            [idUsuario] => 488883
            [status] => A
            [isExample] => 
            [NomeUsuario] => Livia Sampaio
            [Apelido] => 
            [Foto] => 488883_20160501190954.jpg
            [Conteudo] => Ninguém??
        )

)

Definir determinado campo de uma tabela para select

PHP
Livia Sampaio
   - 06 mai 2016

Me ajudem!! Estou aqui com um probleminha, tenho um BD com as seguintes tabelas baixo, que no caso fazem um relacionamento para gerar a tabela "notas"
Eu preciso imprimir a ficha, porém no uso normal ele sempre me traz a ficha em andamento. Eu queria poder definir pelo campo id_ano para ele trazer a fase que eu preciso com as notas daquele ano.
As très tabela que tenho:
CREATE TABLE IF NOT EXISTS `clientes` (
`id_cliente` int(10) NOT NULL AUTO_INCREMENT,
`nome` varchar(150) NOT NULL,
`cargo` varchar(150) NOT NULL,
`rg` varchar(150) NOT NULL,
PRIMARY KEY (`id_cliente`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
INSERT INTO `clientes` (`id_cliente`, `nome`, `cargo`, `rg`) VALUES
(1, 'Livia', 'pretendente', '0000000001');

CREATE TABLE IF NOT EXISTS `fases` (
`id_fase` int(10) NOT NULL AUTO_INCREMENT,
`id_ano` int(10) NOT NULL,
`fase` varchar(255) NOT NULL,
PRIMARY KEY (`id_fase`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
INSERT INTO `fases` (`id_fase`, `fase`) VALUES
(1, 'FASE 1'),
(2, 'FASE 2'),
(3, 'FASE 3'),
(4, 'FASE 4'),
(5, 'FASE 5');

CREATE TABLE IF NOT EXISTS `anos` (
`id_ano` int(10) NOT NULL AUTO_INCREMENT,
`ano` varchar(30) NOT NULL,
PRIMARY KEY (`id_ano`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2020 ;
INSERT INTO `anos` (`id_ano`, `ano`) VALUES
(2012, '2012'),
(2013, '2013'),
(2014, '2014'),
(2015, '2015'),
(2016, '2016'),
(2017, '2017'),
(2018, '2018'),
(2019, '2019'),

No relacionamento se cria a tabela notas abaixo
CREATE TABLE IF NOT EXISTS `notas` (
`id_cliente` int(10) NOT NULL,
`id_fase` int(10) NOT NULL,
`id_ano` int(10) NOT NULL,
`id_criterio` int(10) NOT NULL,
`avalia1` varchar(10) DEFAULT NULL,
`avalia2` varchar(10) DEFAULT NULL,
`avalia3` varchar(10) DEFAULT NULL,
`avalia4` varchar(10) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO `notas` (`id_cliente`, `id_fase`, `id_ano`, `id_criterio`, `avalia1`, `avalia2`, `avalia3`, `avalia4`) VALUES
(1, 1, 2014, 1, '5.00', '6.00', NULL, NULL),
(2, 1, 2014, 1, '6.00', '8.00', NULL, NULL),
(3, 1, 2014, 1, '6.00', '8.00', NULL, NULL),
(1, 2, 2015, 1, '8.00', '3.00', NULL, NULL),
(1, 3, 2016, 1, '5.00', '7.00', NULL, NULL),
(1, 4, 2017, 1, '5.00', '7.00', NULL, NULL),
(1, 5, 2018, 1, '5.00', '7.00', NULL, NULL);

No arquivo está assim:
<tr><td>
<b>DEPARTAMENTO:</b<?php
$id_fase = mysql_result(mysql_query("SELECT id_fase FROM notas WHERE id_cliente=$_GET[id_cliente]"), 0, id_fase);
echo mysql_result(mysql_query("SELECT fase FROM fases WHERE id_fase=$id_fase"), 0, fase)
?></td></tr>

No primeiro select pego o id da fase, e no echo trago o nome da fase da tabela fases.
Queria saber como nesse primeiro select eu definir nele o ano que quero. 2014, 2016.... da tabela notas Não importa, eu preciso definir isso no select, vai me facilitar. Dessa forma ele vai me trazer os dados que quero do ano certo.
Peço que não me deem outras alternativas fugindo disso, pois só vai me gerar outros trabalhos no código. E no momento isso me ajuda muito.

Livia Sampaio
   - 06 mai 2016

Ninguém??

0
|
1

Raylan
|
MVP
Pontos: 690
    07 mai 2016

Voce quer que essa consulta

#Código

"SELECT id_fase FROM notas WHERE id_cliente=".$_GET["id_cliente"]

fique assim

#Código
"SELECT id_fase FROM notas WHERE (id_cliente=".$_GET["id_cliente"].") and (id_ano=".$_GET[id_ano].")"

ou assim

#Código
"SELECT id_fase FROM notas WHERE (id_cliente=".$_GET["id_cliente"].") and (id_ano=".date("Y").")"

?

0
|
0

Livia Sampaio
   - 07 mai 2016

Do seu modo eu não definiria o ano certo que quero, mas já resolvi..

Acrescentei a linha AND id_ano= 2014 , agora ele puxa exatamente o campo e não pelo id, ali defino o ano que quero

Mas obrigada.

#Código

<?php
$id_fase = mysql_result(mysql_query("SELECT id_fase FROM notas WHERE id_cliente=$_GET[id_cliente] AND id_ano= 2014"), 0, id_fase);
echo mysql_result(mysql_query("SELECT fase FROM fases WHERE id_fase=$id_fase"), 0, fase)
?>

0
|
1