Foros del Web » Programando para Internet » PHP »

que error tiene mi codigo?????

Estas en el tema de que error tiene mi codigo????? en el foro de PHP en Foros del Web. hola amigos forerosdelweb, tengo un usuario que tiene en la tabla inventario la siguiente linea /user / inv1 / inv2 / inv3 / inv4 / ...
  #1 (permalink)  
Antiguo 18/08/2008, 14:18
Avatar de chwc  
Fecha de Ingreso: julio-2008
Ubicación: Buenos Aires ! :D
Mensajes: 814
Antigüedad: 16 años, 3 meses
Puntos: 103
que error tiene mi codigo?????

hola amigos forerosdelweb, tengo un usuario que tiene en la tabla inventario la siguiente linea

/user / inv1 / inv2 / inv3 / inv4 / inv5 /
-----------------------------------------------
/juan/ 7 / 2 / 4 / 6 / / <--- aqui no hay nada

este es el codigo:
Código PHP:
<?
include ("cabecera.php");
echo 
"<h1> Meteorito gigante xd.</h1>";
if (isset(
$_SESSION['s_username'])) {
$inventariqueri mysql_query("SELECT inv1,inv2,inv3,inv4,inv5 FROM inventario WHERE user='$usuarioo'");
$rowc mysql_fetch_array($inventariqueri);
$inv1 $rowc['inv1'];
$inv2 $rowc['inv2'];
$inv3 $rowc['inv3'];
$inv4 $rowc['inv4'];
$inv5 $rowc['inv5'];

$otherqueri mysql_query("SELECT id FROM objetos WHERE id='$inv1'");
$rowc mysql_fetch_array($otherqueri);
$nombredel $rowc['nombre'];

if (empty(
$inv1)) {
$vacio inv1;
}elseif (empty(
$inv2)){
$vacio inv2;
}elseif (empty(
$inv3)){ 
$vacio inv3;
}elseif (empty(
$inv4)){ 
$vacio inv4;
}elseif (empty(
$inv5)){ 
$vacio inv5;
}else{
$vacio 0;
}
$valor=rand(1,8);
if (
$valor<=&& $vacio!=1){
$querymm="update inventario set '$vacio'='$valor' where user='".$_SESSION["s_username"]."'";
mysql_query($querymm) or die(mysql_error());
$otherqueri mysql_query("SELECT nombre FROM objetos WHERE id='$valor'");
$rowc mysql_fetch_array($otherqueri);
$nombredel $rowc['nombre'];
echo 
"<p>felicidades! has encontrado:".$nombredel." y se te ha agreguado a tu inventario</p>";
}
if (
$valor>=4){
echo 
"Luego de una gran busqueda, no has encontrado nada. vuelve luego xd";
}elseif (
$vacio==0){
echo 
"tu inventario esta lleno, elimina algunas cosas xd";
}
}else{
echo 
"debes iniciar sesion xd";
}
include (
"pie.php");
?>
el problema es que $vacio siempre lo identifica como 0.

¿por que piensa que $inv5 no esta vacio?
  #2 (permalink)  
Antiguo 18/08/2008, 14:25
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: que error tiene mi codigo?????

Hola chwc,

Te faltan todos los $ en tus inv1, inv2...

Saludos.
  #3 (permalink)  
Antiguo 18/08/2008, 14:29
Avatar de chwc  
Fecha de Ingreso: julio-2008
Ubicación: Buenos Aires ! :D
Mensajes: 814
Antigüedad: 16 años, 3 meses
Puntos: 103
Respuesta: que error tiene mi codigo?????

