Ir para conteúdo

POWERED BY:

Arquivado

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

Robz Lancaster

[PHP] INSERT Error

Recommended Posts

Bom Pessoal fiz um Sisteminha Aqui ele ta funcionando , o unico problema é que ele Não ta insirindo no Banco dados Caso Não Haja um valor:

 

<?php
if(isset($_POST['login'])) {
include("config/connect.php");
			extract($_POST);
			$acha = mysql_query("SELECT `account_id` FROM `login` WHERE `userid`='$login'") or die("fail");
				$resp = mysql_fetch_assoc($acha);
				extract($resp);	
				if(mysql_num_rows($acha) == 1)
{
mysql_query("UPDATE global_reg_value SET value =value+".$_POST['Cash']." WHERE account_id = ".$account_id."");
header("Location:logou.php");
}else{				
				mysql_query("INSERT INTO `global_reg_value` (`str`,`value`,`type`,`account_id`) VALUES ('#CASHPOINTS',".$_POST['Cash'].",'2',".$account_id")") or die ("Fail insert into");
				header("Location:logou.php");				
}
}
?>

 

Oque está errado ?

Ele Ta atualizando normal mas Não ta insirindo no Banco de dados Caso não haja um valor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem Esse é o novo código:

 

<?php
if(isset($_POST['login'])) {
include("config/connect.php");
			extract($_POST);
			$acha = mysql_query("SELECT `account_id` FROM `login` WHERE `userid`='$login'") or mysql_error();
				$resp = mysql_fetch_assoc($acha);
				extract($resp);	
				if(mysql_num_rows($acha) == 1)
{
mysql_query("UPDATE global_reg_value SET value =value+".$_POST['Cash']." WHERE account_id = ".$account_id."");
header("Location:logou.php");
}else{				
				mysql_query("INSERT INTO `global_reg_value` (`str`,`value`,`type`,`account_id`) VALUES ('#CASHPOINTS',".$_POST['Cash'].",'2',".$account_id")") or mysql_error();
				header("Location:logou.php");				
}
}
?>

 

Ta Dando esse erro:

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\Arquivos de programas\EasyPHP-5.3.6.0\www\HCP\add_cash.php on line 13

Compartilhar este post


Link para o post
Compartilhar em outros sites

Testa ai:

 

<?php

if (isset ($_POST['login'])) {
include ("config/connect.php");
extract($_POST);
$acha = mysql_query("SELECT `account_id` FROM `login` WHERE `userid`='$login'") or mysql_error();
$resp = mysql_fetch_assoc($acha);
extract($resp);
if (mysql_num_rows($acha) == 1) {
	mysql_query("UPDATE global_reg_value SET value =value+" . $_POST['Cash'] . " WHERE account_id = " . $account_id . "");
	header("Location:logou.php");
} else {
	mysql_query("INSERT INTO `global_reg_value` (`str`,`value`,`type`,`account_id`) VALUES ('#CASHPOINTS'," . $_POST['Cash'] . ",'2'," . $account_id .")") or mysql_error();
	header("Location:logou.php");
}
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, verifica como está montando sua query, e testa manualmente se está funcionando, observe que adicionei um echo para exibir sua query.

 

<?php
if (isset ($_POST['login'])) {
       include ("config/connect.php");
       extract($_POST);
       $acha = mysql_query("SELECT `account_id` FROM `login` WHERE `userid`='$login'") or mysql_error();
       $resp = mysql_fetch_assoc($acha);
       extract($resp);
       if (mysql_num_rows($acha) == 1) {
               mysql_query("UPDATE global_reg_value SET value =value+" . $_POST['Cash'] . " WHERE account_id = " . $account_id . "");
               header("Location:logou.php");
       } else {
               $query = "INSERT INTO `global_reg_value` (`str`,`value`,`type`,`account_id`) VALUES ('#CASHPOINTS'," . $_POST['Cash'] . ",'2'," . $account_id .")";
               echo $query;
               if (! mysql_query($query)) {
    			die(mysql_error());
			}
               header("Location:logou.php");
       }
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Silêncio, silêncio, minhas anteninhas de vinil estão detectando a presença de perigo AQUI:

extract($_POST);

 

JAMAIS faça isso. Está expondo seu sistema a uma grave falha de segurança.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

é isso que ta fazendo não insirir dados ?

 

Se for como posso arrumar ?

 

talvez seja isso sim, faça assim:

 

<?php
  $variavel = $_POST['valor_do_campo_formulario'];
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

$query = "INSERT INTO `global_reg_value` (`str`,`value`,`type`,`account_id`) VALUES ('#CASHPOINTS'," . $_POST['Cash'] . ",'2'," . $account_id .")";

 

$account_id só existe se tiver no mínimo 1 row no result....

 

Dê um

echo $query

e veja a saída...

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php
if(isset($_POST['login'])) {
       include("config/connect.php");
                               extract($_POST);
							$valor = $_POST['Cash'];
                               $acha = mysql_query("SELECT `account_id` FROM `login` WHERE `userid`='$login'") or mysql_error();
                                       $resp = mysql_fetch_assoc($acha);
                                       extract($resp); 
                                       if(mysql_num_rows($acha) == 1)
{
       mysql_query("UPDATE global_reg_value SET value =value+".$valor." WHERE account_id = ".$account_id."");
       echo $acha; //usei echo aqui
}else{                          
                                       mysql_query("INSERT INTO `global_reg_value` (`str`,`value`,`type`,`account_id`) VALUES ('#CASHPOINTS',".$valor.",'2',".$account_id.")") or mysql_error();
                                       header("Location:logou.php");                           
	}
}
?>

Então eu usei echo no Atualizar e ele retorno isso: Resource id #5

 

E no no echo De insirir:

<?php
if(isset($_POST['login'])) {
       include("config/connect.php");
                               extract($_POST);
							$valor = $_POST['Cash'];
                               $acha = mysql_query("SELECT `account_id` FROM `login` WHERE `userid`='$login'") or mysql_error();
                                       $resp = mysql_fetch_assoc($acha);
                                       extract($resp); 
                                       if(mysql_num_rows($acha) == 1)
{
       mysql_query("UPDATE global_reg_value SET value =value+".$valor." WHERE account_id = ".$account_id."");

}else{                          
                                       mysql_query("INSERT INTO `global_reg_value` (`str`,`value`,`type`,`account_id`) VALUES ('#CASHPOINTS',".$valor.",'2',".$account_id.")") or mysql_error();
                                      echo $acha; //usei echo aqui                          
	}
}
?>

 

Nesse Do Insirir Ele Não retorna nada a Tela fica Branca.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, vamos lá, primeiramente, isso é errado:

echo $acha; //usei echo aqui  

 

O Seu '$acha', não é uma string, é uma resource, provavelmente, você deve ter visto uma 'Resource #3'

Se você quer debugar a query, você faz o seguinte:

$query = "SELECT `account_id` FROM `login` WHERE `userid`='$login'";
var_dump( $query );
$acha = mysql_query( $query ) or die( mysql_error() );

 

Poste o resultado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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