Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) mais um problema com php+mysql


Scripter

Pergunta

qual é a droga do erro nissu:

<?
$usr = "root";
$pass = "11041986";
$db = "relatorios";

$con = mysql_connect(localhost,$usr,$pass) or die('não conecto');
mysql_select_db('relatorios')
mysql_query("INSERT INTO fabricas ('id,'fabrica')VALUES(NULL,'testes')") or die(mysql_error());  <--linha 8
mysql_close($con);
?>[/code

já tentei assim:
[code]<?
$usr = "root";
$pass = "11041986";
$db = "relatorios";

$con = mysql_connect(localhost,$usr,$pass) or die('não conecto');
mysql_select_db('relatorios')
mysql_query("INSERT INTO fabricas VALUES(NULL,'testes')") or die(mysql_error()); <--linha 8
mysql_close($con);
?>
e assim :
<?
$usr = "root";
$pass = "11041986";
$db = "relatorios";

$con = mysql_connect(localhost,$usr,$pass) or die('não conecto');
mysql_select_db('relatorios')
$query = "INSERT INTO fabricas ('id,'fabrica')VALUES(NULL,'testes')" or die(mysql_error()); <-- linha 8, isso indica que o problema ta na sintaxe, mais qual é o erro >.<
mysql_query($query);
mysql_close($con);
?>

simplesmente não escreve no bd, mas tmb n aparece nada com o mysql_error(); só com o display_errors = On no php.ini, que dai aparece isso:

Parse error: syntax error, unexpected T_STRING in C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\Vendas\cadastrafabrica.php on line 8

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
o erro ta na linha de cima você naoo pois ; em mysql_select_db('relatorios')

vlw xD, mas agora o erro é assim :

<?
$usr = "root";
$pass = "11041986";
$db = "relatorios";

$con = mysql_connect(localhost,$usr,$pass);
mysql_select_db('relatorios');
$query = "INSERT INTO fabricas VALUES(NULL,'testes')";
mysql_query($query);
mysql_close($con);
?>

erro: Notice: Use of undefined constant localhost - assumed 'localhost' in C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\Vendas\cadastrafabrica.php on line 6

aew, eskece, consgui, foi só coloca localhost entre ' ' que deu, vlwzããããããããããão

Link para o comentário
Compartilhar em outros sites

  • 0

Boa Tarde, não sei se lugar certo, sou novo aqui XD e em PHP desculpe, alguma pergunta noob, mas ao invés abrir novo tópico pensei usar mesmo.

Estou com um alerta parecido do Scripter, Warning: mysql_select_db() expects parameter 2 to be resource, object given in C:\wamp\www\controle-frotas\conexao.php on line 10

Se comento minha linha do código $teste = mysql_select_db($database,$conexao); o alerta some lógico mas não grava no banco de dados. Já revisei o código, verifiquei em outros fóruns, tópicos semelhantes, testeis outros formatos de conexão.

A ideia minha é criar um formulário, salvar no banco de dados e depois realizar consulta.

Abaixo o config.php

<?php 
//codigo de conexao ao banco
//error_reporting (E_ALL & ~ E_NOTICE & ~ E_DEPRECATED);

$hostname 	= 'localhost';
$user 		= 'root';
$password 	= '';
$database 	= 'controle_frotas';
$conexao 	= mysqli_connect($hostname,$user,$password);
$teste		= mysql_select_db($database,$conexao);

//criei a condicao para teste de alerta
if (!$conexao or !$teste) {
	print"Falha na conexao com Banco de Dados";
}

 ?>

Para salvar no banco criei o processa.php

<?php 

include_once("conexao.php");

$nome 			=	isset($_POST['nome'])?$_POST['nome']:null;
$tipo_veiculo 	= 	isset($_POST['tipo_veiculo'])?$_POST['tipo_veiculo']:null;
$placa_veiculo 	= 	isset($_POST['placa_veiculo'])?$_POST['placa_veiculo']:null;
$data_cadastro 	= 	isset($_POST['data_cadastro'])?$_POST['data_cadastro']:null;
$hora_ini 		=	isset($_POST['hora_ini'])?$_POST['hora_ini']:null;
$hora_fim 		=	isset($_POST['horafim'])?$_POST['hora_fim']:null;
$observacao 	=	isset($_POST['observacao'])?$_POST['observacao']:null;

//segui de um tutorial de outro forum para verificar se estava enviando os dados
echo $nome;
echo "<br/>";
echo $tipo_veiculo;
echo "<br/>";
echo $placa_veiculo;
echo "<br/>";
echo $data_cadastro;
echo "<br/>";

$sql = "INSERT INTO cadastro (nome,tipo_veiculo,placa_veiculo,data_cadastro,hora_ini,hora_fim,observacao) values ('$nome','$tipo_veiculo','$placa_veiculo','$data_cadastro','$hora_ini','$hora_fim','$observacao')";
$salvar = mysqli_query($sql,$conexao) or die("ocorreu um erro e seus registros não foram inseridos");

mysqli_close($conexao);

 ?>

 

Meu formulário index.php

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>Controle de Frotas</title>
	<link rel="stylesheet" href="_css/estilo.css">
	<script type="text/javascript" src="js/validacao.js"></script>
</head>
<body>
	<div class="container">
		<nav>
			<ul class="menu">
			<a href="index.php"><li>Cadastro</li><a/>
			<a href="consultas.php"><li>Consultas</li><a/>
		</ul>
		</nav>
		<section>
			<h1>Cadastro de Veiculos e Hora</h1>
		    <form method="post" action="processa.php">
		    	  <br/><br/>
		    	  Nome Motorista<br/>
		    	  <input type="text" name"nome" class="campo" maxlength="40" required autofocus><br/>
		    	  Tipo de Veiculo<br/>
		    	  <input type="text" name="tipo_veiculo" class="campo" maxlength="40" required autofocus><br/>
		    	  Placa do Veiculo<br/>
		    	  <input type="text" name="placa_veiculo" class="campo" maxlength="7" required autofocus><br/>
		    	  Data<br/>
		    	  <input type="text" name="data_cadastro" class="campo" required autofocus><br/>
		    	  Hora Inicial<br/>
		    	  <input type="text" name="hora_ini" class="campo" required autofocus><br/>
		    	  Hora Final<br/>
		    	  <input type="text" name="hora_fim" class="campo" required autofocus><br/>
		    	  Observação<br/>
		    	  <textarea name="obs" class="observacao" id="texto"></textarea><br/>
		    	  <input type="submit" value="Cadastrar" class="btn" >
		    	  <input type="reset" value="Limpar" class="btn">
		    </form>
		</section>
	</div>
</body>
</html>

Já testei várias ideias e modifiquei o código, não consegui entender ainda por que não realiza a inserção no banco, abaixo segue também o banco, acredito que não seja este, mas por via das dúvidas. O que poderia ser está causando o erro? ta depreciado a função?

CREATE TABLE `cadastro` (
	`codigo` INT(11) NOT NULL AUTO_INCREMENT,
	`nome` VARCHAR(40) NOT NULL,
	`tipo_veiculo` VARCHAR(50) NOT NULL,
	`placa_veiculo` VARCHAR(7) NOT NULL,
	`data_cadastro` DATE NOT NULL,
	`hora_ini` TIME NOT NULL,
	`hora_fim` TIME NOT NULL,
	`observacao` VARCHAR(255) NULL DEFAULT NULL,
	PRIMARY KEY (`codigo`),
	UNIQUE INDEX `placa_veiculo` (`placa_veiculo`)
)
COLLATE='utf8_general_ci'
ENGINE=MyISAM
;

Grato pela ajuda desde já.

Link para o comentário
Compartilhar em outros sites

  • 0

Olá, segue sugestão:

<?php

// variáveis para conexão com banco de dados ONLINE
$host = 'aws.mysql.com.br';
$user = 'admin@admin.com';
$password = 'admin';
$Database = 'controle_frotas';

// verificar se está em LOCALHOST
if (preg_match('/^(localhost|was)/', $_SERVER['SERVER_NAME'])) {
// variáveis para conexão em LOCALHOST
   $host = 'localhost';   // define o host do banco de dados
   $user = 'root';            // user do banco de dados
   $password = '';         // senha do banco de dados
   $Database = 'controle_frotas';  // nome do banco de dados
}
// estabelecer conexão com o mysql
$sqli = new mysqli($host, $user, $password);

// verificar se houve erro na conexão
if ($sqli->connect_error) {
   // se houve erro, mostra erro na tela
   die("<p><b>Erro!</b> Falha na conexão:<br>$sqli->connect_error</p>");
}
// alterar o tipo de codificação da conexão com o banco de dados,  para utf8
if (!$sqli->set_charset('utf8')) {
   die("<p>O charset não é utf8: $sqli->error</p>");
}

// se não abrir o banco de dados para trabalhar
if (!$sqli->select_db($Database)) {
   die("<p class='error'><b>Erro!</b> Não foi possível abrir o banco de dados: <b>$Database</b><br>$sqli->error</p>");
}
<?php

include_once 'Models/Connect.php';

if (sizeof($_POST)) {
      
   // mostrar o que foi postado na tela:
   echo '<pre>Foi postado:<br>';
   print_r($_POST);
   echo '</pre>';

   $campos = implode(', ', array_keys($_POST));
   
   $valores = implode("', '", $_POST);
   
   // montar a query de inserção
   $query = "INSERT INTO cadastro ($campos) values ('$valores')";
   
   // mostrar a query montada na tela:
   echo '<pre>Query:<br>';
   print_r($query);
   echo '</pre>';
   
   // executar a query:
   $sqli->query($query);
   
   // verificar se houve alguma falha na execução da query
   if ($sqli->error) {
      echo '<p><b>Falha ao executar a query</b><br>' . $sqli->error.'</p>';
   } else {
      echo '<p>Inserção efetuada com sucesso!</p>';
   }
} else {
   echo '<p><b>Warning!</b> Nada foi postado</p>';
}
<!DOCTYPE html>
<html>
   <head>
      <meta charset="utf-8">
      <title>Controle de Frotas</title>
      <link rel="stylesheet" href="_css/estilo.css">
      <script type="text/javascript" src="js/validacao.js"></script>
   </head>
   <body>
      <div class="container">
         <nav>
            <ul class="menu">
               <a href="index.php"><li>Cadastro</li></a>
               <a href="consultas.php"><li>Consultas</li></a>
            </ul>
         </nav>
         <section>
            <h1>Cadastro de Veiculos e Hora</h1>
            <form method="post" action="processa.php">
               <br><br>
               Nome Motorista<br>
               <input type="text" name="nome" class="campo" maxlength="40" required autofocus><br>
               Tipo de Veiculo<br>
               <input type="text" name="tipo_veiculo" class="campo" maxlength="40" required><br>
               Placa do Veiculo<br>
               <input type="text" name="placa_veiculo" class="campo" maxlength="7" required><br>
               Data<br>
               <input type="date" name="data_cadastro" class="campo" required><br>
               Hora Inicial<br>
               <input type="time" name="hora_ini" class="campo" required><br>
               Hora Final<br>
               <input type="time" name="hora_fim" class="campo" required><br>
               Observação<br>
               <textarea name="observacao" class="observacao" id="texto"></textarea><br>
               <input type="submit" value="Cadastrar" class="btn" >
               <input type="reset" value="Limpar" class="btn">
            </form>
         </section>
      </div>
   </body>
</html>
drop schema if exists controle_frotas;
create schema controle_frotas;
use controle_frotas;


CREATE TABLE cadastro (
   codigo INT(11) AUTO_INCREMENT PRIMARY KEY,
   nome VARCHAR(40) NOT NULL,
   tipo_veiculo VARCHAR(50) NOT NULL,
   placa_veiculo VARCHAR(7) unique,
   data_cadastro DATE NOT NULL,
   hora_ini TIME NOT NULL,
   hora_fim TIME NOT NULL,
   observacao VARCHAR(255) NULL DEFAULT NULL
)ENGINE=MyISAM;

Só lembrando que os dados postados precisam ser tratados, antes de enviá-los ao banco de dados

Editado por wash
Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado Wash, muito bom o que passou, levarei algumas idéias de melhorias para o fonte :D, descobri com um amigo o que causava a conexão, era inversão das variáveis na conexão $consulta      = mysqli_query($conexao, $sql); estava mysqli_query($sql,$conexao); 

Ah já tratei as datas com uma função, agora to com um novo problema mas vou me matando aqui, acho que é simples hehehe.

 

Muiito Obrigado, estudarei o que passou.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...