Foros del Web » Programando para Internet » PHP »

problemas con php 5.3

Estas en el tema de problemas con php 5.3 en el foro de PHP en Foros del Web. Hola como andan estoy teniendo problemas por que se actualizo el php del servidor a la version 5.3.x y me el siguiente error cuando quiero ...
  #1 (permalink)  
Antiguo 13/02/2012, 16:05
 
Fecha de Ingreso: febrero-2012
Mensajes: 8
Antigüedad: 12 años, 2 meses
Puntos: 0
problemas con php 5.3

Hola como andan estoy teniendo problemas por que se actualizo el php del servidor a la version 5.3.x y me el siguiente error cuando quiero llamar a un listado de noticias.

el error que da es

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 ') ORDER BY nombre' at line 3

el codigo de la pagina es

<?php
require_once('Connections/cnx_vac.php');
require_once("modulo_sesiones.php");

$consulta= " ";


if($idiomas !== "0") $consulta =" && (idioma=$idiomas)";
mysql_select_db($database_cnx_vac, $cnx_vac);
$query_rsTabla = "SELECT * FROM tablas WHERE mostrada=1 $consulta ORDER BY nombre ASC";
$rsTabla = mysql_query($query_rsTabla, $cnx_vac) or die(mysql_error());
$row_rsTabla = mysql_fetch_assoc($rsTabla);
$totalRows_rsTabla = mysql_num_rows($rsTabla);

function smrFormatStr($var1)
{
$cadena = $var1;
$cadena = str_replace( "_"," " , $cadena );
return($cadena);
}
?>

<html>
<head>
<link href="styles.css" rel="stylesheet" type="text/css">
<META HTTP-EQUIV="Expires" CONTENT="Tue, 01 Jan 1980 1:00:00 GMT">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<script src="funciones.js"></script>

<script>
function llama_notas(objeto)
{

if(objeto.value)
window.location.href= "lista_noticias.php?tabla=categoria_"+objeto.value ;
}
</script>
<title>Administrador </title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
</head>

<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<div align="center">
<?php
echo '<table width="100%" bordercolor="#FFFFFF">
<tr> ';
for( $i=97 ; $i <= 122 ; $i++)
{
echo
'<td class="botonera" nowrap
onClick=location.href('.chr(39).'lista_categorias. php?letra='.chr($i).chr(39).') ;
onMouseOver=cambia_estilo(this,"botonera_titulo"," hand");
onMouseOut=cambia_estilo(this,"botonera","hand");
>
<p class="cintillo" align="center">
'.chr($i-32).'
</p>
</td>
';
};
echo '</tr></table>
';

?><br>
</div>
<div align="center">
<input name="Submit" type="button" class="boton_estatico" onClick="location.href('lista_categorias.php');" value="Ver Todas">
<br>
</div>
<table width="333" border="0" align="center" cellspacing="2">
<tr>
<td height="35" class="botonera">
<div align="center" class="relacionadas">Categorias </div></td>
</tr>
<tr>
<td height="204" class="botonera"> <div align="center">
<select name="categorias" size="20">
<?php do { ?>
<option value="<?php echo $row_rsTabla['nombre']; ?>"><?php echo strtoupper(smrFormatStr($row_rsTabla['nombre'])); ?></option>
<?php } while ($row_rsTabla = mysql_fetch_assoc($rsTabla)); ?>
</select>
</div></td>
</tr>
<tr>
<td height="5" > </td>
</tr>
<tr>
<td height="35" class="botonera">
<div align="center">
<input name="selecciona_categoria" type="button" class="boton_estatico" onClick="llama_notas(window.categorias);" value="Entrar">
</div></td>
</tr>
</table>

</body>
</html>
<?php
mysql_free_result($rsTabla);
?>



gracias de antemano por la ayuda

slds
  #2 (permalink)  
Antiguo 13/02/2012, 16:06
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problemas con php 5.3

El mensaje de error que recibes no es por culpa de la versión de php sino porque tu consulta está mal.

Imprime la consulta que genera el error y comprueba que esté bien redactada.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 13/02/2012, 16:10
 
Fecha de Ingreso: febrero-2012
Mensajes: 8
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: problemas con php 5.3

Pero en una version anterior esta funcionando sin problemas, me pueden dar una mano a ver como quedaria la consulta para que no de error?

Gracias!

(no soy experto en php)
  #4 (permalink)  
Antiguo 13/02/2012, 16:23
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problemas con php 5.3

No se necesita ser un experto para tener un poco de ganas en hacer las cosas, es notable tu capacidad de vago al no querer si quiera intentarlo.
Código PHP:
// tu consulta
$query_rsTabla "SELECT * FROM tablas WHERE mostrada=1 $consulta ORDER BY nombre ASC";

// la imprimes
echo $query_rsTabla
Así te vas a dar cuenta lo que está mal de tu consulta, no esperes a que alguien adivine lo que está mal y te de todo corregido.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 13/02/2012, 16:26
 
Fecha de Ingreso: febrero-2012
Mensajes: 8
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: problemas con php 5.3

pateketrueke no tiene que ver con vagancia sino con no saber!! el codigo lo hizo un amigo que esta de vacaciones y empezaron a surgir errores que algunos se arreglar y otros no!

Por eso es que se me ocurrio consultar en el foro!!

Pido disculpas por mi molestia y ojala lo pueda solucionar!

GRacias nuevamente

Slds
Diego
  #6 (permalink)  
Antiguo 13/02/2012, 16:35
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problemas con php 5.3

Cita:
Iniciado por diegoarribas Ver Mensaje
[...] Pido disculpas por mi molestia y ojala lo pueda solucionar! [...]
Bueno, si te quedas ahí esperando a que alguien te arregle la consulta como por arte de magia deberías enterarte que está difícil.

Pero si gustas usar tu energía para otra cosa diferente a pedir disculpas podrías hacerme caso e imprimir la consulta, así no dejas a nadie con la duda y si no soy yo seguramente alguien mas te ayude.

La idea es no entrar a los foros pensando que "son unos adivinos" y que con solo decir que algo está mal ellos lo arreglarán. Te sugiero leer las normas del foro, te aseguro que así no trabajamos acá.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 13/02/2012, 16:42
 
Fecha de Ingreso: febrero-2012
Mensajes: 8
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: problemas con php 5.3

pateketrueke tenes razon cuando me retás es que al no saber mucho me a pase leyendo cosas de php y me confundí más y tampoco sabia como hacer el print de la consulta para ver cual era el error (o eso creo que hace la consulta que me pasaste!)

el codigo que me genera es:
Código PHP:
SELECT FROM tablas WHERE mostrada=&& (idioma=) ORDER BY nombre ASC 
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 ') ORDER BY nombre ASC' at line 1 
Espero que con eso afine mas el error que tengo para que me puedan ayudar.

Gracias
  #8 (permalink)  
Antiguo 13/02/2012, 16:51
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problemas con php 5.3

Definitivamente ahí está clave del error.
Cita:
SELECT * FROM tablas WHERE mostrada=1 && (idioma=???) ORDER BY nombre ASC
Si te fijas bien hace falta el valor en la condición.

Además viendo mejor tu código si se ve que hace uso de funcionalidades obsoletas, te sugiero consultar register_globals y trates de actualizar tu código.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 14/02/2012, 08:38
 
Fecha de Ingreso: febrero-2012
Mensajes: 8
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: problemas con php 5.3

pateketrueke te hago una consulta para mejorar el codigo,

cual sería el uso de funcionalidades obsoletas a que te referis del codigo?
Como hago para consultar las register_globals ? tengo que correr algo en el servidor?

Muchas gracias,
  #10 (permalink)  
Antiguo 14/02/2012, 08:48
 
Fecha de Ingreso: febrero-2012
Mensajes: 8
Antigüedad: 12 años, 2 meses
Puntos: 0
Error al devolver una consulta

Hola necesito si me pueden ayudar con el siguiente codigo, que no esta devolviendo el idioma

