Ir para conteúdo
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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • 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.