Foros del Web » Programando para Internet » PHP »

Mensaje de alerta: Si no encuentro registro

Estas en el tema de Mensaje de alerta: Si no encuentro registro en el foro de PHP en Foros del Web. Estimados Foreros Buenos Dias. Serian tan amables de ver mi codigo y darme una ayuda para ver en que parte y de que forma ingrese ...
  #1 (permalink)  
Antiguo 28/02/2013, 08:12
Avatar de livication  
Fecha de Ingreso: noviembre-2009
Mensajes: 78
Antigüedad: 14 años, 4 meses
Puntos: 0
Mensaje de alerta: Si no encuentro registro

Estimados Foreros

Buenos Dias.

Serian tan amables de ver mi codigo y darme una ayuda para ver en que parte y de que forma ingrese algun script para que al minuto de buscar el registro ( $variable y $variable1 ), en caso de que no se encuentre en la BD arroje una alerta que diga que no esta .

Gracias por la ayuda

Código PHP:
Ver original
  1. <?php
  2.  
  3. if($_POST["buscar"] != ''){
  4.     $cont = $_POST["cont-oculto"];
  5. //  for($i = 1; $i <= $cont; $i++){
  6. //      $variable = $_POST["campo".$i];
  7. //      $variable1 = $_POST["campo1".$i];      
  8. //      echo "<br />";
  9. //      echo $cont;
  10. $sql ="SELECT profolio,(prodescuadria||'x'||prodlargo) as escuadria, ".
  11.           "prodvolumen, ".
  12.           "prodpzas, ".
  13.           "simtrozosconsumo, ".
  14.           "split_part(prodescuadria,'x',1) as part1, ".
  15.           "split_part(prodescuadria,'x',2) as part2, ".
  16.           "prodlargo ".
  17.           "FROM (SELECT a.profolio,a.esqcodigo,a.patcodigo,b.simcodigo, ".
  18.                                   "b.simtrozosconsumo ".
  19.                       "FROM (SELECT profolio,esqcodigo,patcodigo,simcodigo, ".
  20.                                               "simtrozosconsumo ".
  21.                                     "FROM simulaciones ".
  22.                                     "WHERE profolio IN (";
  23.  
  24. //Para cada elemento agrego el valor al la cadena $sql
  25. for($i = 1; $i <= $cont; $i++){
  26.      $variable = $_POST["campo".$i];
  27.      if($i!=1) $sql .=",";
  28.      $sql .="'".$variable."'";
  29. }
  30. //A partir de aqui creo que debes corregir mas cosas...
  31. $sql .=") AND patcodigo IN (";
  32.  
  33. for($i = 1; $i <= $cont; $i++){
  34.      $variable1 = $_POST["campo1".$i];
  35.      if($i!=1) $sql .=",";
  36.      $sql .="'".$variable1."'";
  37. }
  38.  
  39. $sql .=")) b,esquemaprograma a ".
  40.                  " WHERE a.profolio IN (";
  41.                  
  42. for($i = 1; $i <= $cont; $i++){
  43.      $variable = $_POST["campo".$i];
  44.      if($i!=1) $sql .=",";               
  45.     $sql .="'".$variable."'";
  46. }
  47.    
  48. $sql .=") AND a.patcodigo IN (";
  49.  
  50. for($i = 1; $i <= $cont; $i++){
  51.      $variable1 = $_POST["campo1".$i];
  52.      if($i!=1) $sql .=","; 
  53.      $sql .="'".$variable1."'";
  54. }
  55.      
  56. $sql .=") AND a.profolio=b.profolio AND a.esqcodigo=b.esqcodigo AND a.patcodigo=b.patcodigo ".
  57.             "GROUP BY a.profolio,a.esqcodigo,a.patcodigo,b.simcodigo,b.simtrozosconsumo) c,produccionsimulada a ".
  58.             "WHERE a.simcodigo=c.simcodigo AND prodtipo!='C' ".
  59.             "ORDER BY prodvolumen DESC";
  60.            
  61. //echo $sql."<br />";      
  62.                                                            
  63. $result = pg_query ( $dbconn, $sql ) or die ("ERROR EN CONSULTA"); 
  64.  
  65. if( pg_num_rows($result) != 0 ){
  66.     $suma = 0;
  67.     while( $row = pg_fetch_assoc($result) ){
  68.                         //echo number_format( ($row["prodvolumen"]), 3,',','');
  69.                         //echo "<br />";
  70.             $total = $total + $row["prodvolumen"];
  71.             }
  72. //echo number_format($total, 3,',','');
  73.         }  
  74.     //}
  75. }
  76.  
  77. if($_POST["buscar"] != ''){
  78.     $cont = $_POST["cont-oculto"];
  79.     for($i = 1; $i <= $cont; $i++){
  80. //      $variable = $_POST["campo".$i];
  81.         $variable2 = $_POST["campo2".$i];  
  82.         }  
  83. //      echo "<br />";
  84. //      echo $cont;
  85. $sql ="SELECT profolio,(prodescuadria||'x'||prodlargo) as escuadria, ".
  86.           "prodvolumen, ".
  87.           "prodpzas, ".
  88.           "simtrozosconsumo, ".
  89.           "split_part(prodescuadria,'x',1) as part1, ".
  90.           "split_part(prodescuadria,'x',2) as part2, ".
  91.           "prodlargo ".
  92.           "FROM (SELECT a.profolio,a.esqcodigo,a.patcodigo,b.simcodigo, ".
  93.                                   "b.simtrozosconsumo ".
  94.                       "FROM (SELECT profolio,esqcodigo,patcodigo,simcodigo, ".
  95.                                               "simtrozosconsumo ".
  96.                                     "FROM simulaciones ".
  97.                                     "WHERE profolio IN (";
  98.  
  99. //Para cada elemento agrego el valor al la cadena $sql
  100. for($i = 1; $i <= $cont; $i++){
  101.      $variable = $_POST["campo".$i];
  102.      if($i!=1) $sql .=",";
  103.      $sql .="'".$variable."'";
  104. }
  105. //A partir de aqui creo que debes corregir mas cosas...
  106. $sql .=") AND patcodigo IN (";
  107.  
  108. for($i = 1; $i <= $cont; $i++){
  109.      $variable1 = $_POST["campo1".$i];
  110.      if($i!=1) $sql .=",";
  111.      $sql .="'".$variable1."'";
  112. }
  113.  
  114. $sql .=")) b,esquemaprograma a ".
  115.                  " WHERE a.profolio IN (";
  116.                  
  117. for($i = 1; $i <= $cont; $i++){
  118.      $variable = $_POST["campo".$i];
  119.      if($i!=1) $sql .=",";               
  120.     $sql .="'".$variable."'";
  121. }
  122.    
  123. $sql .=") AND a.patcodigo IN (";
  124.  
  125. for($i = 1; $i <= $cont; $i++){
  126.      $variable1 = $_POST["campo1".$i];
  127.      if($i!=1) $sql .=","; 
  128.      $sql .="'".$variable1."'";
  129. }
  130.      
  131. $sql .=") AND a.profolio=b.profolio AND a.esqcodigo=b.esqcodigo AND a.patcodigo=b.patcodigo ".
  132.             "GROUP BY a.profolio,a.esqcodigo,a.patcodigo,b.simcodigo,b.simtrozosconsumo) c,produccionsimulada a ".
  133.             "WHERE a.simcodigo=c.simcodigo AND prodtipo!='C' ".
  134.             "ORDER BY prodvolumen DESC";
  135.            
  136. //echo $sql."<br />";
  137.                    
  138. $result = pg_query ( $dbconn, $sql ) or die ("ERROR EN CONSULTA");
  139. //Contador de Enumeracion
  140. $numeracion = 1;   
  141.  
  142. if( pg_num_rows($result) != 0 ){
  143.     $suma = 0;
  144.             while( $row = pg_fetch_assoc($result) ){
  145.                         $suma = $suma + $row["prodvolumen"];
  146.         ?>
  147.        
  148.                            
  149.                             <tr>
  150.                                 <th background="imag/bg_menuon.gif"><?php echo $numeracion++; ?></th>          
  151.                                 <td align="center"><?php echo $row["escuadria"]; ?></td>
  152.                                 <td align="center"><?php echo $row["simtrozosconsumo"]; ?></td>
  153.                                 <td align="center"><?php echo $row["prodpzas"];
  154.                                                          $suma_pzas = $suma_pzas + $row["prodpzas"];   
  155.                                                          ?></td>
  156.                                 <td align="center"><?php echo number_format($row["prodvolumen"], 2,',',''); ?></td>
  157.                                 <td align="center"><?php $porcent = ( $row["prodvolumen"] / $total ) * 100;
  158.                                                         echo number_format($porcent, 2,',','')."%";
  159.                                                         //echo "<br />";                                                   
  160.                                                         $suma_porcent = $suma_porcent + $porcent;
  161.                                                         ?></td>
  162.                                 <td align="right"><?php //echo $variable2;
  163.                                                         //echo "<br />";
  164.                                                         $real = (($variable2 * $row["prodpzas"])/$row["simtrozosconsumo"]);
  165.                                                         $real_total = $real_total + $real;
  166.                                                         echo number_format($real, 1,',','');
  167.                                                         ?></td>
  168.                                 <?php $largo = (($row["prodlargo"])*1000);
  169.                                        
  170.                                       $vol = (($row["part1"])/1000) * (($row["part2"])/1000) * (($largo)/1000);
  171.                                        
  172.                                      //echo number_format($vol, 3,',',''); ?>                  
  173.                                 <td align="right" background="imag/bg_menuon.gif">
  174.                                                   <?php
  175.                                                         //echo $row["part1"];
  176.                                                         //echo "<br />";
  177.                                                         //echo $row["part2"];
  178.                                                         //echo "<br />";
  179.                                                         //echo $largo;
  180.                                                         //echo "<br />";
  181.                                                         //echo $vol;
  182.                                                         //echo "<br />";
  183.                                                         $volumen_real = $real * $vol;
  184.                                                         $volumen_real_total = $volumen_real_total + $volumen_real;
  185.                                                        
  186.                                                             echo number_format($volumen_real, 3,',','');
  187.                                                                
  188.                                                         ?></td>                                        
  189.                             <?php
  190.                        
  191.                     }                    
  192.                 }                  
  193.             //}
  194.         }
  195.    
  196.                                                
  197. ?>
  #2 (permalink)  
