Foros del Web » Programando para Internet » PHP »

Problemas con formato de cadenas

Estas en el tema de Problemas con formato de cadenas en el foro de PHP en Foros del Web. Tengo el siguiente problema: Luego de generar una variable tipo cadena obtengo el siguiente resultado: SELECT * FROM noticia WHERE ContenidoNot LIKE "%para%" ORDER BY ...
  #1 (permalink)  
Antiguo 04/07/2005, 15:22
Avatar de davidrenzzo  
Fecha de Ingreso: enero-2004
Mensajes: 59
Antigüedad: 20 años, 2 meses
Puntos: 0
Problemas con formato de cadenas

Tengo el siguiente problema:
Luego de generar una variable tipo cadena obtengo el siguiente resultado:

SELECT * FROM noticia WHERE ContenidoNot LIKE "%para%" ORDER BY IdNot DESC

Hasta ahi todo funciona perfectamente, un detalle a tener en cuenta es q tengo paginados los resultados de esta consulta. Al hacer click a la siguiente pagina la cadena toma la siguiente forma:

SELECT * FROM noticia WHERE ContenidoNot LIKE \"%para%\" ORDER BY IdNot DESC

Otro caso un tanto extraño para mi es cuando ingreso como criterio alguna palabra q empieze con "de", la primera cadena me resulta correcta y a la siguiente pagina me resulta lo siguiente:

SELECT * FROM noticia WHERE ContenidoNot LIKE "Þ%" ORDER BY IdNot DESC

Lo q implica q logicamente me resulta un error debido a la sintaxis invalida. He probado con stripslashes($sql) y parece no resultar.

Alguien tiene alguna idea de como resolver esto o al menos q es lo q esta pasando . Gracias
__________________
www.gradamedia.com

Última edición por davidrenzzo; 04/07/2005 a las 15:29
  #2 (permalink)  
Antiguo 04/07/2005, 15:59
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Si probaste con stripslashes, no me queda mas que decirte que nos muestres como generas el $sql, y como estas regenerando el get (o post) en el link del paginado, tal vez lo estes encodeando mal, o este ahi el problema.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #3 (permalink)  
Antiguo 04/07/2005, 23:45
Avatar de davidrenzzo  
Fecha de Ingreso: enero-2004
Mensajes: 59
Antigüedad: 20 años, 2 meses
Puntos: 0
Un saludo nicolaspar:

Pude solucionar mi primer problema pero aun no lo de la cadena "%de" q es reemplazada por "Þ", ¿q caracter es ese?.
__________________
www.gradamedia.com
  #4 (permalink)  
Antiguo 04/07/2005, 23:55
 
Fecha de Ingreso: febrero-2003
Ubicación: Alicante
Mensajes: 29
Antigüedad: 21 años, 1 mes
Puntos: 0
"%de" es la notación hexadecimal de "Þ" (el carácter 222 en ASCII, en hexadecimal 222 es DE).

Como ya te han dicho no deberías pasar en ningún caso la consulta vía URL o similar, ya que pones en peligro la integridad de tu aplicación y de la base de datos.

Ayudaría bastante ver el código que estás usando para poder resolver el problema.
  #5 (permalink)  
