Foros del Web » Programando para Internet » PHP »

Problema con una funcion en PHP

Estas en el tema de Problema con una funcion en PHP en el foro de PHP en Foros del Web. Tengo una página php en la que llamo a una funcion que he creado en otro archivo php. El caso es que esta debe mostrar ...
  #1 (permalink)  
Antiguo 05/05/2010, 12:59
 
Fecha de Ingreso: marzo-2010
Mensajes: 13
Antigüedad: 14 años, 1 mes
Puntos: 0
Problema con una funcion en PHP

Tengo una página php en la que llamo a una funcion que he creado en otro archivo php. El caso es que esta debe mostrar unos datos de una tabla de mysql en la primera página y me esta devolviendo un error. El caso sería así mas o menos.

En Index.php tengo

<?php include ('funcion.php');?>

<html>
.....
<body>
....
<?php echo Rellenar_Inicio;?>
....
</body>

En funcion.php tengo:

<?php
..............
mysql_select_db($database_webIndagar, $webIndagar);
$query_UltimasEntradas = "SELECT * FROM noticias ORDER BY idNot DESC LIMIT 3";
$UltimasEntradas = mysql_query($query_UltimasEntradas, $webIndagar) or die(mysql_error());
$row_UltimasEntradas = mysql_fetch_assoc($UltimasEntradas);
$totalRows_UltimasEntradas = mysql_num_rows($UltimasEntradas);
mysql_query ("SET NAMES 'utf8'");

Function Rellenar_Inicio()
{
?>

<table width="700" border="1">
<tr>
<th scope="col">Bienvenido a mi Web </th>
<th scope="col">Ultimas Entradas</th>
</tr>
<tr>
<td>................Saludos y suerte </td>
<td colspan="2"><table><td width="173"><?php do { ?>
<?php echo $row_UltimasEntradas['idNot']. "<strong> " . $row_UltimasEntradas['titulo']."</strong> " .substr(
$row_UltimasEntradas['texto'],0,65);?> <a href="#" class="a">| more</a><br>
<?php
} while ($row_UltimasEntradas = mysql_fetch_assoc($UltimasEntradas));

if ($rows>0) {
mysql_data_seek($UltimasEntradas,0);
$row_UltimasEntradas=mysql_fetch_assoc ($UltimasEntradas);
}
?>
</td></table>
</tr>
</table>
<?
}
?>
<?php
mysql_free_result($UltimasEntradas);
?>

---- fin del fichero funcion.php

Si este mismo codigo lo introduzco en index.php funciona correctamente pero si lo llamo como una funcion me muestra en vez de los datos de la tabla el siguiente error:

"Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\webIndagar\funcion.php on line 57"

Si alguien me puede echar una mano se lo agradecería.
  #2 (permalink)  
Antiguo 05/05/2010, 13:03
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: Problema con una funcion en PHP

El problema es que una función no puede acceder a variables externas, por lo tanto estás usando la variable $row_UltimasEntradas, que fuera de la función esta definida, pero en el interior no, una solución es pasársela por parámetro.

Un saludo
  #3 (permalink)  
Antiguo 05/05/2010, 14:07
 
Fecha de Ingreso: marzo-2010
Mensajes: 13
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Problema con una funcion en PHP

Gracias Helios.

Tenías razón no se como no me di cuenta de eso. Pues ya había utilizado otra vez una funcion que me devolvía datos de una tabla y me había funcionado correctamente.

Funciona correctamente con esa corrección.
  #4 (permalink)  
Antiguo 05/05/2010, 14:27
Avatar de qvixote  
Fecha de Ingreso: marzo-2008
Mensajes: 79
Antigüedad: 16 años, 1 mes
Puntos: 2
Respuesta: Problema con una funcion en PHP

También puedes usar 'global' para utilizar dentro de una función una variable de rango global. Lo harías agregando la siguiente línea en el principio de tu función:

Código PHP:
global $row_UltimasEntradas
Saludos.

Etiquetas: funcion
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 16:35.