Didi3D 0 Denunciar post Postado Julho 1, 2014 Pessoal que sacas não estou sabendo utilizar uma função simples do php pra contagem de linhas de um resultado eu crio a seguinte query com MySQLi $buscar ='SELECT COUNT(title) FROM topicos WHERE title = ?'; $title = $this->titulo_id;// nome qualquer ex: imasters /* Prepare statement */ $stmt = $conn->prepare($buscar); if($stmt === false) { trigger_error('Wrong SQL: ' . $buscar . ' Error: ' . $conn->error, E_USER_ERROR); } /* Bind parameters. TYpes: s = string, i = integer, d = double, b = blob */ $stmt->bind_param('s',$title); /* Execute statement */ $stmt->execute(); $stmt->store_result(); $t_rows = $stmt->fetch(); echo $t_rows; //aqui deveria(a meu entender) mostrar quantas vezes o titulo "imasters" aparece na consulta mas só retorna 1. Tentei de outras formas mas também não consegui sempre da algum erro e dessa maneira pelo menos ele acha os resultados porém eu gostaria da contagem de quantas vezes ele achou e não dizer que é 1(true). qualquer ajuda é válida só preciso dentro desse objeto do MySQLi saber em quantas linhas ele existe, obrigado a quem pode ajudar :D Compartilhar este post Link para o post Compartilhar em outros sites
rockrgo 138 Denunciar post Postado Julho 1, 2014 num_rows http://www.php.net/manual/pt_BR/mysqli-result.num-rows.php Compartilhar este post Link para o post Compartilhar em outros sites
Didi3D 0 Denunciar post Postado Julho 1, 2014 Então rockrgo, eu já havia utilizado esse exemplo do desse mesmo site que você indicou <?php $mysqli = new mysqli("localhost","root", "", "tables"); $query = $mysqli->prepare("SELECT * FROM table1"); $query->execute(); $query->store_result(); $rows = $query->num_rows; echo $rows; // Return 4 for example ?> mas retorna: Fatal error: Call to a member function execute() on a non-object in e outros exemplos que também utilisei apresentavam esse ou outros erros enfim ainda continuo sem saber utilizar =( Compartilhar este post Link para o post Compartilhar em outros sites
merlinus 1 Denunciar post Postado Julho 1, 2014 Você tem q usar o num_rows antes do store_result: <?php $mysqli = new mysqli("localhost","root", "", "tables"); $query = $mysqli->prepare("SELECT * FROM table1"); $query->execute(); $rows = $query->num_rows; $query->store_result(); echo $rows; // Return 4 for example ?> Compartilhar este post Link para o post Compartilhar em outros sites
Didi3D 0 Denunciar post Postado Julho 1, 2014 Bem fuçando e funçando até consegui funcionar mais ou menos o código ficou assim: Na sua dica merlinus o resultado foi: 0000000000 $query = $mysqli->prepare("SELECT title FROM topicos WHERE title = '".$this->titulo_id."' "); $query->execute(); $t_rows = $query->num_rows; $query->store_result(); echo $t_rows; Acertando a query pro meu caso de uso e deixando conforme o exemplo do site ficou assim : $query = $mysqli->prepare("SELECT title FROM topicos WHERE title = '".$this->titulo_id."' "); $query->execute(); $query->store_result(); $t_rows = $query->num_rows; echo $t_rows; Com o store antes do num_rows ! Dessa forma ele percorre uma lista mas ele ta se perdendo nas contas por exemplo ele exibe os números das linhas(rows) encontradas Ex: 1-1-0-0-0-1-1-0-0-9 ( sem os traços coloquei só pra visualizar melhor ) Ou seja ele até acha as linhas mas ta contando errado rs porque quando eu pesquiso direto na tabela a mesma query retorna outros números de linhas, até curiosos... 1º Resultado existe 1 ( ok ) 2º Resultado existe 1 ( ok ) 3º Resultado existem 3 ( fail ) e não 0 conforme ele exibe 4,5,6,7,8,9 ele se perde nas contas também 10º Resultado existe 9 ( ok ) Ou seja não entendi como ele pode exibir a número de linhas em que o titulo existe na tabela corretamente na 1 e 2 buscas errar da 3 até a 9 e acertar na 10 de novo rss Compartilhar este post Link para o post Compartilhar em outros sites