Soma Número De Repostas
#1
Posted 19/07/2004, 16:21
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.
#2
Posted 19/07/2004, 16:24
Tutoriais, código colaborativo (pastebin), curso de PHP, artigos e etc.
#3
Posted 19/07/2004, 16:30
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?
#4
Posted 19/07/2004, 16:31
#5
Posted 19/07/2004, 17:13
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
#6
Posted 19/07/2004, 17:25
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.
#7
Posted 19/07/2004, 17:31
Isso é desnecessário
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
#8
Posted 19/07/2004, 17:50
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.
#9
Posted 20/07/2004, 18:34
Pode conferir você naum escolheu
#10
Posted 21/07/2004, 05:05
Ou seja,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
Coloque este código:
Após a conexão.mysql_select_db("Nome do Bd", $link); //pelo que vi no script o nome do bd é cotacoes
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)