Antiguo 28/02/2013, 08:33
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 9 meses
Puntos: 181
Respuesta: Mensaje de alerta: Si no encuentro registro

Hola, pues veo que usas postgresql para hacer el aplicativo. No se a cuales de todas las consultas que tienes quieres aplicarle el mensaje pero es tan sencillo como usar pg_num_rows, si la consulta te da cero quiere decir que no encontro el resultado y podrias hacer una redireccion a x pagina con un mensaje de error. ejemplo

Código PHP:
if(pg_num_rows($consulta)==0)
header(Location:inicio.php?m=1);
exit();
//no se si sirve esto o break, es cosa que pruebes. Igual revisa la sintaxis que la esciribi de afan 
Y en la pagina haces un switch case para recoger el tipo de error que recibes por GET e imprimirlo.
__________________
Blog de humor http://elcuasatar.net63.net/
  #3 (permalink)  
Antiguo 28/02/2013, 08:47
Avatar de livication  
Fecha de Ingreso: noviembre-2009
Mensajes: 78
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Mensaje de alerta: Si no encuentro registro

Cita:
Iniciado por cuasatar Ver Mensaje
Hola, pues veo que usas postgresql para hacer el aplicativo. No se a cuales de todas las consultas que tienes quieres aplicarle el mensaje pero es tan sencillo como usar pg_num_rows, si la consulta te da cero quiere decir que no encontro el resultado y podrias hacer una redireccion a x pagina con un mensaje de error. ejemplo

Código PHP:
if(pg_num_rows($consulta)==0)
header(Location:inicio.php?m=1);
exit();
//no se si sirve esto o break, es cosa que pruebes. Igual revisa la sintaxis que la esciribi de afan 
Y en la pagina haces un switch case para recoger el tipo de error que recibes por GET e imprimirlo.


Amigo hice los siguiente pero pasa de largo el ciclo =/

No comprendo


Código PHP:
Ver original
  1. for($i = 1; $i <= $cont; $i++){
  2.      $variable = $_POST["campo".$i];
  3.      if($i!=1){ $sql .=",";
  4.      $sql .="'".$variable."'";
  5.      }else{
  6.      echo"<script type=\"text/javascript\">alert('Usted esta ingresando un numero de folio erroneo'); window.location='index2.php';</script>";  
  7.      }
  8. }
  #4 (permalink)  
Antiguo 28/02/2013, 09:32
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 9 meses
Puntos: 181
Respuesta: Mensaje de alerta: Si no encuentro registro

Vaya, creo que el problema es que tú estas hablando de peras y yo de manzanas. Tu lo que estas comentado es que si encuentra un campo del formulario vacio no lo deje continuar la consulta y lo retorne a el index2 o como lo quieras llamar tú.

Es tan sencillo como mirar si existe el campo con isset y verificar si no esta vacio con empty.