Antiguo 05/07/2005, 00:05
Avatar de davidrenzzo  
Fecha de Ingreso: enero-2004
Mensajes: 59
Antigüedad: 20 años, 2 meses
Puntos: 0
Gracias por el dato JuSePe lo tenia ignorado por completo, ¿como puedo reemplazar esa cadena? y en cuanto a tu sugerencia estaba pensado en utilizar sesiones para cubrir mi query. Aqui esta el codigo:
Código PHP:
////////////resultados.php/////////////
<?
echo "<form action='index.php?modulo=resultnoticias' method='post'>";
foreach(
$_POST as $key => $value) {
echo 
"<input type='hidden' name='".$key."' value='".$value."'>";
echo 
"clave=$key ---> valor=$value<br>";
echo 
"</form>";
}
//Tamaño e inicio
$TAMANO_PAGINA=5;
$pagina=$_GET["pagina"];
if (!
$pagina){
$inicio=0;
$pagina=1;
}
else 
$inicio=($pagina-1)*$TAMANO_PAGINA;
$limit "$inicio,$TAMANO_PAGINA";
////////////////////////////
//where para crear consulta
if($IdCat!="")$agregado[] = "IdCat=".$IdCat;
if(
$titulonot!="")$agregado[] = "titulonot LIKE \"\%".$titulonot."\%\"";
if(
$resumennot!="")$agregado[] = "resumennot LIKE \"\%".$resumennot."\%\"";
if(
$contenidonot!="")$agregado[] = "ContenidoNot LIKE \"\%".$contenidonot."\%\"";
if(
$estadonot!="")$agregado[] = "estadonot=".$estadonot
if (
count($agregado) > 0){
$red implode (' and '$agregado);}
print_r($agregado);
/////////////////////////////
echo "<table border=0 cellspacing=0 width=100%>
<tr>
<td bgcolor='#ADB5C6'><b>Noticias > Resultados de la búsqueda</b></td>
</tr>
<tr>
<td>"
;
include 
"includes/cnn.php";
$sql stripslashes("SELECT * FROM noticia WHERE ".$red." ORDER BY IdNot DESC");
echo 
$sql;
$result mysql_query($sql);
$num_total_registros mysql_num_rows($result);
$total_paginas ceil($num_total_registros $TAMANO_PAGINA);
$sql3 $sql." LIMIT ".$limit;
$result3 mysql_query($sql3);
if(
$num_total_registros 0){
echo 
"<table border=0 cellspacing=0 width=100%>
<tr><td colspan=5 align=center bgcolor='#EFEFF7'><b>Items encontrados $num_total_registros</b></td></tr>"
;
echo 
"<tr><td colspan=5 align=right bgcolor='#EFEFF7'>Página ";
if (
$total_paginas 1){
for (
$i=1;$i<=$total_paginas;$i++){
if (
$pagina == $i)
echo 
"<b>[$pagina]</b>"." ";
else
echo 
"<a href='index.php?modulo=resultnoticias&pagina=$i&red=".stripslashes($red)."'>" $i "</a> ";
}
}
echo 
"</td></tr>";
echo 
"<tr align=center>
<td width=5% align=center><b>Id</b></td>
<td width=65%><b>Titulo</b></td>
<td width=10% align=center><b>Estado</b></td>
<td width=10% align=center><b>Editar</b></td>
<td width=10% align=center><b>Eliminar</b></td>
</tr>"
;
while(
$row3=mysql_fetch_array($result3)){
$id=$row3['IdNot'];
$titulo=$row3['TituloNot'];
$resumen=$row3['ResumenNot'];
$contenido=$row3['ContenidoNot'];
$estado=$row3['EstadoNot'];
if(
$estado==0)$estado="Pendiente";
else 
$estado="Publicado";
echo 
"<tr>
<td align=center>$id</td>"
;
echo 
"<td><b><a href='index.php?modulo=detailnoticia&id=$id'>$titulo</a></b></td>";
echo 
"<td align=center>$estado</td>
<td align=center><a href='index.php?modulo=editnoticia&id=$id'>Editar</a></td>
<td align=center><a href='index.php?modulo=delnoticia&id=$id'>Eliminar</a></td>
</tr>"
;
}
echo 
"<tr><td colspan=5 align=right bgcolor='#EFEFF7'>Página ";
if (
$total_paginas >= 1){
for (
$i=1;$i<=$total_paginas;$i++){
if (
$pagina == $i)
echo 
"<b>[$pagina]</b>"." ";
else
echo 
"<a href='index.php?modulo=resultnoticias&pagina=$i&red=".stripslashes($red)."'>" $i "</a> ";
}
}
echo 
"</table>";
include 
"includes/closecnn.php";
}
else{ 
echo 
"<table border=0 cellspacing=0 width=100%>
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td align=center>NO SE ENCONTRARON COINCIDENCIAS</td> 
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td align=right bgcolor='#EFEFF7'><b><center><a href='index.php?modulo=noticias'>Ver Lista</a>| <a href='index.php?modulo=addnoticias'>Agregar</a>| <a href='index.php?modulo=searchnoticias'>Buscar</a> </center></b></td> 
</tr>
</table>"
;}
echo 
"</td>
</tr>
</table>"
;
?>
__________________
www.gradamedia.com
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 17:17.