Ir para conteúdo

Arquivado

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

  • 0
Hugo Andre Carvalho

Código PHP para conexão com BD MySQL com erro "No Database selected"

Pergunta

Boa tarde.. Sou muito iniciante no PHP e procurava algum código que me possibilitasse conectar e extrair os dados do meu banco MySQL de um servidor no qual está rodando o GLPI! 

Pesquisando na internet achei o código abaixo, mas por alguma razão ele me retorna o erro "No Database selected" e já testei com outros códigos de conexão e funcionaram perfeitamente!

Me ajudem por favor e agradeço desde já!

 

Segue o código:

<?php

function AcessaMySQL($servidor, $usuario, $senha, $database){
 mysql_connect($servidor, $usuario, $senha) or die (mysql_error());
 mysql_select_db($database) or die (mysql_error());
}

/* Chama a função */
AcessaMysql('192.168.191.000', 'root', '123456', 'tp_glpi');

// Definimos o nome do arquivo que será exportado
$arquivo = 'glpi.xls';

// Configurações header para forçar o download
header ("Expires: Mon, 12 Set 2010 05:00:00 GMT");
header ("Last-Modified: " . gmdate("D,d M YH:i:s") . " GMT");
header ("Cache-Control: no-cache, must-revalidate");
header ("Pragma: no-cache");
header ("Content-type: application/x-msexcel");
header ("Content-Disposition: attachment; filename=\"{$arquivo}\"" );
header ("Content-Description: PHP Generated Data" );

echo '<table border=1><tr><td colspan="10" align=center><b>Chamados Registrados no GLPI</b></td></tr>';

echo '<tr>';
echo '<td><b>ID</b></td>';
echo '<td><b>Título</b></td>';
echo '<td><b>Aberto em?</b></td>';
echo '<td><b>Fechado em?</b></td>';
echo '<td><b>Última Modificação</b></td>';
echo '<td><b>Status</b></td>';
echo '<td><b>Usuário</b></td>';
echo '<td><b>Grupo</b></td>';
echo '<td><b>Técnico</b></td>';
echo '</tr>';

$query = "SELECT
 Chamados.ID,
 Chamados.name AS 'Titulo',
 DATE_FORMAT(Chamados.date, GET_FORMAT(DATE,'EUR')) AS 'Aberto em?',
 DATE_FORMAT(Chamados.closedate, GET_FORMAT(DATE,'EUR')) AS 'Fechado em?',
 DATE_FORMAT(Chamados.date_mod, GET_FORMAT(DATE,'EUR')) AS 'Última Mod.',
 Chamados.status AS 'Status',
 Usuarios.realname 'Usuário',
 Grupos.name AS 'Grupo',
 Tecnicos.realname AS 'Técnico',
 Chamados.contents AS 'Descrição'
 FROM glpi_tracking AS Chamados
 INNER JOIN glpi_users AS Usuarios ON(Chamados.author = Usuarios.ID)
 INNER JOIN glpi_users AS Tecnicos ON(Chamados.assign = Tecnicos.ID)
 INNER JOIN glpi_groups AS Grupos ON(Chamados.FK_group = Grupos.ID);";

$resultado = mysql_query($query);

while($row = mysql_fetch_row($resultado)){
 echo '<tr>';
 echo '<td>'. $row[0] .'</td>';
 echo '<td>'. $row[1] .'</td>';
 echo '<td>'. $row[2] .'</td>';
 echo '<td>'. $row[3] .'</td>';
 echo '<td>'. $row[4] .'</td>';
 echo '<td>'. $row[5] .'</td>';
 echo '<td>'. $row[6] .'</td>';
 echo '<td>'. $row[7] .'</td>';
 echo '<td>'. $row[8] .'</td>';

 echo '</tr>';
}

echo '</table>';
?>

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

4 respostas a esta questão

Recommended Posts

Tenta assim:

 

