Foros del Web » Programando para Internet » PHP »

Que esta fallando?

Estas en el tema de Que esta fallando? en el foro de PHP en Foros del Web. Que esta fallando?? Gracias de antemano. Saludos Código PHP:   function ImprimirNoticias($Cabecera,$final) { echo $Cabecera . "texto en funcion" . $final; global $registros; global $fila; $registros=mysql_query("select id,Titulo,Texto from noticias",$conexion) or die("Problemas en el select:".mysql_error()); while ($fila=mysql_fetch_array($registros))   {     echo $v1;     echo $fila['Texto'];     echo $v2;   }   } ...
  #1 (permalink)  
Antiguo 04/11/2008, 14:51
 
Fecha de Ingreso: abril-2002
Mensajes: 186
Antigüedad: 22 años
Puntos: 2
Que esta fallando?

Que esta fallando??
Gracias de antemano.
Saludos


Código PHP:
 
function ImprimirNoticias($Cabecera,$final)
{
echo $Cabecera . "texto en funcion" . $final;
global $registros;
global $fila;
$registros=mysql_query("select id,Titulo,Texto from noticias",$conexion) or
die("Problemas en el select:".mysql_error());
while ($fila=mysql_fetch_array($registros))
  {
    echo $v1;
    echo $fila['Texto'];
    echo $v2;
  }
 
}
 
 
 
 
 
 
<html>
<HEAD>
<TITLE>CMS Noticias</TITLE>
</HEAD>
<BODY>
<?php
include("funciones.php");
?>
<TABLE BORDER="1">
<tr><td>Cabecera 1</td></tr>
<?php
 
$v1
="<tr><td>";
$v2="</td></tr>";
ImprimirNoticias($v1,$v2);
 
 
 
 
 
mysql_close($conexion);
?>
 
</TABLE>
 
</BODY>
</html>
  #2 (permalink)  
Antiguo 04/11/2008, 14:55
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Que esta fallando?

la $conexion ?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 04/11/2008, 14:57
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 21 años, 5 meses
Puntos: 17
Respuesta: Que esta fallando?

No tienes que usar $v1 y $v2 dentro de la función, sino $Cabecera y $final.

¿Y por qué declaras como globales las otras dos variables?

Y sobre todo: Cuando tengas un problema, especifica qué es lo que no funciona, qué comportamiento es el esperado, cual es que se tiene, errores que dan etc... que aquí nadie es adivino!!!
  #4 (permalink)  
Antiguo 05/11/2008, 03:53
 
Fecha de Ingreso: abril-2002
Mensajes: 186
Antigüedad: 22 años
Puntos: 2
Respuesta: Que esta fallando?

Gracias por las respuestas y por la crítica constructiva.
Planteare el problema con mas datos.
Por un lado tengo funciones.php y por otro noticias.php
El error me lo da el select
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in E:\Web\PHP\wosportable\www\noticias\funciones.php on line 10
He de decir que este codigo lo he prodado escibiendo directamente en noticias.php en lugar de ponerlo en la funcion y me funciona OK.
Supongo que el problema lo tengo con los ambitos de las variables.
Agradecria cualquier comentario al respecto.
Saludos.




funciones.php
Código PHP:
<?php
 
 
global $conexion;
$conexion=mysql_connect("localhost","root","")
  or  die(
"Problemas en la conexion");
mysql_select_db("noticias",$conexion)
  or  die(
"Problemas en la selección de la base de datos");
 
function 
ImprimirNoticias($Cabecera,$final)
{
 
$registros=mysql_query("select id,Titulo,Texto from noticias",$conexion) or
die(
"Problemas en el select:".mysql_error());
while (
$fila=mysql_fetch_array($registros))
  {
    echo 
$Cabecera;
    echo 
$fila['Texto'];
    echo 
$final;
  }
 
}
?>


noticias.php
Código PHP:
 
<html>
<HEAD>
<TITLE>CMS Noticias</TITLE>
</HEAD>
<BODY>
<?php
include("funciones.php");
?>
<TABLE BORDER="1">
<tr><td>Cabecera 1</td></tr>
<?php
 
$v1
="<tr><td>";
$v2="</td></tr>";
ImprimirNoticias($v1,$v2);
 
 
 
mysql_close($conexion);
?>
 
</TABLE>
 
</BODY>
</html>
  #5 (permalink)  
Antiguo 05/11/2008, 04:25
Avatar de SUSMO  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 188
Antigüedad: 16 años
Puntos: 0
Respuesta: Que esta fallando?

Hola victorfz,

El error que te da es de la conexión a la BDD. O bien se la puedes pasar por parámetro a ImprimirNoticias o la declaras global dentro de esta función.

Saludos,
__________________
Perdida en el mundo del conocimiento
  #6 (permalink)  
Antiguo 05/11/2008, 04:55
 
Fecha de Ingreso: abril-2008
Mensajes: 453
Antigüedad: 16 años
Puntos: 16
Respuesta: Que esta fallando?

lo que pasa es que la variable link la tendrias que usar si vas a conectarte cuando hagas la consulta, si la conexion ya esta establecida te va a generar un error cuando lo hagas

podrias hacerlo haci si queres un link de conexion:

Código PHP:
function conect() {
    
$host='localhost';
    
$user='root';
    
$pass='';
    
$bd='bd1';
    
$link mysql_connect($host$user$pass)or die('No conecto : ' mysql_error());
    
mysql_select_db($bd) or die('No pudo seleccionarse la BD.');
    return 
$conect;


$link conect(); 
sino directamente hace el query sin el link

Última edición por samu22; 05/11/2008 a las 05:00
  #7 (permalink)  
Antiguo 05/11/2008, 06:26
 
Fecha de Ingreso: abril-2002
Mensajes: 186
Antigüedad: 22 años
Puntos: 2
Respuesta: Que esta fallando?

Hola SUSMO gracias por tu ayuda, ya me funciona pasando la variable $conexion como parametro.
De todas formas no entiendo porque no me funciona como lo tengo puesto arriba ya que la variable $conexion la he puesto como global para que pueda ser leida desde el interior de la función.
Saludos
  #8 (permalink)  
Antiguo 05/11/2008, 06:43
Avatar de SUSMO  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 188
Antigüedad: 16 años
Puntos: 0
Respuesta: Que esta fallando?

Hola victorf,

Me alegra haberte sido de ayuda. El problema es que para que te funcione la variable $conexion como global tienes que declararla como global dentro de la misma función, fuera de ella "no hace nada"

Para que lo entiendas mejor, mira esta página: http://es2.php.net/manual/es/languag...bles.scope.php

Saludos,
__________________
Perdida en el mundo del conocimiento
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:11.