Ir para conteúdo

POWERED BY:

Arquivado

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

biakelly

Contador com erro

Recommended Posts

Oi, criei uma função para contar uma coluna específica:

 

function contando-usuarios()
{
	global $conn, $db-nativas;

	$sql = "SELECT COUNT(*) FROM $tabela-nativa WHERE ID = '" . ['$contaenfermeiras'] . "'";
	if ($result = mysqli_query($conn, $sql)) {

		if (mysqli_num_rows($result) >= 1) {	
			$row = mysqli_fetch_row($result);
			return $row['$contaenfermeiras'];
		}
	}
}

 

 

Ao chamar no index desta forma:

 

<?php echo ($contaenfermeiras);?>

 

Gera erro:  Notice: Undefined variable: contaenfermeiras in C:\xampp\htdocs\hosp\index.php on line 5

 

A linha 5 é a chamada: <?php echo ($contaenfermeiras);?>


To fazendo algo errado? Como chamo corretamente?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, @biakelly.

 

Você chegou a declarar e atribuir um valor a sua variável $contaenfermeiras?

Não sei como está a estrutura do seu projeto/base de dados, mas tente fazer da seguinte forma:

 

function contandoUsuarios() {
	global $conn, $db-nativas;
	$result = mysqli_query("SELECT COUNT(*) FROM $tabela-nativa WHERE ID = ${$contaenfermeiras}", $sql);
	if ($result) {
        if(($row = mysqli_num_rows($result)) > 0) {
            return $row['COUNT'];
        }
		return 0;
	}
	return null;
}

Espero ter ajudado, uma boa tarde.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!

 

Primeiro, os nomes das funções não está correto, não poderá utilizar o sinal -(menos) em nome de função, então recomendo utilizar o _ (underline).

 

Segundo, o nome das variáveis também segue o mesmo padrão acima, não poderá utilizar o sinal de -(menos) o recomendável e a utilização do _(underline).

 

Terceiro, a utilização do ['$contaenfermeiras'] não está sendo encontrado por não ser passado via parâmetros por motivo de ações dentro de funções.

 

Quarto, não recomendo a utilização de globais dentro das funções.

 

Segue alguns exemplo para melhorar seus conhecimentos na linguagem PHP

 

function ConnectionDB(){
	$link = mysqli_connect('localhost', 'root', '', 'danco_de_dados');
	return $link;
}

function contandoUsuarios($user_id){
	$conn = ConnectionDB();
	
	$sql = "SELECT * FROM users WHERE users_id = $user_id ";
	if ($result = mysqli_query($conn, $sql)) {
		if (mysqli_num_rows($result) > 0 ) {	
			return mysqli_num_rows($result);
		}
		return '0';
	}else{
		return 'Erro no SQL....';
	}
}

 

Preste atenção no SQL, precisa ser referente ao que deseja na consulta e com os campos de sua tabela.

O script completo:

observação: e um demo para ter como base e não referente a sua tabela porque não conheço a sua regra de negocio. 

 

<?php

function ConnectionDB(){
	$link = mysqli_connect('localhost', 'root', '', 'cursodeveraofortaleza');
	return $link;
}

function contandoUsuarios($user_id){
	$conn = ConnectionDB();
	
	$sql = "SELECT * FROM users WHERE users_id = $user_id ";
	if ($result = mysqli_query($conn, $sql)) {
		if (mysqli_num_rows($result) > 0 ) {	
			return mysqli_num_rows($result);
		}
		return '0';
	}else{
		return 'Erro no SQL....';
	}
}

 

 

 

 

 

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
19 horas atrás, biakelly disse:

Muito obrigada meninos, estou entendendo melhor agora.

 

Só uma dúvida, como chamo a função no index?

 

 

 

 

 

 

Boa tarde,

 

Achou que o nome meninos não seria tão cordial, um obrigado dev's, ou somente obrigado seria cordial.

 

1- Recomendo incluir as funções em um arquivo separado, exemplo:

 

functions.php

funcoes.php

 

nome_do_arquivo_de_funcoes.php

 

2 - Poderá incluir ou requerer o arquivo em qualquer outro arquivo de sua estrutura. usando o include, require ou ate mesmo um include_once e require_once a diferença recomendo o estudo sobre.

 

3 - Para chamar a função seria exemplo:

 

functions.php

<?php

function ConnectionDB(){
	$link = mysqli_connect('localhost', 'root', '', 'cursodeveraofortaleza');
	return $link;
}

function contandoUsuarios($user_id){
	$conn = ConnectionDB();
	
	$sql = "SELECT * FROM users WHERE users_id = $user_id ";
	if ($result = mysqli_query($conn, $sql)) {
		if (mysqli_num_rows($result) > 0 ) {	
			return mysqli_num_rows($result);
		}
		return '0';
	}else{
		return 'Erro no SQL....';
	}
}

 

 