$connect = null;
function AcessaMySQL($servidor, $usuario, $senha, $database){
	if (empty($connect)) {
      $connect = mysql_connect($servidor, $usuario, $senha) or die (mysql_error());
      mysql_select_db($database, $connect) or die (mysql_error());
	}
}

para maiores informações: 

mysql_select_db()

Compartilhar este post


Link para o post
Compartilhar em outros sites

Funções mysql_* foram descontinuadas na versão 5.5 e removidas na versão 7.

 

Utilize MySQLi ou PDO:

http://rberaldo.com.br/como-atualizar-php-mysql-mysqli/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vlw kkumayama, mas não deu certo!

 

Gabriel Heming, substitui conforme sugerido e meu código ficou assim:

 

<?php
 
 $servidor = '192.168.191.138:3306';
 $usuario = 'glpin';
 $senha = 'glpinpass';
 $database = 'glpi';
 $con = mysqlI_connect($servidor, $usuario, $senha, $database) or die (mysql_error());
 
// Definimos o nome do arquivo que será exportado
$arquivo = 'glpi.xls';
 
// Configurações header para forçar o download
header ("Expires: Mon, 20 Set 2017 05:00:00 GMT");
header ("Last-Modified: " . gmdate("D,d M YH:i:s") . " GMT");
header ("Cache-Control: no-cache, must-revalidate");
header ("Pragma: no-cache");
header ("Content-type: application/x-msexcel");
header ("Content-Disposition: attachment; filename=\"{$arquivo}\"" );
header ("Content-Description: PHP Generated Data" );
 
echo '<table border=1><tr><td colspan="10" align=center><b>Chamados Registrados no GLPI</b></td></tr>';
 
echo '<tr>';
echo '<td><b>ID</b></td>';
echo '<td><b>Título</b></td>';
echo '<td><b>Aberto em?</b></td>';
echo '<td><b>Fechado em?</b></td>';
echo '<td><b>Última Modificação</b></td>';
echo '<td><b>Status</b></td>';
echo '<td><b>Usuário</b></td>';
echo '<td><b>Grupo</b></td>';
echo '<td><b>Técnico</b></td>';
echo '</tr>';
 
$query = "SELECT
 Chamados.ID,
 Chamados.name AS 'Titulo',
 DATE_FORMAT(Chamados.date, GET_FORMAT(DATE,'EUR')) AS 'Aberto em?',
 DATE_FORMAT(Chamados.closedate, GET_FORMAT(DATE,'EUR')) AS 'Fechado em?',
 DATE_FORMAT(Chamados.date_mod, GET_FORMAT(DATE,'EUR')) AS 'Última Mod.',
 Chamados.status AS 'Status',
 Usuarios.realname 'Usuário',
 Grupos.name AS 'Grupo',
 Tecnicos.realname AS 'Técnico',
 Chamados.contents AS 'Descrição'
 FROM glpi_tracking AS Chamados
 INNER JOIN glpi_users AS Usuarios ON(Chamados.author = Usuarios.ID)
 INNER JOIN glpi_users AS Tecnicos ON(Chamados.assign = Tecnicos.ID)
 INNER JOIN glpi_groups AS Grupos ON(Chamados.FK_group = Grupos.ID);";
 
$resultado = mysqli_query($con, $query);
 
while($row = mysqli_fetch_row($resultado)){
 echo '<tr>';
 echo '<td>'. $row[0] .'</td>';
 echo '<td>'. $row[1] .'</td>';
 echo '<td>'. $row[2] .'</td>';
 echo '<td>'. $row[3] .'</td>';
 echo '<td>'. $row[4] .'</td>';
 echo '<td>'. $row[5] .'</td>';
 echo '<td>'. $row[6] .'</td>';
 echo '<td>'. $row[7] .'</td>';
 echo '<td>'. $row[8] .'</td>';
 
 echo '</tr>';
}
 
echo '</table>';
?>

Porem agora esta dando o erro "Warning: mysqli_fetch_row() expects parameter 1 to be mysqli_result, boolean given", se não me engano o erro esta nessa parte do código:

while($row = mysqli_fetch_row($resultado)){
 echo '<tr>';
 echo '<td>'. $row[0] .'</td>';
 echo '<td>'. $row[1] .'</td>';
 echo '<td>'. $row[2] .'</td>';
 echo '<td>'. $row[3] .'</td>';
 echo '<td>'. $row[4] .'</td>';
 echo '<td>'. $row[5] .'</td>';
 echo '<td>'. $row[6] .'</td>';
 echo '<td>'. $row[7] .'</td>';
 echo '<td>'. $row[8] .'</td>';
 
 echo '</tr>';
}
 
echo '</table>';
?>

Como posso resolver?..

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando a query a ser executa não está correta (ocorre algum erro, etc...) a função mysqli_query retorna false. Execute diretamente no banco de dados a query e verifique qual é o erro:

 

https://secure.php.net/manual/en/mysqli.query.php

Citar

Returns FALSE on failure. For successful SELECT, SHOW, DESCRIBE or EXPLAIN queries mysqli_query() will return a mysqli_result object. For other successful queries mysqli_query() will return TRUE.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Fala galera.
      Espero que todos estejam bem.
      Seguinte: Tenho um arquivo xml onde alguns campos estão com : (dois pontos), como o exemplo abaixo:
       
      <item>
      <title>
      d sa dsad sad sadasdas
      </title>
      <link>
      dsadas dsa sad asd as dsada
      </link>
      <pubDate>sadasdasdsa as</pubDate>
      <dc:creator>
      d sad sad sa ad as das
      </dc:creator>
      </item>
       
      Meu código:
       
      $link = "noticias.xml"; 
      $xml = simplexml_load_file($link); 
      foreach($xml -> channel as $ite) {     
           $titulo = $ite -> item->title;
           $urltitulo = $ite -> item->link;
           print $urltitulo = $ite -> item->dc:creator;
      } //fim do foreach
      ?>
       
      Esse campo dc:creator eu não consigo ler. Como faço?
       
      Agradeço quem puder me ajudar.
       
      Abs
       
       
    • Por First
      Olá a todos!
       
      Eu estou criando um sistema do zero mas estou encontnrando algumas dificuldades e não estou sabendo resolver, então vim recorrer ajuda de vocês.
      Aqui está todo o meu código: https://github.com/PauloJagata/aprendizado/
       
      Eu fiz um sistema de rotas mas só mostra o conteúdo da '/' não sei porque, quando eu tento acessar o register nada muda.
      E eu também quero que se não estiver liberado na rota mostra o erro de 404, mas quando eu tento acessar um link inválido, nada acontece.
      Alguém pode me ajudar com isso? E se tiver algumas sugestão para melhoria do código também estou aceitando.
       
       
      Desde já, obrigado.
    • Por landerbadi
      Olá pessoal, boa tarde
       
      Tenho uma tabela chamada "produtos" com os seguintes campos (id, produto) e outra tabela chamada "itens" com os seguintes campos (id, prod_01, prod_02, prod_03, prod_04).
       
      Na tabela produtos eu tenho cadastrado os seguintes produtos: laranja, maçã, uva, goiaba, arroz, feijão, macarrão, etc.
       
      Na tabela itens eu tenho cadastrado os itens da seguinte maneira:
       
      1, laranja, uva, arroz, feijão;
      2, maçã, macarrão, goiaba, uva;
      3, arroz, feijão, maçã, azeite
       
      Meu problema é o seguinte: 
      Eu escolho um produto da tabela "produtos", por exemplo "uva".  Preciso fazer uma consulta na tabela "itens" para ser listado todos os registros que contenham o produto "uva" e que todos os demais produtos estejam cadastrados na tabela "produtos".
       
      No exemplo acima seria listado apenas dois registros, pois o terceiro registro não contém o produto "uva". 
       
      Alguém pode me ajudar? Pois estou quebrando a cabeça a vários dias e não consigo achar uma solução.
×

Informação importante

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