Código PHP:
     for($i 1$i <= $cont$i++){
     
$variable $_POST["campo".$i];
     if(
$i!=1){ $sql .=",";
     
$sql .="'".$variable."'";
     }else{
     echo
"<script type=\"text/javascript\">alert('Usted esta ingresando un numero de folio erroneo'); window.location='index2.php';</script>";  
     }

Definitivamente no entiendo que es lo que haces en esa parte de tu código. Para mi esta mal y no se si puedas hacer lo que pretendes. Le pusiste a tus nombres de campo campo1, campo2, campox? No me parece buena idea llamarlos así porque si a futuro deseas hacerle un seguimiento a tu script deberas regresar al formulario y mirar a cual te refieres en lugar de ponerle algo tan sencillo como correo, nombre, edad, etc.

Si quieres evaluar la matriz POST sin escribir uno por uno los valores del mismo, recorrelo con un ciclo foreach. Es mas sencillo, obvio tienes que adaptarlo a tu problema. Pero te dejo el enlace para que veas lo facil que es.

http://www.desarrolloweb.com/articulos/1326.php

Insisto que sigas mi sugerencia para redireccionar. No uses javascript. De la manera como te lo digo puedes hacerlo de manera mas elegante y sin necesidad que el usuario le de clic a un boton.
__________________
Blog de humor http://elcuasatar.net63.net/
  #5 (permalink)  
Antiguo 28/02/2013, 10:05
Avatar de livication  
Fecha de Ingreso: noviembre-2009
Mensajes: 78
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Mensaje de alerta: Si no encuentro registro

Cita:
Iniciado por cuasatar Ver Mensaje
Vaya, creo que el problema es que tú estas hablando de peras y yo de manzanas. Tu lo que estas comentado es que si encuentra un campo del formulario vacio no lo deje continuar la consulta y lo retorne a el index2 o como lo quieras llamar tú.

Es tan sencillo como mirar si existe el campo con isset y verificar si no esta vacio con empty.

Código PHP:
     for($i 1$i <= $cont$i++){
     
$variable $_POST["campo".$i];
     if(
$i!=1){ $sql .=",";
     
$sql .="'".$variable."'";
     }else{
     echo
"<script type=\"text/javascript\">alert('Usted esta ingresando un numero de folio erroneo'); window.location='index2.php';</script>";  
     }

Definitivamente no entiendo que es lo que haces en esa parte de tu código. Para mi esta mal y no se si puedas hacer lo que pretendes. Le pusiste a tus nombres de campo campo1, campo2, campox? No me parece buena idea llamarlos así porque si a futuro deseas hacerle un seguimiento a tu script deberas regresar al formulario y mirar a cual te refieres en lugar de ponerle algo tan sencillo como correo, nombre, edad, etc.

Si quieres evaluar la matriz POST sin escribir uno por uno los valores del mismo, recorrelo con un ciclo foreach. Es mas sencillo, obvio tienes que adaptarlo a tu problema. Pero te dejo el enlace para que veas lo facil que es.

http://www.desarrolloweb.com/articulos/1326.php

Insisto que sigas mi sugerencia para redireccionar. No uses javascript. De la manera como te lo digo puedes hacerlo de manera mas elegante y sin necesidad que el usuario le de clic a un boton.
La verdad lo unico que necesito es que si el dato no se encuentra dentro de la BD aparezca un alerta, en vez de que pase la pagina en blanco !

Y pienso que eso deberia ser en los for donde comparo los datos !
  #6 (permalink)  
Antiguo 28/02/2013, 10:29
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 9 meses
Puntos: 181
De acuerdo Respuesta: Mensaje de alerta: Si no encuentro registro

Ahora si que estamos peor que antes. Tu tema dice una cosa, la explico y en tu código me sales con otra así que la vuelvo a explicar y me sales con que no.

Cita:
La verdad lo unico que necesito es que si el dato no se encuentra dentro de la BD aparezca un alerta, en vez de que pase la pagina en blanco !

Y pienso que eso deberia ser en los for donde comparo los datos !
Resumo lo que yo haria y con esto doy por concluida mi colaboración en este tema:

A partir de los datos recibidos por POST verifico que existen y que los datos no sean vacios, caso contrario lo redirecciono (usando el header location explicandole al usuario su error)

Filtro los datos para evitar inyección de código y demas.

A partir de ahí hago mi consulta con postgresql o mysql o cualquier gestor de bases que uses.

Con la función pg_num_rows o mysql_num_rows verificar si existe un registro, caso contrario redireccionar con header

Código PHP:
if(pg_num_rows($consulta)==0)
header(Location:inicio.php?m=1);
break;
//no se si sirve esto o break, es cosa que pruebes. Igual revisa la sintaxis que la esciribi de afan 
En el index puedes hacer algo como

Código PHP:
if(@isset($_GET['m'])){
 switch(
$_GET['m']){
 case 
1
 echo 
"Error, dato no encontrado";
 break;
 case 
2:
 echo 
"el error que quieras";//aqui le puedes colocar lo que desees
//etcetera
 
}

Tambien lo puedes hacer con javascript (aunque me parece liarse en vano) pero te recomiendo no imprimirlo con echo

has algo asi como:

Código PHP:
<?php
else{
?>
//escribe directamente aca tu javascript, como ves cierro y abro php para que este sea codigo javascript puro.
<?php
}
No me gustaria hacerlo con javascript pero es tu decisión. Doy por terminada mi ayuda pero espero saber si pudiste o no resolver tu problema. Mucha suerte.


p.s.

Cita:
Amigo hice los siguiente pero pasa de largo el ciclo =/

No comprendo
Código PHP:
    for($i 1$i <= $cont$i++){
         
$variable $_POST["campo".$i];
         if(
$i!=1){ $sql .=",";
         
$sql .="'".$variable."'";
         }else{
         echo
"<script type=\"text/javascript\">alert('Usted esta ingresando un numero de folio erroneo'); window.location='index2.php';</script>";  
         }
    } 
En que parte le estas diciendo que haga la query de ese $sql?

donde esta un mysql query o un postgresql query que verifique que hizo la busqueda en tu base de datos y saber si genero una consulta?

Si entiendes eso podras arreglar tu aplicativo. Yo sigo sin entender que haces ahí.
__________________
Blog de humor http://elcuasatar.net63.net/

Última edición por cuasatar; 28/02/2013 a las 13:32

Etiquetas: alerta, encuentro, mensaje, registro, select, sql
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 20:52.