Foros del Web » Programando para Internet » PHP »

Error al Modificar base de datos

Estas en el tema de Error al Modificar base de datos en el foro de PHP en Foros del Web. Hola tengo un pequeño problema para que la la web detecte el usuario logueado y le sume unos puntos en la tabla mysql no consigo ...
  #1 (permalink)  
Antiguo 02/06/2012, 14:59
 
Fecha de Ingreso: diciembre-2008
Mensajes: 32
Antigüedad: 15 años, 4 meses
Puntos: 1
Error al Modificar base de datos

Hola tengo un pequeño problema para que la la web detecte el usuario logueado y le sume unos puntos en la tabla mysql

no consigo encontrar el error este codigo :
Parse error: syntax error, unexpected T_VARIABLE in C:\xampp\htdocs\pages\prueba.php on line 21


Código:
<?php account::isNotLoggedIn(); ?>
<div class='box_two_title'>texto</div>
<?php
connect::selectDB('nombrebasededatos');
while($row = mysql_fetch_assoc($result)) 
{
         $acct_id = account::getAccountID($_SESSION['cw_user']);
		 $craft_db = $row['nombrebasededatos'];
		          	
		connect::selectDB($craft_db);
		$result = mysql_query('SELECT account_data FROM nombredebasededatos WHERE account='.$acct_id);
		while($row = mysql_fetch_assoc($result)) {
	?>
		
<?
account::isNotLoggedIn();
$acct_id = account::getAccountID($_SESSION['cw_user']
$sql = "UPDATE account_data SET dp = dp + 100 WHERE id = ".$acct_id;
mysql_query( $sql, $db );
<?




este otro es un codigo que esta funcionando perfectamente en la web por si os puede facilitar la tarea al encontrar el error:

Código:
<?php account::isNotLoggedIn(); ?>
<div class='box_two_title'>TEXTO</div>

<?php 

$service = "teleport";

if($GLOBALS['service'][$service]['price']==0) 
      echo '<span class="attention">texto</span>';
else
{ ?>
<span class="attention">COSTE
<?php 
echo $GLOBALS['service'][$service]['price'].' '.website::convertCurrency($GLOBALS['service'][$service]['currency']); ?></span>
<?php 
if($GLOBALS['service'][$service]['currency']=="vp")
	echo "<span class='currency'>Vote Points: ".account::loadVP($_SESSION['cw_user'])."</span>";
elseif($GLOBALS['service'][$service]['currency']=="dp")
	echo "<span class='currency'>".$GLOBALS['donation']['coins_name'].": ".account::loadDP($_SESSION['cw_user'])."</span>";
} ?>
<hr/>
<h3 id="choosechar">texto</h3> 
<?php
connect::selectDB('webdb');
$result = mysql_query('SELECT char_db,name FROM realms ORDER BY id ASC');
while($row = mysql_fetch_assoc($result)) 
{
         $acct_id = account::getAccountID($_SESSION['cw_user']);
		 $realm = $row['name'];
		 $char_db = $row['char_db'];
		          	
		connect::selectDB($char_db);
		$result = mysql_query('SELECT name,guid,gender,class,race,level,online FROM characters WHERE account='.$acct_id);
		while($row = mysql_fetch_assoc($result)) {
	?>
    <div class='charBox' style="cursor:pointer;" id="<?php echo $row['guid'].'*'.$char_db; ?>"<?php if ($row['online'] != 1) { ?> 
    onclick="selectChar('<?php echo $row['guid'].'*'.$char_db; ?>',this)"<?php } ?>>
    <table>
	        <tr>
                <td>
                <?php if(!file_exists('styles/global/images/portraits/'.$row['gender'].'-'.$row['race'].'-'.$row['class'].'.gif'))
				       echo '<img src="styles/'.$GLOBALS['template']['path'].'/images/unknown.png" />';
					   else 
					   { ?>
                <img src="styles/global/images/portraits/
					<?php echo $row['gender'].'-'.$row['race'].'-'.$row['class']; ?>.gif" border="none">
                    <?php } ?>
                </td>
                
                <td><h3><?php echo $row['name']; ?></h3>
                    Level <?php echo $row['level']." ".character::getRace($row['race'])." ".character::getGender($row['gender']).
                    " ".character::getClass($row['class']); ?><br/>
                    Realm: <?php echo $realm; ?>
                    <?php if($row['online']==1)
                   echo "<br/><span class='red_text'>texto.</span>";?>
                </td>
            </tr>                         
	</table>
</div>  
	<?php } ?>
<br/>&nbsp;
    <span id="teleport_to" style="display:none;">  
     
    </span>               
<?php
}
?>
  #2 (permalink)  
Antiguo 02/06/2012, 15:07
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 1 mes
Puntos: 192
Respuesta: Error al Modificar base de datos

¿El código que pusiste está completo? Veo que pusiste un <? en lugar de ?> al final del archivo.
__________________
nahueljose.com.ar
  #3 (permalink)  
Antiguo 02/06/2012, 15:51
 
Fecha de Ingreso: diciembre-2008
Mensajes: 32
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Error al Modificar base de datos

Si, el codigo esta completo, modifique ese pequeño error pero me sigue dando el mismo error de antes
  #4 (permalink)  
Antiguo 02/06/2012, 16:03
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 1 mes
Puntos: 192
Respuesta: Error al Modificar base de datos

Pero ese código está muy mal, tiene muchos errores de sintáxis. ¿Por qué no lo analizás bien? Ninguno de los dos while's estan cerrados, las etiquetas de php están por todas partes y mal puestas.
__________________
nahueljose.com.ar
  #5 (permalink)  
Antiguo 03/06/2012, 02:55
 
Fecha de Ingreso: diciembre-2008
Mensajes: 32
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Error al Modificar base de datos

Podrias echarme una mano, no se como hacerlo soy novato y no consigo entenderlo bien.
  #6 (permalink)  
Antiguo 03/06/2012, 04:19
Avatar de oscartt67  
Fecha de Ingreso: abril-2012
Ubicación: fonollosa
Mensajes: 481
Antigüedad: 12 años
Puntos: 97
Respuesta: Error al Modificar base de datos

Naahuel lleva razón: tu código contiene errores. Sin entrar en su lógico, te lo dejo corregido de errores. Observa que he cambiado también tu segundo $result por $result2 y $row por $row2.

Código PHP:
<?php account::isNotLoggedIn(); ?>
<div class='box_two_title'>texto</div>
<?php
connect
::selectDB('nombrebasededatos');
while(
$row mysql_fetch_assoc($result)){
     
$acct_id account::getAccountID($_SESSION['cw_user']);
     
$craft_db $row['nombrebasededatos'];
     
/*este segundo bucle, no sé para qué lo haces, ya que
    solo utilizas en el update la variable que sacas de $_SESSION
    y la tienes desde el principio
    ?????????
    */
    
connect::selectDB($craft_db);
    
$result2 mysql_query('SELECT account_data FROM nombredebasededatos WHERE account='.$acct_id);
    while(
$row2 mysql_fetch_assoc($result2)) {
        
account::isNotLoggedIn();
        
$acct_id account::getAccountID($_SESSION['cw_user']);
        
$sql "UPDATE account_data SET dp = dp + 100 WHERE id = ".$acct_id;
        
mysql_query$sql$db );
    }
}
?>
Saludos.
  #7 (permalink)  
Antiguo 03/06/2012, 06:26
 
Fecha de Ingreso: diciembre-2008
Mensajes: 32
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Error al Modificar base de datos

M e sigue dando error en la linea 21 corresponde a "}", gracias por intetar ayudarme os lo agradezco.
  #8 (permalink)  
Antiguo 03/06/2012, 09:32
Avatar de oscartt67  
Fecha de Ingreso: abril-2012
Ubicación: fonollosa
Mensajes: 481
Antigüedad: 12 años
Puntos: 97
Respuesta: Error al Modificar base de datos

pues mirando y mirando el código, no le veo error...seguro que estas ejecutando el código que te posteé?
  #9 (permalink)  
Antiguo 03/06/2012, 09:39
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Error al Modificar base de datos

Sugerencia, kirinvieco: Usa un editor de PHP que tenga herramientas de revisión sintáctica. Algo, por ejemplo, como el NetBeans IDE.
Te ahorrarás consultar por detalles como este.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #10 (permalink)  
Antiguo 03/06/2012, 12:46
 
Fecha de Ingreso: diciembre-2008
Mensajes: 32
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Error al Modificar base de datos

He probado a poner solo el codigo que posteaste y tira error en la linea 21 si se ejecuta sindo redireccionado desde otro sitio de la web.

Con este codigo no da error pero no agrega los datos a la db

Código:
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
<?php account::isNotLoggedIn(); ?>
<div class='box_two_title'>texto</div>
<?php
connect::selectDB('nombredemibase');
while($row = mysql_fetch_assoc($result)){
     $acct_id = account::getAccountID($_SESSION['cw_user']);
     $craft_db = $row['nombredemibase'];
   
    connect::selectDB($craft_db);
    $result2 = mysql_query('SELECT account_data FROM nombredemibase WHERE account='.$acct_id);
    while($row2 = mysql_fetch_assoc($result2)) {
        account::isNotLoggedIn();
        $acct_id = account::getAccountID($_SESSION['cw_user']);
        $sql = "UPDATE account_data SET dp = dp + 100 WHERE id = ".$acct_id;
        mysql_query( $sql, $db );
    }
}
?> 
    </body>
</html>

Última edición por kirinvieco; 03/06/2012 a las 13:07
  #11 (permalink)  
Antiguo 04/06/2012, 13:40
 
Fecha de Ingreso: diciembre-2008
Mensajes: 32
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Error al Modificar base de datos

Nada no consigo que identifique al usuario con el id que se encuentra en la base de datos,
Tienes otra idea oscartt67?¿
  #12 (permalink)  
Antiguo 04/06/2012, 15:07
Avatar de oscartt67  
Fecha de Ingreso: abril-2012
Ubicación: fonollosa
Mensajes: 481
Antigüedad: 12 años
Puntos: 97
Respuesta: Error al Modificar base de datos

Doy por supuesto que este trozo de código no es todo, que antes te conectas a la db y cargas $result. Es decir, que tendrás el equivalente a lo que hacias antes:
Código PHP:
connect::selectDB('webdb');
$result mysql_query('SELECT char_db,name FROM realms ORDER BY id ASC'); 
  #13 (permalink)  
Antiguo 05/06/2012, 12:13
 
Fecha de Ingreso: diciembre-2008
Mensajes: 32
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Error al Modificar base de datos

Oscart quizas este codigo t pueda iluminar mas modifica el mismo capo pero con la variable $globals

yo no quiero utilizar esa variable solo colocar 100 y que se ejecute

Código:
<?php
define('INIT_SITE', TRUE);
require('../configuration.php');
require('connect.php');

$send = 'cmd=_notify-validate';

 foreach ($_POST as $key => $value)
 {
     if(get_magic_quotes_gpc() == 1)
         $value = urlencode(stripslashes($value));
     else
         $value = urlencode($value);
		 
     $send .= "&$key=$value";
 }
 
 $head .= "POST /cgi-bin/webscr HTTP/1.0\r\n";
 $head .= "Content-Type: application/x-www-form-urlencoded\r\n";
 $head .= 'Content-Length: '.strlen($send)."\r\n\r\n";
 $fp = fsockopen ('www.paypal.com', 80, $errno, $errstr, 30);
 
 connect::selectDB('webdb');

 if ($fp !== false)
 {
    fwrite($fp, $head.$send);
    $resp = stream_get_contents($fp);
	
    $resp = end(explode("\n", $resp));
	 
	$item_number = mysql_real_escape_string($_POST['item_number']);
	$item_name = mysql_real_escape_string($item_number['0']);
	$mc_gross = mysql_real_escape_string($_POST['mc_gross']);
	$txn_id = mysql_real_escape_string($_POST['txn_id']);
	$payment_date = mysql_real_escape_string($_POST['payment_date']);
	$first_name = mysql_real_escape_string($_POST['first_name']);
	$last_name = mysql_real_escape_string($_POST['last_name']);
	$payment_type = mysql_real_escape_string($_POST['payment_type']);
	$payer_email = mysql_real_escape_string($_POST['payer_email']);
	$address_city = mysql_real_escape_string($_POST['address_city']);
	$address_country = mysql_real_escape_string($_POST['address_country']);
	$custom = mysql_real_escape_string($_POST['custom']);
	$mc_fee = mysql_real_escape_string($_POST['mc_fee']);
	$fecha = date("Y-m-d");
	$payment_status = mysql_real_escape_string($_POST['payment_status']);
	$reciever = mysql_real_escape_string($_POST['receiver_email']);		 
	
if ($resp == 'VERIFIED')
{
	if ($reciever!=$GLOBALS['donation']['paypal_email'])
		exit();
			
	mysql_query("INSERT INTO payments_log(userid,paymentstatus,buyer_email,firstname,lastname,city,country,mc_gross,mc_fee,itemname,paymenttype,
	paymentdate,txnid,pendingreason,reasoncode,datecreation) values ('".$custom."','".$payment_status."','".$payer_email."',
	'".$first_name."','".$last_name."','".$address_city."','".$address_country."','".$mc_gross."',
	'".$mc_fee."','".$item_name."','".$payment_type."','".$payment_date."','".$txn_id."','".$pending_reason."',
	'".$reason_code."','".$fecha."')");
				
	$to = $payer_email;
	$subject = $GLOBALS['donation']['emailResponse'];
	$message = 'Hello '.$first_name.'
	We would like to inform you that the recent payment you did was successfull.
	
	------------------------------------------
	Payment email: '.$payer_email.'
	Payment amount: '.$mc_gross.'
	Buyer name: '.$first_name.' '.$last_name.'
	Payment date: '.$payment_date.'
	Account ID: '.$custom.'
	------------------------------------------
	This payment is saved in our logs.
	
	Thank you, the Management.
	';
	$headers = 'From: '.$GLOBALS['default_email'].'' . "\r\n" .
		'X-Mailer: PHP/' . phpversion();
	
	if ($GLOBALS['donation']['emailResponse']==true) 
	{
		mail($to, $subject, $message, $headers); 
		if ($GLOBALS['donation']['sendResponseCopy']==true)
			mail($GLOBALS['donation']['copyTo'], $subject, $message, $headers); 
	}

	$res = fgets ($fp, 1024);
	if($payment_status=="Completed")
	{
		if($GLOBALS['donation']['donationType']==2)
		{
			mysql_query("INSERT INTO payments_log(userid,paymentstatus,buyer_email,firstname,lastname,mc_gross,paymentdate,datecreation) values ('".$custom."',
			'".$mc_gross."','".$payer_email."','".$first_name."','".$last_name."','".$mc_gross."','".$payment_date."','".$fecha."')");
			
			for ($row = 0; $row < count($GLOBALS['donationList']); $row++)
			{
				$coins = $mc_gross;
				if($coins == $GLOBALS['donationList'][$row][2])
					mysql_query("UPDATE account_data SET dp=dp + ".$GLOBALS['donationList'][$row][1]." WHERE id='".$custom."'");
			}
		}
		elseif($GLOBALS['donation']['donationType']==2)
		{
			$coins = ceil($mc_gross);
			mysql_query("UPDATE account_data SET dp=dp + ".$coins." WHERE id='".$custom."'");
		}
				
 }
}
else if ($resp == 'INVALID')
{
	if($GLOBALS['donation']['donationType']==2)
	{
		 mysql_query("INSERT INTO payments_log(userid,paymentstatus,buyer_email,firstname,
		 lastname,mc_gross,paymentdate,datecreation) values ('".$custom."','".$payment_status." - INVALID FUUUU ".$_POST['mc_gross']."','".$payer_email."',
		 '".$first_name."','".$last_name."','".$mc_gross."','".$payment_date."','".$fecha."')");
	}
	
 mail($GLOBALS['donation']['copyTo'],"INVALID Donation","A payment was invalid. Information is shown below: <br/>
		  User ID : ".$custom."
		  Buyer Email: ".$payer_email."
		  Amount: ".$mc_gross." EUR
		  Date: ".$payment_date."
		  First name: ".$first_name."
		  Last name: ".$last_name."
		  ","From: ".$GLOBALS['donation']['responseFrom']."");  
		  
		  mail($payer_email,"Hello there. Unfortunately, the latest payment you did was invalid. Please contact us for more information. 
		  
		  Best regards.
		  The Management");
	
		 mysql_query("INSERT INTO payments_log(userid,paymentstatus,buyer_email,firstname,lastname,mc_gross,paymentdate,datecreation) values ('".$custom."','".$payment_status." - INVALID','".$payer_email."','".$first_name."','".$last_name."','".$mc_gross."','".$payment_date."','".$fecha."')");
    }
 }

fclose ($fp); 
 
?>
  #14 (permalink)  
Antiguo 06/06/2012, 03:32
Avatar de oscartt67  
Fecha de Ingreso: abril-2012
Ubicación: fonollosa
Mensajes: 481
Antigüedad: 12 años
Puntos: 97
Respuesta: Error al Modificar base de datos

mirando por encima, veo que en el último código que posteas, enciarres id entre comillas, y en el código actual no. Normalmente, id es numérico y eso no afectaria, pero si id es un texto, ahí hay un error.
Código PHP:
        $sql "UPDATE account_data SET dp = dp + 100 WHERE id = '$acct_id'"
Saludos

Etiquetas: modificar, mysql, sql, tabla, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:38.