Foros del Web » Programando para Internet » PHP »

RSS con PHP

Estas en el tema de RSS con PHP en el foro de PHP en Foros del Web. Hola: No estoy seguro de que esta pregunta esté bien en este foro, pero como no veo uno específico.. Acabo de hacer un archivo RSS ...
  #1 (permalink)  
Antiguo 06/10/2009, 12:32
Avatar de lvfp  
Fecha de Ingreso: septiembre-2005
Ubicación: España
Mensajes: 337
Antigüedad: 18 años, 7 meses
Puntos: 4
RSS con PHP

Hola:

No estoy seguro de que esta pregunta esté bien en este foro, pero como no veo uno específico..

Acabo de hacer un archivo RSS generado con un PHP que coge datos de una db mySql, funciona bien... a veces, quiero decir que unas veces me da los datos y otras no, no sé si es un error de mi sevidor o qué , pero así no me sirve.

La web donde está es esta:

http://www.concellodeourol.es/licitaciones/

Y el código del php este
Código PHP:
<?php
    header
('Content-Type: text/xml');
    echo 
'<?xml version="1.0" encoding="iso-8859-1"?>';
    
    require_once(
'Connections/ourol.php');
       
    
$resultado mysql_query ("SELECT codigo,nombre,tipo FROM licitacion ORDER BY codigo DESC");
    
     echo 
'<rss version="2.0">
    <channel>
    <title>Canal RSS del perfil del contratante - Concello de Ourol</title>
    <link>http://www.concellodeourol.es/licitaciones/</link>
    <descripcion>Licitaciones del Concello de Ourol</descripcion>'
;
while (
$row mysql_fetch_array ($resultado))
  {     
    echo 
'<item>
    <title>'
.$row['tipo'].'</title>
       <link>http://www.concellodeourol.es/licitaciones/licitaciones.php?codigo='
.$row['codigo'].'</link>
    <description>'
.$row['nombre'].'</description>
    </item>'
;
    }
echo 
'</channel>
</rss>'
;
?>
Si alguien tiene alguna idea del motivo del fallo....


Gracias.
  #2 (permalink)  
Antiguo 06/10/2009, 12: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: RSS con PHP

pues tiene sentido...

PHP es lo que es... y si una ves ya te funcionó, pues otra veces debe ser igual!!

entonces si... es problema de tu server de MySQL


suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 06/10/2009, 13:03
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Respuesta: RSS con PHP

En efecto, acabo de consultar y lo que está pasando es que no está entrando en tu bucle donde creas los item's, osease, no está trayendo resultados de la BD.

Consulta tus logs. Un saludo
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #4 (permalink)  
Antiguo 06/10/2009, 13:04
 
Fecha de Ingreso: abril-2008
Mensajes: 453
Antigüedad: 16 años
Puntos: 16
Respuesta: RSS con PHP

Cita:
Iniciado por jam1138 Ver Mensaje
En efecto, acabo de consultar y lo que está pasando es que no está entrando en tu bucle donde creas los item's, osease, no está trayendo resultados de la BD.

Consulta tus logs. Un saludo
lo raro es que actualizando varias veces aparecen algunos resultados
  #5 (permalink)  
Antiguo 06/10/2009, 13:07
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Respuesta: RSS con PHP

Cita:
Iniciado por samu22 Ver Mensaje
lo raro es que actualizando varias veces aparecen algunos resultados
Precisamente, por eso, es un problema con la Base de Datos... y hay que consultar los logs para ver qué está sucediendo.
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #6 (permalink)  
Antiguo 06/10/2009, 13:54
Avatar de lvfp  
Fecha de Ingreso: septiembre-2005
Ubicación: España
Mensajes: 337
Antigüedad: 18 años, 7 meses
Puntos: 4
Respuesta: RSS con PHP

Perdón por esta pregunta que considerareis tonta... ¿donde veo los logs?
  #7 (permalink)  
Antiguo 06/10/2009, 14:34
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: RSS con PHP

Tu servidor debe de darte acceso a eso, es mejor que te contactes con tu proveedor y que te ayude en todo esto.

Saludos.
  #8 (permalink)  
Antiguo 06/10/2009, 14:40
Avatar de lvfp  
Fecha de Ingreso: septiembre-2005
Ubicación: España
Mensajes: 337
Antigüedad: 18 años, 7 meses
Puntos: 4
Respuesta: RSS con PHP