ya entendi.
tendria que ser haci
Código PHP:
if (empty($inv1)) {
$vacio 1;
}elseif (empty(
$inv2)){
$vacio 2;
}elseif (empty(
$inv3)){ 
$vacio 3;
}elseif (empty(
$inv4)){ 
$vacio 4;
}elseif (empty(
$inv5)){ 
$vacio 5;
}else{
$vacio 0;

  #4 (permalink)  
Antiguo 18/08/2008, 14:32
Avatar de Taldreakan  
Fecha de Ingreso: julio-2008
Mensajes: 128
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: que error tiene mi codigo?????

Seguramente en la definicion de tu base de datos los campos inv1, inv2,... ect tienen la clausula NOT NULL, para que te guarde campos vacios esta clausula NULL debe estar en YES

POSDATA: Con eso podrias evitarte esta parte de codigo en la que faltan los $.
Código PHP:
if (empty($inv1)) { 
$vacio inv1
}elseif (empty(
$inv2)){ 
$vacio inv2
}elseif (empty(
$inv3)){  
$vacio inv3
}elseif (empty(
$inv4)){  
$vacio inv4
}elseif (empty(
$inv5)){  
$vacio inv5
}else{ 
$vacio 0

  #5 (permalink)  
Antiguo 18/08/2008, 14:35
Avatar de chwc  
Fecha de Ingreso: julio-2008
Ubicación: Buenos Aires ! :D
Mensajes: 814
Antigüedad: 16 años, 3 meses
Puntos: 103
Respuesta: que error tiene mi codigo?????

he cambiado todo asi:
Código PHP:
<?
include ("cabecera.php");
echo 
"<h1> Meteorito gigante xd.</h1>";
if (isset(
$_SESSION['s_username'])) {
$inventariqueri mysql_query("SELECT inv1,inv2,inv3,inv4,inv5 FROM inventario WHERE user='$usuarioo'");
$rowc mysql_fetch_array($inventariqueri);
$inv1 $rowc['inv1'];
$inv2 $rowc['inv2'];
$inv3 $rowc['inv3'];
$inv4 $rowc['inv4'];
$inv5 $rowc['inv5'];

$otherqueri mysql_query("SELECT id FROM objetos WHERE id='$inv1'");
$rowc mysql_fetch_array($otherqueri);
$nombredel $rowc['nombre'];

if (empty(
$inv1)) {
$vacio 1;
$campo inv1;
}elseif (empty(
$inv2)){
$vacio 1;
$campo inv2;
}elseif (empty(
$inv3)){ 
$vacio 1;
$campo inv3;
}elseif (empty(
$inv4)){ 
$vacio 1;
$campo inv4;
}elseif (empty(
$inv5)){ 
$vacio 1;
$campo inv5;
}else{
$vacio 0;

$valor=rand(1,8);
if (
$valor<=&& $vacio==1){
$querymm="update inventario set '$campo'='$valor' where user='".$_SESSION["s_username"]."'";
mysql_query($querymm) or die(mysql_error());
$otherqueri mysql_query("SELECT nombre FROM objetos WHERE id='$valor'");
$rowc mysql_fetch_array($otherqueri);
$nombredel $rowc['nombre'];
echo 
"<p>felicidades! has encontrado:".$nombredel." y se te ha agreguado a tu inventario</p>";
}
if (
$valor>=4){
echo 
"Luego de una gran busqueda, no has encontrado nada. vuelve luego xd";
}elseif (
$vacio==0){
echo 
"tu inventario esta lleno, elimina algunas cosas xd";
}
}else{
echo 
"debes iniciar sesion xd";
}
include (
"pie.php");
?>
pero el problema haora es con esta linea
Código PHP:
$querymm="update inventario set '$campo'='$valor' where user='".$_SESSION["s_username"]."'";
mysql_query($querymm) or die(mysql_error()); 
que me da el siguiente error:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''inv5'='1' where user='b'' at line 1
  #6 (permalink)  
Antiguo 18/08/2008, 14:40
Avatar de Taldreakan  
Fecha de Ingreso: julio-2008
Mensajes: 128
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: que error tiene mi codigo?????

Cambia esto:
Código PHP:
if (empty($inv1)) { 
$vacio 1
$campo 'inv1'
}elseif (empty(
$inv2)){ 
$vacio 1
$campo 'inv2'
}elseif (empty(
$inv3)){  
$vacio 1
$campo 'inv3'
}elseif (empty(
$inv4)){  
$vacio 1
$campo 'inv4'
}elseif (empty(
$inv5)){  
$vacio 1
$campo 'inv5'
}else{ 
$vacio 0

  #7 (permalink)  
Antiguo 18/08/2008, 14:42
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: que error tiene mi codigo?????

Por otro lado si quieres poner comillas para el SQL estas deben de ser invertidas (`).

Saludos.
  #8 (permalink)  
Antiguo 18/08/2008, 14:45
Avatar de chwc  
Fecha de Ingreso: julio-2008
Ubicación: Buenos Aires ! :D
Mensajes: 814
Antigüedad: 16 años, 3 meses
Puntos: 103
Respuesta: que error tiene mi codigo?????

gracias talkdream, tema solucionado.
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 13:08.