Foros del Web » Programando para Internet » PHP »

Sobre if()

Estas en el tema de Sobre if() en el foro de PHP en Foros del Web. Se que para hacer que un if() mire si no hay resultados en una variable hay que poner if($variable == "") pero como puedo hacer ...
  #1 (permalink)  
Antiguo 22/08/2004, 20:02
Avatar de Gryphus  
Fecha de Ingreso: febrero-2003
Ubicación: Spain
Mensajes: 216
Antigüedad: 14 años, 10 meses
Puntos: 0
Sobre if()

Se que para hacer que un if() mire si no hay resultados en una variable hay que poner if($variable == "") pero como puedo hacer que me mire si tiene contenido dicha variable?, es decir, como puedo hacer si por ejemplo el campo "archivo" tiene contenido (pero que yo no sepa cual es dicho contenido); hacer que if() me busque si tiene contenido.
Saludos y gracias de antemano ^^
  #2 (permalink)  
Antiguo 22/08/2004, 20:31
 
Fecha de Ingreso: noviembre-2003
Ubicación: Puente de ixtla
Mensajes: 773
Antigüedad: 14 años, 1 mes
Puntos: 0
Bueno en este caso tienes que hacer que if vea si la variable esta vacia y si no lo esta que te mande un mensaje o lo que tu quieras hacer de esta manera
Nota: debe de haber mas formas de hacerlo pero yo te pongo de ekemplo esta

if($variable="")
{
echo "la variable esta vacia";
}else{
echo "la variable contiene algo";
}

o de esta manera

if(empy($variable))
{
echo "la variable esta vacia";
}else{
echo "la variable contiene algo";
}
__________________
°º¤ø,¸¸,ø¤º°`°º¤ø,¸[email protected]°º¤ø,¸¸,ø¤º°`°º¤ø,¸.
Dios solo nos dio el 0 y el 1 y con solo eso hemos construido un universo
  #3 (permalink)  
Antiguo 22/08/2004, 20:51
Avatar de Gryphus  
Fecha de Ingreso: febrero-2003
Ubicación: Spain
Mensajes: 216
Antigüedad: 14 años, 10 meses
Puntos: 0
Ya.. pero eso no es lo que busco, gracias de todos modos Ixtleco.
Es que veras, tengo unos cuadros de texto, unos 15, y necesito saber cuantos seran rellenados por los usuarios, pensaba hacerlo poniendo if() para los 15 de modo que pondria
if($cuadro1 == "")
{
echo "";
}
else
{
echo $num1; // Esto seria que el cuadro 1 esta ocupado
}
if($cuadro2 == "")
{
echo "";
}
else
{
echo $num2; // Cuadro 2 ocupado...
}
Y asi hasta el 15, pero lo que ocurre es que si tengo 3 comentarios con contenido me va a dar lo siguiente: $num1 $num2 y $num3 en vez de 1 unico $num3 que luego pondria como $num3 = "3"; y ya sabria la cantidad, espero que me entiendas, saludos y muchas gracias
  #4 (permalink)  
Antiguo 22/08/2004, 21:16
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Podrías usar un array .. te facilitaría las cosas .. de hecho cuando dices "cuadro de textos" supongo que te referiras que estás usando un formulario HTML y campos <input type="text"> ...

Si es así .. esos N camos de tu formulario van a ir a tu script PHP bajo un array superglobal (así que ya tienes el array no hace falta más ..)

Concretamente si usas como method="POST" .. será $_POST .. Por lo demás .. si ese grupo de campos del formulario guardan alguna relación entre sí .. podrías usar técnica de "array" para agrupartlos .. ejemplo:

<input type="text" name="opcion[indice1]">
<input type="text" name="opcion[indice2]">
<input type="text" name="opcion[indice3]">
<input type="text" name="opcion[indice4]">
etc...

Y en PHP recibiras un array bajo "opcion" que podrás leer tipo:

Código PHP:

