Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   duda con un codigo (https://www.clubdelphi.com/foros/showthread.php?t=41157)

enecumene 08-03-2007 17:34:29

Problemas con el ELSE (duda con un codigo)
 
holas!!!

tengo un pequeño problemita, este es el codigo:
Código PHP:

<?php
if(!$status2 == 'Tramite Aprobado')
{
  include(
'db.php');
  
$sql="select * from reg_pedidos where no='$no' ";
  
$resultmysql_query($sql);
  while(
$row mysql_fetch_array($result))
   {
     include(
'../logs/trapproved.php');
    } 
    
mysql_free_result($result);
  }

include(
'db.php');
$sql="select * from reg_pedidos where no='$no' ";
$resultmysql_query($sql);
while(
$row mysql_fetch_array($result)) 
 {
 include(
'mod_ped_2.php');
   }
   
mysql_free_result($result);

?>

lo que estoy tratando de intentar es que cuando se vaya a mostrar un registro, se muestre un aviso de acuerdo al valor de un hidden form, pero lo que pasa es que me muestra el aviso en todos los registros que consulte sin improtar el valor que tenga en el form hidden. que estoy haciendo mal? tambien intente este código:

Código PHP:

if(!$status2["Tramite Aprobado"])
{
  include(
'db.php');
  
$sql="select * from reg_pedidos where no='$no' ";
  
$resultmysql_query($sql);
  while(
$row mysql_fetch_array($result))
   {
     include(
'../logs/trapproved.php');
    } 
    
mysql_free_result($result);
  } 


vtdeleon 08-03-2007 17:48:40

Saludos

Código PHP:

  while($row mysql_fetch_array($result))
   {
     include(
'../logs/trapproved.php');
    } 

Esta parte del código no la enteindo, pues no hace uso de $row dentro del bucle y en ese caso agregas un montón de veces su contenido include('../logs/trapproved.php'), el cual desconozco lo que hace . (Que me corrijan los maestros en esto:)).

enecumene 08-03-2007 18:01:28

Cita:

Empezado por vtdeleon
Saludos

Código PHP:

  while($row mysql_fetch_array($result))
   {
     include(
'../logs/trapproved.php');
    } 

Esta parte del código no la enteindo, pues no hace uso de $row dentro del bucle y en ese caso agregas un montón de veces su contenido include('../logs/trapproved.php'), el cual desconozco lo que hace . (Que me corrijan los maestros en esto:)).

ese es el codigo del aviso dentro de ella tiene un vinculo que es la siguiente:

Código PHP:

../General/buscartra.php?lista2=tramite_no&texto2=<?echo stripslashes($row["tramite_no"]);?>

ese vinculo hace la funcion de buscar un registro de otra tabla de acuerdo al valor del hidden field de la tabla original.

tabla1: pedidos(tabla original)
tramite_no

tabla2: tramites(la otra tabla)
tramite_no

no se si me di a entender, pero lo que mas necesito es que el aviso me salga solamente de acuerdo al valor del hidden field, por ejemplo, hago una consulta, le doy a un vinculo para ver los detalles de ese registro, supongamos que el campo 'tramite_no' tiene un valor 'tramite aprobado', entonces al momento de hacer click al vinculo si el hidden field tiene el valor 'tramite aprobado' entonces ahi es que tiene que salir el aviso de lo contrario que no me salga..

saludos,

kayetano 09-03-2007 00:04:22

Hola

Estoy muy confundido con tu código:
1. Incluyes el archivo "db.php" tanto dentro del if como fuera, con que lo incluyas una sola vez al principio del script sobra.
2. Realizas la misma consulta dos veces una dentro del if y otra fuera, igualmente con que realices la consulta una sola vez sobra, utilizando la función "mysql_data_seek" puedes posicionar el puntero interno de la consulta al principio de la misma.
3. Quieres que aparezca un aviso en unos registros que cumplan una condición, pero no veo ninguna sentencia IF dentro de ninguno de los WHILE que te has montado.
La verdad es que ya es tarde y no tengo la mente clara, igual mañana por la mañana lo veo con otros ojos.

enecumene 09-03-2007 15:05:50

este codigo creo esta mejor asi:

Código PHP:

<?php
include('db.php');
$sql "SELECT status FROM reg_pedidos where no= '$no' ";
$result mysql_query($sql);
if (
$status2[$result "])
{
  include(
'db.php');
  
$sql="select * from reg_pedidos where no='$no' ";
  
$resultmysql_query($sql);
  while(
$row mysql_fetch_array($result))
   {
     include(
'../logs/trapproved.php');
    } 
    
mysql_free_result($result);
  } else {
   include(
'db.php');
   
$sql="select * from reg_pedidos where no='$no' ";
   
$resultmysql_query($sql);
   while(
$row mysql_fetch_array($result)) 
     {
      include(
'mod_ped_2.php');
      }
   
mysql_free_result($result);
   }
   
?>

pero aun no me funciona el aviso de error.

kayetano 09-03-2007 20:25:38

Hola

para mi que ese código esta peor que el anterior, me parece que te he confundido con mis comentarios.
Voy a poner un código que igual es lo que tu quieres hacer, pero igual es la mayor tontería que he escrito nunca. Lo digo porque no tiengo ni idea de que quieres hacer pero me da que lo intuyo.
Código PHP:

<?php
include('db.php');        // Supongo que esto es la conexión por lo que solo lo pongo una vez
$sql "SELECT status FROM reg_pedidos where no= '$no' ";
$query mysql_query($sql);                // Solo hago una consulta
while( $result mysql_fetch_array$query )  ) {        // Obtengo los resultados de la consulta
    
if ($status2[$result "]) {        // Esta condición no tiene ni pies ni cabeza
        
include('../logs/trapproved.php');
    } else {
        include(
'mod_ped_2.php');
    }
}
mysql_free_result($result);     // Esto no hace falta ya se encarga PHP de hacerlo
?>

Lo que menos claro tengo es la condición que pones, como yo la he puesto ahora no es correcta ¿Cual es la condición para que haga una cosa u otro?
$result es una array de valores donde el indice es el nombre del campo generado por la consulta, por lo tanto la condición debería ser algo asin:
Código PHP:

if ( $status2 == $result["????"]) { 

donde las interrogantes deben ser el nombre del campo que quieres consultar.

AVISO IMPORTANTE PARA NAVEGANTES:
Esta respuesta no tiene por que tener ningun sentido ni parecerse al problema que el amigo enecumene propone pero la lógica me obligaba a contestar con este código, por lo que no me hago responsable de su uso ni entendimiento :).

enecumene 18-03-2007 03:41:55

gracias Kayetano, por este codigo y perdona por la tardanza, el codigo me esta funcionando de esta manera:

Código PHP:

<?php 
include('db.php');  
$sql="select * from reg_pedidos where no='$no' and status <> 'Tramite Aprobado'";
$resultmysql_query($sql);
if(
$result)
{
 while( 
$row mysql_fetch_array($result) ) 
    { 
       include(
'mod_ped_2.php');
       }
    } else {
         echo 
'<div align="center">';
         echo 
'<p><img src="../images/alert.jpg" width="128" height="128"><br>';
         echo 
'<span class="style15">Este Pedido Tiene un Tr&aacute;mite Aprobado!</span></p>';
         echo 
'<p class="style15">Por Favor Haga Click <a href="../General/buscartra.php?lista2=tramite_no&texto2=<?echo stripslashes($row["tramite_no"]);?>">Aqu&iacute;</a> Para ir Al Tr&aacute;mite.</p>';
         echo 
'</div>';
         }          
?>

con este codigo me funciona perfecto con la salvedad que no me funciona el else pues me tira en blanco a que se deberá??.

saludos,

kayetano 20-03-2007 10:09:29

Hola

Tu consulta siempre de un resultado válido por lo tanto siempre entra en el if, realmente la condición debería ser:
Código PHP:

...
   if( 
mysql_num_rows$result ) ) {
... 

Con esto lo que compruebas es que haya algún resultado.

enecumene 20-03-2007 20:17:59

muchiiisimas gracias Kayetano me funciona rebien! y perdona por la tardanza en responder como me ha ido, nuevamente te doy las gracias..

chao!!!


La franja horaria es GMT +2. Ahora son las 06:44:59.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi