Jump to content


Photo

Soma Número De Repostas


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

#1 marciofr

marciofr

    Turista

  • Usuários
  • 45 posts
  • Sexo:Não informado

Posted 19/07/2004, 16:21

Tenho duas tabelas em mysql, uma com perguntas e outra com as respostas, da seguinte forma:

TABELA COTACAO
cod_cotacao
cotacao

TABELA COTACAO ITEM
cod_cotacaoitem
cod_cotacao
valor

Quero colocar um uma tabela o resultado da seguinte forma:

COTACOES | No. de Respostas
Cotacao1 5
Cotacao2 10

Estou tentando mais ñ consigo, se puderem me ajudar valeu.
viaDomínios.com - Registro de domínios internacional .com .net .org por R$ 36,90 / ano

#2 fly2k

fly2k

    Super Veterano

  • Usuários
  • 2262 posts
  • Sexo:Não informado

Posted 19/07/2004, 16:24

traduza... como que funciona essa tal cotação, como que eh dada entrada nessa tabela!??????
Quer aprender PHP? -> www.manjaphp.com.br
Tutoriais, código colaborativo (pastebin), curso de PHP, artigos e etc.

#3 marciofr

marciofr

    Turista

  • Usuários
  • 45 posts
  • Sexo:Não informado

Posted 19/07/2004, 16:30

é assim:

tem uma tabela com todas as cotações e outra com os orçamentos dos fornecedores para cada cotação.

COTACOES
cod_cotacao
cotacao (descrição da cotacao)

COTACOES_ITEM
cod_cotacaoitem
cod_cotacao
cod_fornecedor
valor (valor do orcamento para essa cotacao)

Com isso terei de listar a cotacao em uma coluna e na frente o número de orcamentos (respostas) para essa cotação, exemplo:

RESULTADO
Cotacao | respostas (número de fornecedores q responderam essa cotacao)
teste | 5
teste2 | 9

entendeu?
viaDomínios.com - Registro de domínios internacional .com .net .org por R$ 36,90 / ano

#4 marciofr

marciofr

    Turista

  • Usuários
  • 45 posts
  • Sexo:Não informado

Posted 19/07/2004, 16:31

funciona mais ou menos como o fórum, que tem a mensagem e na frente o número de respostas.
viaDomínios.com - Registro de domínios internacional .com .net .org por R$ 36,90 / ano

#5 thiagorsl

thiagorsl

    Ex-admin xD

  • Ex-Admins
  • 1151 posts
  • Sexo:Não informado
  • Localidade:Sampa
  • Interesses:http://sermaldito.amovoce.net/

Posted 19/07/2004, 17:13

Cuidado com os posts seguidos edite o anterior (y)

select COUNT(*) from cotacoes_item where cod_cotacao='$res[cod_cotacao]'

Selecionando onde $res[cod_cotacao] é o código da cotação ira te retornar o número de resultados obtidos ..... resumindo use o count() e pronto ;)

Para exibir

PHP
<?php

$sql
=mysql_query("select COUNT(*) from cotacoes_item where cod_cotacao='$res[cod_cotacao]'");
echo
mysql_result($sql,0);

?>


O result vai trazer o resultado e pronto =)

Quando estiver fazendo a exibição das cotações ai você usa isso e pronto :D

#6 marciofr

marciofr

    Turista

  • Usuários
  • 45 posts
  • Sexo:Não informado

Posted 19/07/2004, 17:25

Thiago,

tentei da forma que falou mas dá o seguinte erro:

Warning: Supplied argument is not a valid MySQL result resource in c:\apache\htdocs\times\cotacao\public_html\adm\respostas_orcamentos.php on line 119

Coloquei abaixo parte do código que estou usando, se possível veja onde estou errando, ok?


<td height="1"><table width="100%" border="0">
                          <tr bgcolor="#E6E6E6"> 
                            <td width="63" height="18"><div align="center"><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif"><?php echo $array_result["cod_cotacao"]; ?></font></div></td>
                            <td width="209" height="18"> <div align="center"><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif"><?php echo $array_result["solicitante"]; ?></font></div>
                              </td>
                            <td width="176" height="18"> <div align="center"><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif"><?php echo $array_result["material"]; ?></font></div></td>
                            <td width="171" height="18"><div align="center"><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif">
     	 <?php
     	 $respostas=mysql_query("select COUNT(*) as Total from cotacoes_item where cod_cotacao='$array_result[cod_cotacao]'");
     	 echo mysql_result($respostas,0);
        ?></font></div></td>
                            <td width="115" height="18"><div align="center"><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif"><a href="respostas_orcamentos_mostra.php?orcamento=<? echo $array_result["cod_cotacao"]; ?>">Ver 
                                e Enviar</a></font></div></td>
                          </tr>
                        </table></td>
                    </tr>
                    

Abraço.
viaDomínios.com - Registro de domínios internacional .com .net .org por R$ 36,90 / ano

#7 thiagorsl

thiagorsl

    Ex-admin xD

  • Ex-Admins
  • 1151 posts
  • Sexo:Não informado
  • Localidade:Sampa
  • Interesses:http://sermaldito.amovoce.net/

Posted 19/07/2004, 17:31

Você colocou um as TOTAL :blink:

Isso é desnecessário :o

Faça assim naquela parte ;)

PHP
<?php

$respostas
=mysql_query("select COUNT(*) from cotacoes_item where cod_cotacao='$array_result[cod_cotacao]'") or die (mysql_error());
echo
mysql_result($respostas,0);
 

?>


Se naum der certo vai retornar o erro é mais fácil assim :D

#8 marciofr

marciofr

    Turista

  • Usuários
  • 45 posts
  • Sexo:Não informado

Posted 19/07/2004, 17:50

Agora da o seguinte erro:

No Database Selected

Não sei porque dá esse erro se a conexão está certa. Coloquei todo o código abaixo para facilitar ver o erro.

Será que é porque estou usando paginação?

    <?php 
// consulta no banco de dados... 
$host = "localhost"; 
$user = ""; 
$pass = ""; 
$db_nome = "cotacoes";
$enviado = "s"; 
$link = mysql_connect ($host, $user, $pass); 
$query = "SELECT * FROM cotacoes WHERE enviado = '$enviado' ORDER BY data"; 
$result = mysql_db_query ($db_nome, $query, $link) or die ("Conexão falhou!"); 

// total de registros retornados pela consulta... 
$num = mysql_num_rows($result); 

// total de registros por página... 
// você pode fixar ou deixar que o usuário escolha este valor... 
$total_reg = 10; 

// finaliza a consulta... 
mysql_close($link); 


// 10 registros ou menos... 
if ($num <= $total_reg) { 
    $total_paginas = 1; 
} 
   
// mais de 10 registros com valor múltiplo de 10...             
if ($num%$total_reg == 0) { 
    $total_paginas = $num / $total_reg; 
} 
// mais de 10 registros porém o valor não é múltiplo de 10... 
else { 
    // como a divisão não é exata, teremos que subtrair a parte que não é inteira e 
    // acrescentar 1 página. 
    $total_paginas = ($num/$total_reg) - (($num%$total_reg)/$total_reg) + 1; 
} 

  	//VERIFICA SE RETORNOU ALGO
  	if($num == 0) echo "Nenhum orçamento pendente no momento.";
  	else { 
$linha_inicial = ($pagina - 1) * $total_reg; 
$linha_final = $linha_inicial + $total_reg - 1; 
   
// escrevendo os registros... 
// vamos usar um arcador para sabermos se estamos entre a linha final e a linha inicial... 
$marcador = 0; 
while ($array_result = mysql_fetch_array($result)) { 
    // se o marcador está dentro do intervalo desejado, escrevemos o registro... 
    if ($marcador >= $linha_inicial and $marcador <= $linha_final) { 
    	?>
                      <td height="1"><table width="100%" border="0">
                          <tr bgcolor="#E6E6E6"> 
                            <td width="63" height="18"><div align="center"><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif"><?php echo $array_result["cod_cotacao"]; ?></font></div></td>
                            <td width="209" height="18"> <div align="center"><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif"><?php echo $array_result["solicitante"]; ?></font></div>
                              </td>
                            <td width="176" height="18"> <div align="center"><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif"><?php echo $array_result["material"]; ?></font></div></td>
                            <td width="171" height="18"><div align="center"><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif">
      	<?php
      	$respostas=mysql_query("SELECT COUNT(*) FROM cotacoes_item WHERE cod_cotacao='$array_result[cod_cotacao]'") or die (mysql_error());
             echo mysql_result($respostas,0);
            	?></font></div></td>
                            <td width="115" height="18"><div align="center"><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif"><a href="respostas_orcamentos_mostra.php?orcamento=<? echo $array_result["cod_cotacao"]; ?>">Ver 
                                e Enviar</a> | Alterar</font></div></td>
                          </tr>
                        </table></td>
                    </tr>
                    <?                 
    } 
    //incrementamos o marcador... 
    $marcador = $marcador + 1; 
} 
if ($pagina == 1) { 
    echo "<font color=\"#999999\">anterior</font> |"; 
} 
// do contrário, linka a página anterior... 
else { 
    echo "<a href=\"orcamentos.php?pagina=".($pagina - 1)."\" targe=\"_self\">anterior</a> |"; 
} 

// gerando os números com os respectivos links... 
$i = 1; 
while ($i <= $total_paginas) { 
    // a página atual não precisa ser linkada... 
    if ($i == $pagina) { 
        echo " <b><u>$i</u></b> "; 
    } 
    // as demais páginas deve ser linkadas... 
    else { 
        echo " <a href=\"orcamentos.php?pagina=".$i."\" target=\"_self\">".$i."</a> "; 
    } 
    $i = $i + 1; 
} 

// se estivermos na última página, o link "próximo" não precisa linkar nada...                 
if ($pagina == $total_paginas) { 
    echo "| <font color=\"#999999\">próxima</font>\n"; 
} 
// do contrário, linka a próxima página... 
else { 
    echo "| <a href=\"empresas.php?pagina=".($pagina + 1)."\" targe=\"_self\">próxima</a> \n"; 
} 
}
?>


Edição feita por: marciofr, 19/07/2004, 18:05.

viaDomínios.com - Registro de domínios internacional .com .net .org por R$ 36,90 / ano

#9 thiagorsl

thiagorsl

    Ex-admin xD

  • Ex-Admins
  • 1151 posts
  • Sexo:Não informado
  • Localidade:Sampa
  • Interesses:http://sermaldito.amovoce.net/

Posted 20/07/2004, 18:34

Se ele retorna este erro é pq ele ocorreu eu no seu código realmente naum escolheu o banco de dados .....
Pode conferir você naum escolheu ;)

#10 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 21/07/2004, 05:05

Se ele retorna este erro é pq ele ocorreu eu no seu código realmente naum escolheu o banco de dados .....
Pode conferir você naum escolheu ;)

Ou seja,
Coloque este código:

mysql_select_db("Nome do Bd", $link); //pelo que vi no script o nome do bd é cotacoes

Após a conexão.

(y)
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29




0 user(s) are reading this topic

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

IPB Skin By Virteq