Foros del Web » Programando para Internet » PHP »

sacar una variable de un if

Estas en el tema de sacar una variable de un if en el foro de PHP en Foros del Web. hola estoy algo enrredado a ver si me pueden dar una ayuda. tengo una condicional de este modo: Código: if ($id!=""){//si $id fue declarado... $squery="SELECT ...
  #1 (permalink)  
Antiguo 06/01/2006, 11:34
Avatar de fullmental  
Fecha de Ingreso: octubre-2004
Ubicación: México DF, Xochimilco
Mensajes: 593
Antigüedad: 13 años, 1 mes
Puntos: 3
sacar una variable de un if

hola estoy algo enrredado a ver si me pueden dar una ayuda.


tengo una condicional de este modo:

Código:
if ($id!=""){//si $id fue declarado...
$squery="SELECT * FROM noticias WHERE id='$id'"; 
$iquery=mysql_query($squery,$ilink);
if ($iquery>0) {
		 $irow=0;
		 $ilastrow=mysql_num_rows($iquery);
		 while ($irow<$ilastrow) {
		      $nwtitulo=mysql_result($iquery,$irow,"titulo");
			  $imprime_fecha=mysql_result($iquery,$irow,"fecha");
			  $cuerpo=mysql_result($iquery,$irow,"cuerpo");
			  $carpeta=mysql_result($iquery,$irow,"carpeta");
			  $abstract=mysql_result($iquery,$irow,"abstract");
			  
			  echo "<!---empieza noticiacompleta--->"
			  ."<h1>".$nwtitulo."</h1>"
			  ."<span class=\"fecha\">";
			  $fecha=fechaok($imprime_fecha);
				echo "</span>"
				."<br>".
				  "".$cuerpo.""
				."<!--termina noticiacompleta-->";
		//repetir segun sea necesario
		  $irow++;
		}
	} 
}//termina condicional para la nota directa
quiero sacar la variable $nwtitulo para ponerla de título del documento, es decir que esta tenga valides fuera de esta condicional, sin embargo no he podido, intente declarando global $nwtitulo; justo despues de obtener la misma variable pero no me funciono.

alguna idea??
  #2 (permalink)  
Antiguo 06/01/2006, 11:44
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 12 años, 9 meses
Puntos: 33
En este caso estas obteniendo muchos titulos ¿Quieres trabajar únicamente con uno en particular?
  #3 (permalink)  
Antiguo 06/01/2006, 11:47
Avatar de fullmental  
Fecha de Ingreso: octubre-2004
Ubicación: México DF, Xochimilco
Mensajes: 593
Antigüedad: 13 años, 1 mes
Puntos: 3
no en este caso sólo obtengo el titulo que coincide con el $id,

se que mi codigo no es de lo mas sofisticado y podria precindir de ciertas líneas pero ¡¡no se cuales!!, este código lo saque de aqui mismo de las faq's y lo fui adaptando.
  #4 (permalink)  
Antiguo 06/01/2006, 11:59
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 12 años, 9 meses
Puntos: 33
ja muy cierto es solo uno... entonces lo que tu quieres realizar es utilizar $nwtitulo ya fuera del ciclo y del if?
  #5 (permalink)  
Antiguo 06/01/2006, 12:06
Avatar de fullmental  
Fecha de Ingreso: octubre-2004
Ubicación: México DF, Xochimilco
Mensajes: 593
Antigüedad: 13 años, 1 mes
Puntos: 3
exacto!!!
eso es lo que quiero y no se cómo...
  #6 (permalink)  
Antiguo 06/01/2006, 12:18
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 12 años, 9 meses
Puntos: 33
la forma NO elegante de resolver este problema podria ser

Código PHP:
<?php
$squery
="SELECT * FROM noticias WHERE id='$id'"
$iquery=mysql_query($squery,$ilink);
$nwtitulo=mysql_result($iquery,0,"titulo");

echo 
"Aqui este el titulo"$nwtitulo;

?>
haciendo esto ya estando afuera del segundo if.
  #7 (permalink)  
Antiguo 06/01/2006, 12:25
Avatar de fullmental  
Fecha de Ingreso: octubre-2004
Ubicación: México DF, Xochimilco
Mensajes: 593
Antigüedad: 13 años, 1 mes
Puntos: 3
si lo se...

pero es poco práctico, no hay alguna manera de declararlo global, mandarlo como cabecera, algo , algo??

es que el ejemplo que me pones no me funciona por que tengo un include(header); con una función que escribe el titulo segun la sección del sitio. y pues eso se complica un poco mas y duplica la cantidad de llamadas a la base de datos y alenta el sitio...
  #8 (permalink)  
Antiguo 06/01/2006, 13:06
Avatar de jmn2k1  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires...
Mensajes: 489
Antigüedad: 16 años, 1 mes
Puntos: 2
Pero el codigo original, esta dentro de una funcion? porque si no es asi todas las variables deberian estar disponibles...

Saludos
__________________
JmN
  #9 (permalink)  
Antiguo 06/01/2006, 13:16
Avatar de fullmental  
Fecha de Ingreso: octubre-2004
Ubicación: México DF, Xochimilco
Mensajes: 593
Antigüedad: 13 años, 1 mes
Puntos: 3
no esta dentro de una función pero tampoco me aparece....
yo tambien pense que las variables estarían disponibles pero no...

el problema puede venir por que la estructura es la siguiente:
(noticias.php)
Código:
include('header.php');

if.....//todo lo que puse en el primer ejemplo
}
y dentro de el header viene una función que esta en mi libreria de funciones
(header.php)
Código:
...
<title><? dartitulo($nwtitulo,$paginactual); ?></title>
...
(funciones.php)
Código:
...
function dartitulo($nwtitulo,$paginactual){
	if($paginactual=="portada"){echo "Profesionales de Golf Asociados de México -PGAM";}
	if ($paginactual=="noticia"){echo $nwtitulo."PGAM";}
}
todo parece funcionar bien por que en la portada me muestra el titulo que quiero pero en noticia no muestra nada...
  #10 (permalink)  
Antiguo 06/01/2006, 13:30
Avatar de jmn2k1  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires...
Mensajes: 489
Antigüedad: 16 años, 1 mes
Puntos: 2
Código PHP:
include('header.php');
if.....
//todo lo que puse en el primer ejemplo

en header.php no va a estar definida la variable... deberias agregar el header luego de definirla... o sea despues del if con el codigo del ejemplo.

Saludos.
__________________
JmN
  #11 (permalink)  
Antiguo 06/01/2006, 13:35
Avatar de fullmental  
Fecha de Ingreso: octubre-2004
Ubicación: México DF, Xochimilco
Mensajes: 593
Antigüedad: 13 años, 1 mes
Puntos: 3


exácto, esa es la cuestión, mi pregunta es si puede usarse AFUERA del if...
  #12 (permalink)  
Antiguo 06/01/2006, 18:11
Avatar de jmn2k1  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires...
Mensajes: 489
Antigüedad: 16 años, 1 mes
Puntos: 2
Eso no es afuera del if... es antes! y no hay forma de que este definida si ese codigo no se ejecuto...

Creo que deberias analizar la forma en que realizas includes para que no halla problemas colocando el include del hader despues de definir la variable.
__________________
JmN
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 23:39.