<?php
// requerindo o arquivo functions.php
require_once('functions.php');

echo contandoUsuarios(5);
echo contandoUsuarios(intval($_POST['user_id']));

 

 

Obs: A função contandoUsuarios($parametro) dependendo da base de dados sempre vai retornar 1 usuário. porque vai depender de como está a sua estrutura da tabela e o que deseja retornar.

Se queres todos os usuários então o SQL interno da função em questão deveria ser outra.

 

Lembre-se utilizar o SQL sempre vai depender de sua base de dados BANCO- TABELAS, das informações contidas e da regra de negocio envolvida nela.

 

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por lucianfpaula
      Galera tenha a seguinte duvida, tenho 3 tabelas onde estou trazendo os dados e preciso fazer um count em uma delas
       
      SELECT *  FROM tabela1 AS t1  INNER JOIN tabela2 AS t2 ON t1.idt1 = t2.idt2 INNER JOIN tabela3 AS t3 ON t3.idt3 = t1.idt1  
      a duvida é: quero manter o SELECT * mas também preciso de COUNT(t3.idT3)
      não sei se é possível fazer isso, mas gostaria de ter certeza antes de focar em outra solução
      desde já muito grato.
    • Por lezão
      Boa noite!
      Td bem com vcs?
      Estou usando esse código mas não retorna nada!
       
      Alguém pode me ajudar ?
       
       
      <?php $sql = mysqli_query($link, "SELECT ver_post, COUNT(ver_post) AS Quantidade FROM tab_comentarios where ver_post = 'red' Group by ver_post"); ?> Variável
      <?php echo $Quantidade; ?>  
    • Por marsolim
      galera tô tentando fazer uma classificação aqui junto com um sum e não to conseguindo. até o momento consigo gerar a tabela de desempenho assim
       
         $sql = "SELECT *,SUM(pontos_total) AS totais FROM desempenho INNER JOIN usuarios ON usuarios.id = desempenho.id_usuario GROUP BY id_usuario ORDER BY totais DESC";     if($res = mysqli_query($con, $sql)){         while($row = mysqli_fetch_assoc($res)){             echo $row["nome"] . " - " . $row["totais"] . "<br>";         }     }  
      ok isso me gera uma tabela como segue
       
      jean claude van damme - 152
      bruna marquezine - 149
      bruce willis - 131
      ...
       
      o que não to conseguindo é incluir um contagem pra saber em que posição a pessoa está por exemplo se a bruna marquezine logar no sistema deve aparecer pra ela
       
      Sua pontuação: 149
      Sua posição: 2
       
      to tentando incluir uma clausula pra contar os totais maiores ou iguais ao do usuário logado e assim a quantidade de registros que retornar é a posição da pessoa.
       
      detalhe pertinente: totais é uma soma de vários subtotais espalhados pela tabela em nome de cada usuario tipo
       
      nesse cenario temos como soma dos pontos totais
       
      1 - 8
      2 - 13
      3 - 3
      4 - 7
      5 - 2
       
      alguma ideia de como posso pegar a posição apenas alterando o sql?
    • Por Alberto Nascimento
      Tenho o seguinte código que faz a consulta e contagem de todos os campos de uma tabela e retorna a quantidade através de ECHO.
      Porém preciso que tenha dois critérios a seguir para então contar:
      <?php $servidor = ""; $usuario = ""; $senha = ""; $dbname = ""; $conn = mysqli_connect($servidor, $usuario, $senha, $dbname); if(!conn) { echo "Error"; } $sql="SELECT count(id) AS total FROM tbl_test"; $result=mysqli_query($conn,$sql); $values=mysqli_fetch_assoc($result); $num_rows=$values['total']; echo $num_rows; ?> Só que preciso que primeiro encontre todos os registros que tiverem o nome "ALBERTO" no campo NOME e logo em seguida faça a contagem dos registros de acordo com o campo SITUACAO .
      Ficaria desta forma a ser exibido:
       
       
      Obrigado !!
    • Por edigley
      Olá, tenho uma tabela chamado "pagamentos", e nela preciso realizar as contagens de quantidade de clientes, mensalidades, valor pago e valor com comissão por período, conforme exemplo abaixo.
       
      Pagamentos de 01/08/2918 à 15/08/2019
       
      ordem Clientes Mensalidade  Valor  Pagamento 1 Rodrigo ago/19  R$     25,00 09/08/2019 2 Paulo ago/19  R$     25,00 10/08/2019 3 José ago/19  R$     30,00 10/08/2019 4 Maria jun/19  R$     25,00 15/08/2019 5 Maria jul/19  R$     25,00 15/08/2019 6 Maria ago/19  R$     25,00 15/08/2019  
      Resultados:
      Qtd Clientes: 4
      Qtd Mensalidades: 6
      Valor Total Recebido: R$ 155
      Comissão (Valor Total Recebido - 5%): R$ 147,25
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.