Foros del Web » Programando para Internet » PHP »

Error en código que no consigo resolver

Estas en el tema de Error en código que no consigo resolver en el foro de PHP en Foros del Web. Saludos. He desarrollado una aplicación web en mi servidor (local) y aparenemente todo bien. Entonces llegó el momento de subirlo al servidor de producción real. ...
  #1 (permalink)  
Antiguo 06/09/2008, 09:36
 
Fecha de Ingreso: agosto-2003
Mensajes: 324
Antigüedad: 20 años, 8 meses
Puntos: 1
Error en código que no consigo resolver

Saludos.
He desarrollado una aplicación web en mi servidor (local) y aparenemente todo bien. Entonces llegó el momento de subirlo al servidor de producción real.
Y entonces ... me encuentro con que me devuelve un error, que por más que miro la documentación no consigo reslver, y por eso que recurra a vosotros.
El error en cuestión que me devuelve el servidor es:

Código:
Modificar Usuario

Warning: mysql_query() [http://www.mysql.com/doc]: 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 '' at line 1 in /home/canalcor/public_html/usuarios/usuariossicm.php on line 140

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/canalcor/public_html/usuarios/usuariossicm.php on line 141
Si miro a página en esa línea ... lo que eso es un código php, con el cual construyo la consulta a la bd. ( la linea 140 sería $result=mysql_query($q,$link);)

Código PHP:
    <?php
    
include("../conex.php");
    
//$link=Conectarse();
    
$q "select * from usuariossic where UsuarioID= ".$UsuarioID;
    
$result=mysql_query($q,$link);
    
$reg mysql_fetch_row($result);
    
?>
La variable $link, viene de un php "vinculado" ... el cual sería:
Código PHP:
<?php
$db_host
='localhost:8889'// Host al que conectar, habitualmente es el ‘localhost’
$db_nombre='nombre'// Nombre de la Base de Datos que se desea utilizar
$db_user='usuario'// Nombre del usuario con permisos para acceder
$db_pass='clave'// Contraseña de dicho usuario
$link=mysql_connect($db_host$db_user$db_pass) or die ("Error conectando a la base de datos.");
$db mysql_select_db($db_nombre ,$link) or die("Error seleccionando la base de datos.");
?>
El error no está en la conexión a la bd, ya que si consulto otras páginas, me devuelven datos.

¿Dónde puedo estar equivocándome?
Gracias de antemano.
  #2 (permalink)  
Antiguo 06/09/2008, 09:40
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 15 años, 11 meses
Puntos: 43
Respuesta: Error en código que no consigo resolver

Debes fijarte si en la DB que estas usando ahora estan todos y cada uno de los campos que tenias local, y con el nombre exacto!

esos errores podrian cocasionarse por la falta de un campo en la consulta, o que el nombre no sea exactamente igual

Suerte!
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #3 (permalink)  
Antiguo 06/09/2008, 09:49
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Respuesta: Error en código que no consigo resolver

Deberías comprobar siempre el resultado al ejecutar un query (mysql_query). Si te da error, utiliza la función mysql_error para saber más del error.
  #4 (permalink)  
Antiguo 06/09/2008, 09:51
 
Fecha de Ingreso: agosto-2003
Mensajes: 324
Antigüedad: 20 años, 8 meses
Puntos: 1
Gracias, pero sí están todos ...comprobado
He solucionado parte, poniendo la construcción d la consulta ...
Código PHP:
$q "select * from usuariossic where UsuarioID='".$UsuarioID."'"
... metiendo entre ' (comillas simple) el $UsuarioID.

Luego .. supongo que en ese servidor, necesitarán especificar entre '' esos datos.

Ahora el problema está en que no me encuentra nada ...

Me explico ...

Si pongo esta línea :

Código PHP:
$q "select * from usuariossic where UsuarioID=15"
.. diagamo "a pelo" el ID que busco ... funciona bien

Pero si "calculo" ese ID ..
Código PHP:
$q "select * from usuariossic where UsuarioID='".$UsuarioID."'"
no me encuentra nada ...
Decir que UsuarioID es tip INT, autoincrement

¿Alguien sabe?

Última edición por GatorV; 06/09/2008 a las 10:17
  #5 (permalink)  
Antiguo 06/09/2008, 10:04
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 15 años, 11 meses
Puntos: 43
Respuesta: Error en código que no consigo resolver

Si es entero no es necesario las comillas simples!
podria estar tomandolo como cadena!
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #6 (permalink)  
Antiguo 06/09/2008, 10:07
 
Fecha de Ingreso: agosto-2003
Mensajes: 324
Antigüedad: 20 años, 8 meses
Puntos: 1
Respuesta: Error en código que no consigo resolver

¿Y cómo podría pasarlo a INT para que se enterara la consulta?
Gracias
  #7 (permalink)  
Antiguo 06/09/2008, 10:10
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 15 años, 11 meses
Puntos: 43
Respuesta: Error en código que no consigo resolver

quita las comillas simples.... el error principal que te envia el mysql_fetch_array puedes determinarlo imprimiendo la consulta antes de ejecutarla, a ver que te esta generando
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #8 (permalink)  
Antiguo 06/09/2008, 10:17
 
Fecha de Ingreso: agosto-2003
Mensajes: 324
Antigüedad: 20 años, 8 meses
Puntos: 1
Respuesta: Error en código que no consigo resolver

Después de pruebas.. el problema me parte que no me recupera el valor de $UsuarioID.
Este dato lo paso desde lapágina "anterior" mediante argumento en la url ...

¿Cómo debo recogerlo para que vaya bien? en mi servidor no hacía falta especificar nada ...

Gracias
  #9 (permalink)  
Antiguo 06/09/2008, 10:17
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Error en código que no consigo resolver

Usa $_GET, seguramente tienes desactivado el register_globals.

Saludos.
  #10 (permalink)  
Antiguo 06/09/2008, 10:24
 
Fecha de Ingreso: agosto-2003
Mensajes: 324
Antigüedad: 20 años, 8 meses
Puntos: 1
Respuesta: Error en código que no consigo resolver

Poniendo el $_GET no me reupera nada.. y me sigue dando el error.
Tengo que ponerle antes y detrás las ' .. así no me da error, pero claro, creo que entonces busca '1' y no 1, con lo ue no encuentra nada...

¿Algo más?
Gracias
  #11 (permalink)  
Antiguo 06/09/2008, 11:11
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Respuesta: Error en código que no consigo resolver

Pon los códigos que intentas o has intentado para recuperar el valor para que le echemos un vistazo.
  #12 (permalink)  
Antiguo 06/09/2008, 11:13
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Error en código que no consigo resolver

Tienes que usar $_GET['nombre_de_la_variable_que_viene_del_url'] no solamente $_GET.

Saludos.
  #13 (permalink)  
Antiguo 06/09/2008, 12:33
 
Fecha de Ingreso: agosto-2003
Mensajes: 324
Antigüedad: 20 años, 8 meses
Puntos: 1
Respuesta: Error en código que no consigo resolver

Gracias a todos ...
Os pongo el código completo (espero no pasarme...) ... de la página que me falla...

Código HTML:
<?php include ("../seguridadadmin.php");?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<link href="css/estilo.css" rel="stylesheet" type="text/css" />
<style type="text/css">
<!--
body {
	margin-left: 0px;
	margin-top: 0px;
	margin-right: 0px;
	margin-bottom: 0px;
}
-->
</style>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Canal Corporativo</title>
<link href="css/estilo.css" rel="stylesheet" type="text/css" />
<script language="JavaScript" src ="../funcionesjs/js.js"> </script>
<!--<script>
function envia(pag){
	document.modificausuario.action = pag;
	document.modificausuario.submit();
}
</script>-->

</head>

<body>
<table width="800" border="0" align="center" cellpadding="0" cellspacing="0" background="../imagenes/fondopagina.gif">
  <tr valign="top">
    <td height="600"><table width="100%" border="0" cellpadding="0" cellspacing="0">
        <tr valign="middle">
          <td width="230" height="110"><div align="center"><img src="../imagenes/logosic.gif" width="208" height="87" /></div></td>
          <td height="110">&nbsp;</td>
          <td width="150" height="110"><div align="center"><img src="../imagenes/logotrocadero.png" width="122" height="78" /></div></td>
        </tr>
      </table>
      	<table width="100%" border="0" cellpadding="0" cellspacing="0">
        <tr valign="top">
          <td height="480"><table width="100%" border="0" cellspacing="0" cellpadding="0">
				<tr valign="bottom">
					<td width="125"  height="30" class="TablaZonaActual">Zona Administración</td>
					<td width="200" class="TablaZonaDescriptiva">Modificar Usuario</td>
					<td  height="30" class="TablaDatoUsuario"><?php 
		echo $_SESSION["usuario"];
		?>&nbsp;&nbsp;</td>
				</tr>
			</table>
          	<table width="100%" border="0" cellspacing="0" cellpadding="0">
				<tr valign="top">
					<td width="125" class="TablaMenu"><table width="100%" border="0" cellspacing="0" cellpadding="0">
							<tr>
							<td width="3"></td>
								<td>&nbsp;</td>
							</tr>
							<tr>
							<td width="3"></td>
								<td><a href="admindex.php" target="_self" class="menun">Usuarios</a></td>
							</tr>
							<tr>
								<td width="3"></td>
								<td><a href="usuariossici.php" target="_self" class="menun">Nuevo</a></td>
							</tr>
							<tr>
								<td width="3"></td>
								<td>&nbsp;</td>
							</tr>
							<tr>
								<td width="3"></td>
								<td>&nbsp;</td>
							</tr>
							<tr>
								<td width="3"></td>
								<td><br /></td>
							</tr>
							<tr>
								<td width="3"></td>
								<td>&nbsp;</td>
							</tr>
							<tr>
								<td width="3"></td>
								<td>&nbsp;</td>
							</tr>
							<tr>
								<td width="3"></td>
								<td>&nbsp;</td>
							</tr>
							<tr>
								<td width="3"></td>
								<td>&nbsp;</td>
							</tr>
							<tr>
								<td width="3"></td>
								<td>&nbsp;</td>
							</tr>
							<tr>
								<td width="3"></td>
								<td>&nbsp;</td>
							</tr>
							<tr>
								<td width="3"></td>
								<td>&nbsp;</td>
							</tr>
							<tr>
								<td width="3"></td>
								<td>&nbsp;</td>
							</tr>
							<tr>
								<td width="3"></td>
								<td>&nbsp;</td>
							</tr>
							<tr>
								<td width="3"></td>
								<td>&nbsp;</td>
							</tr>
							<tr>
								<td width="3"></td>
								<td>&nbsp;</td>
							</tr>
							<tr>
								<td width="3"></td>
								<td><br /></td>
							</tr>
							<tr>
								<td width="3"></td>
								<td><a href="salir.php" class="menun">Salir</a></td>
							</tr>
							<tr>
								<td width="3"></td>
								<td><br /></td>
							</tr>
					</table></td>
					<td width="20" class="TablaSeparacion"><br /></td>
					<td class="TablaContenidoCentral"><p>Modificar Usuario<br />
							<?php
	include("../conex.php");
	//$link=Conectarse();
	//$q = "select * from usuariossic where UsuarioID=15";
	$q = "select * from usuariossic where UsuarioID='". $_GET[$UsuarioID] . "'";
	$result=mysql_query($q,$link);
	$reg = mysql_fetch_row($result);
	?>
</p>
						<form  name="modificausuario" id="modificausuario">
							<table>
								<tr>
									<td>Nombre:</td>
									<td><input name="unombre" type="text" class="campos" id="unombre" value="<?php echo $reg[1]; ?>" size="20" maxlength="50" /></td>
								</tr>
								<tr>
									<td>Clave:</td>
									<td><input name="uclave" type="text" class="campos" id="uclave" value="<?php echo $reg[2]; ?>" size="20" maxlength="30" /></td>
								</tr>
								<tr>
									<td>Tipo:</td>
									<td><input name="utipo" type="text" class="campos" id="utipo" value="<?php echo $reg[3]; ?>" size="20" maxlength="30" /></td>
								</tr>
								<tr>
									<td>Correo-e:</td>
									<td><input name="ucorreo" type="text" class="campos" id="ucorreo" value="<?php echo $reg[5]; ?>" size="20" maxlength="50" /></td>
								</tr>
								<tr>
									<td>Cliente:</td>
									<td><?php
				  $q2 = "select * from clientes";
					$result2=mysql_query($q2,$link);
				  echo "<select name='ucliente' class='campos'>";
           	        while ($row=mysql_fetch_array($result2))
				 	{
					if($reg[4] == $row['ClienteID']){
					$predeterminado = " SELECTED";
					 }else{
					 $predeterminado = "";
					 }
					
					echo "<option value=" . $row['ClienteID'] .  $predeterminado . ">" . $row["ClienteNombre"] . "</option>";}
					echo "</select>";
					?>
									</td>
								</tr>
							</table>
							<input type="hidden" name='uid' id='uid' value="<?php echo $reg[0];?>" />
							<div align="right">
								<input name="bCancelar" type="button" class="boton" id="bCancelar" onclick="javascript:history.back()" value="Cancelar"/>
								<input name="bGuardar" type="button" class="boton" id="bGuardar" onclick="if(confirm('Esta acción modificará los datos del usuario.\n¿Desea continuar?'))comprobar('usuariossicprocm.php')" value="Guardar"/>
							</div>
							<div align="right"><br />
									<input name="bEliminar" type="button" class="boton" id="bEliminar" onclick="if(confirm('Esta acción eliminará los datos del usuario.\n¿Desea continuar?'))envia('usuariossicprocb.php')" value="Eliminar"/>
							</div>
						</form>
						<p></p></td>
				</tr>
			</table></td>
        </tr>
      </table>
      <table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td class="TablaCopyRight">&copy;Trocadero</td>
  </tr>
</table>

      
    </td>
  </tr>
</table>

<p class="Estilo1">
  </table>
</p>
<?php
   mysql_free_result($result);
   mysql_free_result($result2);
   mysql_close($link);   
?>
</body>
</html> 
La otra os la coloco en otro post .. que me dice que no cabe todo..
  #14 (permalink)  
Antiguo 06/09/2008, 12:34
 
Fecha de Ingreso: agosto-2003
Mensajes: 324
Antigüedad: 20 años, 8 meses
Puntos: 1
Respuesta: Error en código que no consigo resolver

Y aquí la que manda los datos ...
Código HTML:
<?php include ("seguridadadmin.php");?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<link href="css/estilo.css" rel="stylesheet" type="text/css" />
<style type="text/css">
<!--
body {
	margin-left: 0px;
	margin-top: 0px;
	margin-right: 0px;
	margin-bottom: 0px;
}
-->
</style>
<script language="JavaScript" src ="funcionesjs/js.js"> </script>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Canal Corporativo</title></head>

<body>

<table width="800" border="0" align="center" cellpadding="0" cellspacing="0" background="imagenes/fondopagina.gif">
  <tr valign="top">
    <td height="600"><table width="100%" border="0" cellpadding="0" cellspacing="0">
        <tr valign="middle">
          <td width="230" height="110"><div align="center"><img src="imagenes/logosic.gif" width="208" height="87" /></div></td>
          <td height="110">&nbsp;</td>
          <td width="150" height="110"><div align="center"><img src="imagenes/logotrocadero.png" alt="" width="122" height="78" /></div></td>
        </tr>
      </table>
      	<table width="100%" border="0" cellpadding="0" cellspacing="0">
        <tr valign="top">
          <td height="480"><table width="100%" border="0" cellspacing="0" cellpadding="0">
				<tr valign="bottom">
					<td width="125"  height="30" class="TablaZonaActual">Administraci&oacute;n</td>
					<td width="200" class="TablaZonaDescriptiva">Usuarios SIC</td>
					<td  height="30" class="TablaDatoUsuario"><?php 
		echo $_SESSION["usuario"];
		?>&nbsp;&nbsp;</td>
				</tr>
			</table>
          	<table width="100%" border="0" cellspacing="0" cellpadding="0">
				<tr valign="top">
					<td width="125" class="TablaMenu"><table width="100%" border="0" cellspacing="0" cellpadding="0">
							<tr>
								<td>&nbsp;</td>
							</tr>
							<tr>
							<td width="3"></td>
								<td><a href="admindex.php" target="_self" class="menun">Usuarios</a></td>
							</tr>
							<tr>
								<td width="3"></td>
								<td><a href="usuarios/usuariossici.php" target="_self" class="menun">Nuevo</a></td>
							</tr>
							<tr>
								<td width="3"></td>
								<td>&nbsp;</td>
							</tr>
							<tr>
								<td width="3"></td>
								<td>&nbsp;</td>
							</tr>
							<tr>
								<td width="3"></td>
								<td><br /></td>
							</tr>
							<tr>
								<td width="3"></td>
								<td>&nbsp;</td>
							</tr>
							<tr>
								<td width="3"></td>
								<td>&nbsp;</td>
							</tr>
							<tr>
								<td width="3"></td>
								<td>&nbsp;</td>
							</tr>
							<tr>
								<td width="3"></td>
								<td>&nbsp;</td>
							</tr>
							<tr>
								<td width="3"></td>
								<td>&nbsp;</td>
							</tr>
							<tr>
								<td width="3"></td>
								<td>&nbsp;</td>
							</tr>
							<tr>
								<td width="3"></td>
								<td>&nbsp;</td>
							</tr>
							<tr>
								<td width="3"></td>
								<td>&nbsp;</td>
							</tr>
							<tr>
								<td width="3"></td>
								<td>&nbsp;</td>
							</tr>
							<tr>
								<td width="3"></td>
								<td>&nbsp;</td>
							</tr>
							<tr>
								<td width="3"></td>
								<td>&nbsp;</td>
							</tr>
							<tr>
								<td width="3"></td>
								<td><br /></td>
							</tr>
							<tr>
								<td width="3"></td>
								<td><a href="salir.php" class="menun">Salir</a></td>
							</tr>
							<tr>
								<td width="3"></td>
								<td><br /></td>
							</tr>
					</table></td>
					<td width="20" class="TablaSeparacion"><br /></td>
					<td class="TablaContenidoCentral"><p>Listado de los usuarios registrados en SIC:</p>
							<p>
								<?php
   include("conex.php");
   //$link=Conectarse();
   $result=mysql_query("select * from usuariossic",$link);
	?>
							</p>
						<p><span class="TextoTitulos">Usuarios</span> <br />
							</p>
						<table border="0" cellspacing="0" cellpadding="0">
								<tr>
									<td width="200" class="TablaResultadosCabecera">Nombre&nbsp;</td>
									<td width="100" class="TablaResultadosCabecera">&nbsp;</td>
									<?php      
  			 while($row = mysql_fetch_array($result)) {
    		  printf("<tr><td>&nbsp;%s</td><td><a href=\"./usuarios/usuariossicm.php?UsuarioID=%s\">Editar</a></td></tr>", $row["UsuarioNombre"], $row["UsuarioID"]);
   }
   
   mysql_free_result($result);
   mysql_close($link);   
?>
								</tr>
							</table>
						<br />
							<br /></td>
				</tr>
			</table></td>
        </tr>
      </table>
      <table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td class="TablaCopyRight">&copy;Trocadero</td>
  </tr>
</table>

      
    </td>
  </tr>
</table>

<p class="Estilo1">
  </table>
</p>

</body>
</html> 
Gracias
  #15 (permalink)  
Antiguo 06/09/2008, 13:59
Avatar de CrepitantE  
Fecha de Ingreso: octubre-2006
Ubicación: Colombia
Mensajes: 421
Antigüedad: 17 años, 6 meses
Puntos: 7
Respuesta: Error en código que no consigo resolver

Veo que en tu código usas $UsuarioID una variable de php para sustituir el valor de GET, pero no veo donde está declarada, podrias informar mas respecto a esto.

Código HTML:
$q = "select * from usuariossic where UsuarioID='". $_GET[$UsuarioID] . "'";
También si es una variable numérica quitale las comillas como esta > ' (sino no es problema).

Otra pregunta, podrias colocar como declaraste la tabla en la base de datos..
__________________
-
  #16 (permalink)  
Antiguo 06/09/2008, 15:27
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Error en código que no consigo resolver

Deberías leer el manual de PHP, tienes muchos problemas al aclararte sobre como tomar las variables que vienen por GET o POST, necesitas usar $_GET['UsuarioID'] si es que en tu url la mandas de esa forma:

/pagina.php?UsuarioID=15

Saludos.
  #17 (permalink)  
Antiguo 06/09/2008, 16:25
Avatar de CrepitantE  
Fecha de Ingreso: octubre-2006
Ubicación: Colombia
Mensajes: 421
Antigüedad: 17 años, 6 meses
Puntos: 7
Respuesta: Error en código que no consigo resolver

A menos que declare en php

Código PHP:
$UsuarioID $_GET['UsuarioID']; 
pero no lo veo en ningun lado.
__________________
-
  #18 (permalink)  
Antiguo 08/09/2008, 08:58
 
Fecha de Ingreso: agosto-2003
Mensajes: 324
Antigüedad: 20 años, 8 meses
Puntos: 1
Respuesta: Error en código que no consigo resolver

Gracias a todos ...
Al final era el $UsuarioID = $_GET['UsuarioID'];
Creí que lo tenía declarado ..

Gracias y perdonad las molestias
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 06:56.