OK, mil gracias por vuestras opiniones y consejos... os tendré informados de lo que pase.

Saludos.
  #9 (permalink)  
Antiguo 06/10/2009, 15:43
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Respuesta: RSS con PHP

Cita:
Iniciado por lvfp Ver Mensaje
Perdón por esta pregunta que considerareis tonta... ¿donde veo los logs?
Si no tienes control del servidor, osease, si estás pagando por el hosting, quizá en algún "panel de control" que te brinde el proovedor (como cPanel) puedas consultarlos. Si no encuentras la opción, será mejor consultes con quien te brinda el servicio.

Si tienes control del servidor y es un GNU/Linux, los logs los deberías encontrar dentro de /var/log/ .

Suerte

Edit:
... y eso pasa por dejar ventanas abiertas ...
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #10 (permalink)  
Antiguo 07/10/2009, 11:15
Avatar de lvfp  
Fecha de Ingreso: septiembre-2005
Ubicación: España
Mensajes: 337
Antigüedad: 18 años, 7 meses
Puntos: 4
Respuesta: RSS con PHP

Bien, no he podido hablar aun con mi proveedor pero he solucionado el problema y eso me mosquea. Me explico he hecho un archivo php con dreamweaver usando la misma conexión y sustituyendo el contenido del bucle, que generaba una tabla de datos, por el bucle del rss. Y he añadido los "echo" que general el resto de tags del xml... queda así:

Código PHP:
<?php require_once('Connections/ourol.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function 
GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
{
  if (
PHP_VERSION 6) {
    
$theValue get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  
$theValue function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch (
$theType) {
    case 
"text":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;    
    case 
"long":
    case 
"int":
      
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case 
"double":
      
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case 
"date":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;
    case 
"defined":
      
$theValue = ($theValue != "") ? $theDefinedValue $theNotDefinedValue;
      break;
  }
  return 
$theValue;
}
}

$maxRows_Recordset1 10;
$pageNum_Recordset1 0;
if (isset(
$_GET['pageNum_Recordset1'])) {
  
$pageNum_Recordset1 $_GET['pageNum_Recordset1'];
}
$startRow_Recordset1 $pageNum_Recordset1 $maxRows_Recordset1;

mysql_select_db($database_ourol$ourol);
$query_Recordset1 "SELECT licitacion.codigo, licitacion.nombre, licitacion.tipo FROM licitacion ORDER BY codigo DESC";
$query_limit_Recordset1 sprintf("%s LIMIT %d, %d"$query_Recordset1$startRow_Recordset1$maxRows_Recordset1);
$Recordset1 mysql_query($query_limit_Recordset1$ourol) or die(mysql_error());
$row_Recordset1 mysql_fetch_assoc($Recordset1);

if (isset(
$_GET['totalRows_Recordset1'])) {
  
$totalRows_Recordset1 $_GET['totalRows_Recordset1'];
} else {
  
$all_Recordset1 mysql_query($query_Recordset1);
  
$totalRows_Recordset1 mysql_num_rows($all_Recordset1);
}
$totalPages_Recordset1 ceil($totalRows_Recordset1/$maxRows_Recordset1)-1;
header('Content-Type: text/xml');
    echo 
'<?xml version="1.0" encoding="iso-8859-15"?>';
     echo 
'<rss version="2.0"> 
    <channel> 
    <title>Canal RSS del perfil del contratante - Concello de Ourol</title> 
    <link>http://www.concellodeourol.es/licitaciones/</link> 
    <description>Licitaciones del Concello de Ourol</description>'

?>

  <?php do { ?>
   <?php echo '<item><title>'.$row_Recordset1['tipo'].'</title>
      <link>http://www.concellodeourol.es/licitaciones/licitaciones.php?codigo='
.$row_Recordset1['codigo'].'</link>
   <description>'
.$row_Recordset1['nombre'].'</description>
    </item>'
?>
     
    
    <?php } while ($row_Recordset1 mysql_fetch_assoc($Recordset1)); ?>


<?php
echo '</channel>
</rss>'
;
mysql_free_result($Recordset1);
?>
(Ya sé que sobran cosas pero como no soy experto en php prefiero no tocar)

Y de esta forma funciona perfectamente.

MI mosqueo es porque se supone que el código que usaba antes era correcto ¿o no? la noche me confunde....

Última edición por lvfp; 07/10/2009 a las 11:16 Razón: Comentario al código
  #11 (permalink)  
Antiguo 07/10/2009, 11:32
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Respuesta: RSS con PHP

Cita:
Iniciado por lvfp Ver Mensaje
MI mosqueo es porque se supone que el código que usaba antes era correcto ¿o no? la noche me confunde....
Sí, el problema básicamente es/era con tu consulta.

Hay una "pequeña" diferencia entre este código y el anterior, y es que en esta última consulta agregas un LIMIT, osea, traes un número limitado de registros, mientras en tu código original traías toda la información.

Quizá pueda ir por ahí el problema ...
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #12 (permalink)  
Antiguo 07/10/2009, 12:42
Avatar de lvfp  
Fecha de Ingreso: septiembre-2005
Ubicación: España
Mensajes: 337
Antigüedad: 18 años, 7 meses
Puntos: 4
OK, gracias.

Si me haces ya le servicio completo me pasa otra cosa, problemas con la codificación, no salen los acentos ni la ñ... no sé dónde está el fallo.

Solucionado, gracias a todos.

Última edición por GatorV; 08/10/2009 a las 09:53
  #13 (permalink)  
Antiguo 09/10/2009, 05:41
Avatar de lvfp  
Fecha de Ingreso: septiembre-2005
Ubicación: España
Mensajes: 337
Antigüedad: 18 años, 7 meses
Puntos: 4
Respuesta: RSS con PHP

Vuelvo para contaros que ya lo he solucionado. EL problema, creo, era que llamaba a la conexión mediante un archivo externo, con

require_once('Connections/ourol.php');ç

He puesto la conexión directamente en el php y parece que va bien.

Saludos.
  #14 (permalink)  
Antiguo 09/10/2009, 11:01
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Respuesta: RSS con PHP

... y ¿con ese cambio va bien con tu código original?

La verdad es que, en principio, eso tampoco tiene nada que ver. Hacer un include es hacer un copy&paste tal cual, no tiene por que haber diferencia a colocar el código directamente ... salvo, claro, que tu código "tenga algo especial".

Habría que verlo bien, pero no ... no tiene por qué ser eso.
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #15 (permalink)  
Antiguo 09/10/2009, 13:03
 
Fecha de Ingreso: noviembre-2008
Ubicación: W2.0
Mensajes: 103
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: RSS con PHP

Hace poco tuve el mismo problema.

Lo generaban 2 asuntos.
En el header escribi

Código:
header("Content-type: application/rss+xml");
Una variable de la base de datos venía con etiquetas html y caracteres especiales y escribi esto:

Código:
 html_entity_decode(strip_tags($row['descripcion']))
Este es el codigo completo


Código:
<?
header("Content-type: application/rss+xml");
include_once('Accesos/db.php');
$r = mysql_query("SELECT * FROM table");
echo '<?xml version="1.0" encoding="ISO-8859-1"?>';
?>
<rss version="2.0">
<channel>
<title>Dominio - Actividades</title>
<link>www.dominio.com</link>
<description>Actividades</description>
<copyright>c Todos los Derechos Reservados.</copyright>
<? while ($row = mysql_fetch_array($r)){?>
<item>
	<title><? echo $row['titulo'];?></title>
	<link>www.dominio.com</link>
	<description><? echo substr(html_entity_decode(strip_tags($row['descripcion'])),0,80).'...';?></description>
	<pubDate><? echo $row['fecha'];?></pubDate>
  </item>
<? }?>
</channel>
</rss>
  #16 (permalink)  
Antiguo 11/10/2009, 07:47
Avatar de lvfp  
Fecha de Ingreso: septiembre-2005
Ubicación: España
Mensajes: 337
Antigüedad: 18 años, 7 meses
Puntos: 4
Respuesta: RSS con PHP

El archivo de conexión que incluía es el que genera Dreamweaver y que funciona con el código grande.

Al poner la conexión sin include funciona, lo que ya no sé es si es por cómo está generado el código del archivo dreamweaver o por el include.

Lo cierto es que funciona y yo se lo achaco a eso.
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 18:00.