foreach ($_POST['opcion'] as $indice=>$valor){
   echo 
$indice."=".$valor."<br>";

como ya tienes un bucle ahí .. podrás si quires aplicar tu IF() a cada "$valor" que se vá obteniendo:

Código PHP:
$con_valor=0// contador
echo "Variables con valor: <br>";
foreach (
$_POST['opcion'] as $indice=>$valor){
   if (!empty(
$valor)){
     
$indice."=".$valor."<br>";
     
$con_valor++;
   }
}
echo 
"Total Variables con valor: ".$con_valor
Un saludo,
  #5 (permalink)  
Antiguo 22/08/2004, 22:16
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Claro... creo qeu tu problema era que no conocías en operador de negación ("!") y quería hacer un "if" que ejecute sólo su "else"...
Tú ponías:
Código PHP:
if($cuadro1 == ""){
   echo 
"";
}else{
   echo 
$num1// Esto seria que el cuadro 1 esta ocupado


Y lo habrías resuelto más o menos así:
:
Código PHP:
if($cuadro1 != ""){//si NO está vacío
   
echo $num1;

Ojo:esta explicación sólo pretende aclarar un poco las cosas... el ejemplo de Cluster está bastante más completo. O sea, con la función empty()

Saludos

Última edición por jpinedo; 22/08/2004 a las 22:21
  #6 (permalink)  
Antiguo 22/08/2004, 22:30
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Ahora .. el problema es que no sé por qué no dás (Gryphus) suficiente información y detalle de tu problema general y en el contexto que está tu problema ..

En el foro de Base de datos has publicado otro mensaje donde parece ser que deberías resolver el problema desde SQL pero como por ahí no "sabes" (todavía) buscas una solución por médio de mucha lógica PHP para una taréa que debería resolverse bajo SQL.

Así que decide como vas a solventar el problema (insisto como ya te comenté que la solución debería ser bajo SQL en la medida de lo posible) y dá más información de tu problema .. no tengas miedo de "escribir"

Un saludo,
  #7 (permalink)  
Antiguo 23/08/2004, 08:06
Avatar de Gryphus  
Fecha de Ingreso: febrero-2003
Ubicación: Spain
Mensajes: 216
Antigüedad: 14 años, 10 meses
Puntos: 0
Hola Cluster, intentare explicar mi problema completo, no se si recordaras un topic que puse en el foro de PHP relacionado con unos 30 campos... miralo aqui:
http://www.forosdelweb.com/f18/problema-con-distribucion-query-paginas-225000/
Bueno, al final decidi poner 15 campos para meter 15 textarea que serian las paginas de un reportaje.
Es decir, pongo 15 textarea (no type='text', perdon >_<) y el usuario puede escribir en 1, 2, 3... o en los 15.
Entonces ya tengo las paginas que quiero, solo tenia que introducir el contenido de los textarea en los respectivos campos, el textarea 1 en el campo report1, el 2 en el report2, etc.
Pero habia un problema, al querer poder debajo en la pagina donde se mostraria la Pagina 1 un menu donde se pudiera escoger de la pagina 1 hasta la ultima pagina que tuviera contenido me haria falta sacar el numero de textarea con contenido, de hay mi ultima pregunta.
De este modo tambien tendria un campo donde inserto el numero de textarea con contenido y como consecuencia; el numero de paginas que tienen contenido.
Asi podria poner sacar el numero de paginas y hacer algo asi:
Código PHP:
<?php 
$uno 
"1";
for (
$i $uno$i <= $numero$i++) { 
echo 
"<a href='reportajes_home.php?id=$id&pag=".$i."'>".$i."</a> | "

?>
No se si realmente esta bien construido pero esa seria la idea, $numero seria el numero de paginas que contiene el reportaje y $id la id del reportaje para que te saliera el de esa id.
Me funciona muy bien lo que me dijiste pero a la hora de coger uno por uno los resultados de los textarea; como los defino? he probado asi pero nada:
Código PHP:
$report1 $HTTP_POST_VARS["report[indice1]"];
$report2 $HTTP_POST_VARS["report[indice2]"];
//ETC... 
No estoy acostumbrado a hacer bucles >_<, saludos y nuevamente, gracias.

P.D.: Con saber lo ultimo ya lo tendria todo ^^

EDIT: Bueno, ya lo tengo todo, al final he decidido hacerlo mas simple poniendo directamente $report[indice1], $report[indice2]... para subirlo a la BD ^^. Muchas gracias a todos por la ayuda y el interes mostrado y disculpad el otro topic, aun tenia las ideas revueltas y las lie poniendo dos topics, gracias

Última edición por Gryphus; 23/08/2004 a las 10:53
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 05:07.