$consulta= " ";


if($idiomas !== "0") $consulta =" && (idioma=$idiomas)";
mysql_select_db($database_cnx_vac, $cnx_vac);
$query_rsTabla = "SELECT * FROM tablas WHERE mostrada=1 $consulta ORDER BY nombre ASC";
$rsTabla = mysql_query($query_rsTabla, $cnx_vac) or die(mysql_error());
$row_rsTabla = mysql_fetch_assoc($rsTabla);
$totalRows_rsTabla = mysql_num_rows($rsTabla);

cuando hago el print de la consulta me pone

SELECT * FROM tablas WHERE mostrada=1 && (idioma=) ORDER BY nombre ASC
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 ') ORDER BY nombre ASC' at line 1

como debería armarla para que funcione

Muchas gracias
  #11 (permalink)  
Antiguo 14/02/2012, 09:56
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Error al devolver una consulta

(idioma=)

que se supone debe ir allí, ese es el error de sintaxis
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #12 (permalink)  
Antiguo 14/02/2012, 10:03
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Error al devolver una consulta

El problema, probablemente, viene de aqui:

Código PHP:
if($idiomas !== "0"$consulta =" && (idioma=$idiomas)"
Creo q la comparación no es correcta... pq sólo sería "falso" sí $idiomas es un string con valor 0. En caso de no estar declarada, o ser un número cualquiera, entraría en la condición
__________________
>> Eleazan's Source
>> @Eleazan
  #13 (permalink)  
Antiguo 14/02/2012, 11:11
 
Fecha de Ingreso: febrero-2012
Mensajes: 8
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: problemas con php 5.3

En otro servidor que esta exactamente igual el codigo y lo toma bien le hice un print a la consulta y da lo siguiente

Si el usuario tiene acceso a ambos idiomas el print fue
SELECT * FROM tablas WHERE mostrada=1 ORDER BY nombre ASC

si solo veia las secciones en español
SELECT * FROM tablas WHERE mostrada=1 && (idioma=1) ORDER BY nombre ASC

si solo veia las secciones en ingles
SELECT * FROM tablas WHERE mostrada=1 && (idioma=2) ORDER BY nombre ASC

No se si la consulta se puede hacer de otra manera o tiene que ver puntalmente con la configuracion del servidor pero en uno funciona y en otro no

Slds y gracias
  #14 (permalink)  
Antiguo 14/02/2012, 11:24
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problemas con php 5.3

El problema que tienes deriva de register_globals ¿ya te había dicho?

Google:
php register_globals
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #15 (permalink)  
Antiguo 14/02/2012, 12:01
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: problemas con php 5.3

El problema es porque tu script requiere el uso de register_globals, para que funcione tienes que hacer dos cosas:

1.- activas register_globals en tu php.ini (no recomendado)
2.- Cambias tus globales por sus variables correspondientes, lee lo siguiente: http://www.php.net/variables.external

Saludos.
  #16 (permalink)  
Antiguo 14/02/2012, 12:15
 
Fecha de Ingreso: febrero-2012
Mensajes: 8
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: problemas con php 5.3

Gracias GatorV por tu ayuda voy a leer todo lo que me pasaste!

una cosita mas con las 2 opciones que me das

1.- activas register_globals en tu php.ini (no recomendado)
Eso lo tiene que hacer el que administra el servidor??

2.- Cambias tus globales por sus variables correspondientes, lee lo siguiente
Si NO activo register_globals en el servidor pero cambio las globales por las variables como me decis deberia funcionar por mas que no esten habilitas en el servidor!?

Quizas pregunto algo logico pero ya me marie! de tanto probar

Gracias por la ayuda!
Slds
  #17 (permalink)  
Antiguo 14/02/2012, 12:20
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: problemas con php 5.3

Así es, en la opción 1 la tiene que hacer el administrador del servidor, y sí, si las cambias como te digo, va a funcionar esten o no activada la directiva register_globals.

Saludos.

Etiquetas: devolver, html, mysql, sql, tabla
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:33.