Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Extraer registro de DB con una variable

Estas en el tema de Extraer registro de DB con una variable en el foro de PHP en Foros del Web. Hola a todos, como verán soy nuevo por aca. Se me ha presentado un problema que no me deja dormir. Tengo una pagina llamada "reporte.php" ...
  #1 (permalink)  
Antiguo 10/04/2012, 15:36
 
Fecha de Ingreso: abril-2012
Mensajes: 11
Antigüedad: 12 años, 7 meses
Puntos: 0
Pregunta Extraer registro de DB con una variable

Hola a todos, como verán soy nuevo por aca. Se me ha presentado un problema que no me deja dormir.

Tengo una pagina llamada "reporte.php" en la cual tengo este formulario:

Código PHP:
<?php
include ("../conexion/conexion.php");
$articulo=mysql_query("select articulo from articulos1",$con);
?>
.
.
.
.
<td>
 <form action="mostrar.php" method="post">
 <select name="articulos">
        <?php for ($la=0;$la<mysql_num_rows($articulo);$la++)
    {
    
$ubi mysql_result($articulo,$la,"articulo");
    echo 
"<option value=".$ubi.">".$ubi."</option>";
    }
    
?>
      </select>
      </td>
<input type="submit" value="Mostrar datos" > 
</form>
y este mi "mostrar.php":

Código PHP:
<?
if (!$_POST){
?> 
<?php include('../conexion/conexion.php');
$articulos=$_POST["articulos"]; 
$r=mysql_query("select * From articulos1 WHERE articulo = '$articulos' Order by id",$con);[/COLOR]
?>
<html>
<head>
<link rel="stylesheet" type="text/css" href="../css/style.css" media="screen" />
<center><img src="../images/logo.jpg" width="768" height="132"><br>
<h3>Reporte de Inventario Ordenado por Ubicacion</h3>
<script language="javascript" type="text/javascript">
function enviar(pagina){
document.excel.action = pagina;
document.excel.submit();

}
</script>
</head>
<body>
<center>
<form>
  <input type="button" name="imprimir" value="Imprimir" onClick="window.print();">
</form>
<form name="excel" action="" method="post">
<input type="button" value="exportar a Excel" onClick="enviar('excel.php')">
<input type="button" value="exportar a Pdf" onClick="enviar('pdf.php')">
</form>
 </center><br>
<font face='Arial, Helvetica, sans-serif'>
<table border="1" width="1011">
<tr><td width="58"><b><i>Id de art&iacute;culo:</i></b></td>
<td width="73"><b><i>Encargado</i></b></td>
<td width="69"><b><i>Ubicación</i></b></td>
<td width="56"><b><i>Art&iacute;culo</i></b></td>
<td width="62"><b><i>Cantidad</i></b></td>
<td width="58"><b><i>Precio Unitario</i></b></td>
<td width="43"><b><i>Marca</i></b></td>
<td width="74"><b><i>Unidad</i></b></td>
<td width="81"><b><i>Fecha Entrada</i></b></td>
<td width="81"><b><i>Fecha Salida</i></b></td>
<td width="82"><b><i>Retirado por</i></b></td>
</tr>
</table>
<?php for ($la=0;$la<mysql_num_rows($r);$la++){
$id1=mysql_result($r,$la,"id");
$encargado1=mysql_result($r,$la,"encargado");
$ubicacion1=mysql_result($r,$la,"ubicacion");
$encargado1=mysql_result($r,$la,"encargado");
$ubicacion1=mysql_result($r,$la,"ubicacion");
$articulo1=mysql_result($r,$la,"articulo");
$cantidad1=mysql_result($r,$la,"cantidad");
$preciou1=mysql_result($r,$la,"preciou");
$marca1=mysql_result($r,$la,"marca");
$unidad1=mysql_result($r,$la,"unidad");
$entrada1=mysql_result($r,$la,"entrada");
$salida1=mysql_result($r,$la,"salida");
$retirado1=mysql_result($r,$la,"retirado");
echo 
"<center><table border='1' width='1011'>";
echo 
"<tr><td width='58'> $id1 </td><td width='73'> $encargado1 </td><td width='69'> $ubicacion1 </td><td width='56'> $articulo1 </td><td width='62'> $cantidad1 </td><td width='58'> $preciou1 </td><td width='43'> $marca1 </td><td width='75'> $unidad1 </td><td width='81'> $entrada1 </td><td width='81'> $salida1 </td><td width='82'> $retirado1 </td>";
echo 
"</table>";
}
?>
</body>
</html>
Lo que deseo es que de la pagina "reporte.php" envie la variable seleccionada con Select a "mostrar.php", para que muestre solo el artículo seleccionado previamente, porque de la manera descrita no me genera ningún dato.

es posible eso?

Les agradezco la ayuda.
  #2 (permalink)  
Antiguo 10/04/2012, 16:01
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 13 años
Puntos: 67
Respuesta: Extraer registro de DB con una variable

Prueba así:

Código PHP:
<?php 
  
include('../conexion/conexion.php'); 
  
$articulos=$_POST["articulos"];  
  
$r=mysql_query("select * From articulos1 WHERE articulo = '".$articulos."' Order by id",$con);
?>
El primer If no lo entiendo muy bien, podrías decir que es lo que quieres hacer con él?
  #3 (permalink)  
Antiguo 10/04/2012, 16:03
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 15 años, 2 meses
Puntos: 44
Respuesta: Extraer registro de DB con una variable

ahm tienes problemas al momento de cerrar tus tags en tu archivo formulario, posteriormente trata de hacer un print_r a tu variable $_POST praa verificar que realmente estén llegando los datos
  #4 (permalink)  
Antiguo 10/04/2012, 16:04
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 15 años, 2 meses
Puntos: 44
Respuesta: Extraer registro de DB con una variable

Zalito12, el está validando si realmente tiene algo el POST, en caso de no tener algo que no haga nada... a eso se refiere
  #5 (permalink)  
Antiguo 10/04/2012, 16:22
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 13 años
Puntos: 67
Respuesta: Extraer registro de DB con una variable

Pero lo que yo entiendo es:

Si no hay $_POST{ Y aqui el resto de documento, incluido la consulta a la base de datos en la que usa la variable $_POST}

Por eso no le encuentro sentido yo pondría algo así:
Código PHP:
<?php 
include('../conexion/conexion.php'); 
if(!isset(
$_POST['articulos'])){
 
header('Location: reporte.php');
}
else{
  
$articulos=$_POST["articulos"];  
  
$r=mysql_query("select * From articulos1 WHERE articulo = '".$articulos."' Order by id",$con);

?>
Resto de documento

<?php ?>
¿No?
  #6 (permalink)  
Antiguo 10/04/2012, 16:25
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 15 años, 2 meses
Puntos: 44
Respuesta: Extraer registro de DB con una variable

Ouch... no me habia percatado de ello, es que sí tiene un leve problema con la estructuración de su documento :S jejejeje al menos para mi gusto :P

jajajaja pero pues tienes razón zalito12
__________________
Desde hace tiempo estoy esperandote... bienvenido mi pequeño Diego!!!
  #7 (permalink)  
Antiguo 10/04/2012, 21:20
 
Fecha de Ingreso: abril-2012
Mensajes: 11
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Extraer registro de DB con una variable

Zalito12 y P414, gracias por sus aportes, lo probaré mañana en la oficina y les comento
  #8 (permalink)  
Antiguo 11/04/2012, 11:03
 
Fecha de Ingreso: abril-2012
Mensajes: 11
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Extraer registro de DB con una variable

zalito12 y p414, me funcionó quitando la validación, pero... si tengo dos artículos con el mismo nombre no me genera los datos...a qué se deberá eso? alguna idea?
  #9 (permalink)  
Antiguo 11/04/2012, 11:14
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 13 años
Puntos: 67
Respuesta: Extraer registro de DB con una variable

Si, en tu bucle for deberias poner menor o igual (<=)
Pero te voy a simplificar un poco el código, porque tienes ahi una parrafada que complica un poco las cosas:
Código PHP:
<?php 
while($la mysql_fetch_assoc($r)){
$id1=mysql_result($r,$la,"id"); 
echo 
"<center><table border='1' width='1011'>"
echo 
"<tr><td width='58'>".$la['id']."</td><td width='73'>".$la['encargado']."</td><td width='69'>".$la['ubicacion']."</td>
<td width='56'>"
.$la['articulo']."</td><td width='62'>".$la['cantidad']."</td><td width='58'>".$la['preciou']."</td>
<td width='43'>"
.$la['marca']."</td><td width='75'>".$la['unidad']."</td><td width='81'>".$la['entrada']."</td>
<td width='81'>"
.$la['salida']."</td><td width='82'>".$la['retirado']."</td>"
echo 
"</table>"

?>
Creo que no te he cambiado nada de sitio, pero bueno creo que es bastante intuitivo y que lo manejarás a gusto.
  #10 (permalink)  
Antiguo 11/04/2012, 11:36
 
Fecha de Ingreso: abril-2012
Mensajes: 11
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Extraer registro de DB con una variable

zalito12, muchas gracias por simplificarme el código, aunque me lanzo un error "Warning: mysql_result() expects parameter 2 to be long,....on line 51"
Código PHP:
$id1=mysql_result($r,$la,"id"); 
Respecto a mi pregunta previa, me di cuenta que no hay problema con artículos duplicados, sino el problemas es con artículos que tengan "espacio" en el nombre.

Y Gracias otra vez por tu colaboración.
  #11 (permalink)  
Antiguo 11/04/2012, 11:59
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 13 años
Puntos: 67
Respuesta: Extraer registro de DB con una variable

Perdon, se me olvido borrar esa línea...
Vale, pon un echo $_POST['articulos']; antes de la consulta para ver que te devuelve, si te devuelve bien el nombre de los que tienen espacios.
  #12 (permalink)  
Antiguo 11/04/2012, 16:34
 
Fecha de Ingreso: abril-2012
Mensajes: 11
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Extraer registro de DB con una variable

Gracias zalito, pero aún sigo con el problema de que no me devuelve los nombres con espacios
  #13 (permalink)  
Antiguo 11/04/2012, 16:37
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 13 años
Puntos: 67
Respuesta: Extraer registro de DB con una variable

Sí, lo sé, te pedía que pusieses un echo para ver que valor lleva la variable:
Código PHP:
...
else{
  
$articulos=$_POST["articulos"];  
  echo 
$articulos.'<br>';
  
$r=mysql_query("select * From articulos1 WHERE articulo = '".$articulos."' Order by id",$con);
... 
Pon eso y a ver que valores lleva, de todas formas prueba con:
Código PHP:
...
else{
  
$articulos=$_POST["articulos"];  
  echo 
$articulos.'<br>';
  
$r=mysql_query("select * From articulos1 WHERE articulo LIKE '".$articulos."' Order by id",$con);
... 
  #14 (permalink)  
Antiguo 11/04/2012, 21:19
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 15 años, 2 meses
Puntos: 44
Respuesta: Extraer registro de DB con una variable

aunque para ser un poco mas "abiertos" al realizar la búsqueda te recomiendo usar esta linea

Código PHP:
Ver original
  1. $r=mysql_query("select * From articulos1 WHERE articulo LIKE '%".$articulos."%' Order by id",$con);

Los caracteres "%" sirven para indicar que no importa lo que tenga en la posición donde lo pones, siempre y cuando tengan el valor contenido en la variable $articulos
__________________
Desde hace tiempo estoy esperandote... bienvenido mi pequeño Diego!!!
  #15 (permalink)  
Antiguo 12/04/2012, 07:10
 
Fecha de Ingreso: abril-2012
Mensajes: 11
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Extraer registro de DB con una variable

Cita:
Iniciado por p414 Ver Mensaje
aunque para ser un poco mas "abiertos" al realizar la búsqueda te recomiendo usar esta linea

Código PHP:
Ver original
  1. $r=mysql_query("select * From articulos1 WHERE articulo LIKE '%".$articulos."%' Order by id",$con);

Los caracteres "%" sirven para indicar que no importa lo que tenga en la posición donde lo pones, siempre y cuando tengan el valor contenido en la variable $articulos
Buena idea P414, ahora sí me muestra los nombres con espacio,

zalito12 y P414, gracias por su colaboración

PD: ¿Esta correcto esto?
Código PHP:
Correspondiente a".$articulos." 
Como se habrán dado cuenta deseo mostrar el nombre del artículo, pero sigo con el problema de los nombres con espacios, probé ponerle como me dijo P414 '%".$articulos."%' y no me funcionó.
  #16 (permalink)  
Antiguo 12/04/2012, 08:15
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 13 años
Puntos: 67
Respuesta: Extraer registro de DB con una variable

Como te he dicho puede que tengas algun problema con el form y no te esté enviando bien los nombres cone espacios.
Pon esto a ver que te deuelve
Código PHP:
...
else{
  
$articulos=$_POST["articulos"];  
  echo 
$articulos.'<br>'//A ver que devuelve este echo
  
$r=mysql_query("select * From articulos1 WHERE articulo LIKE '".$articulos."' Order by id",$con);
... 
  #17 (permalink)  
Antiguo 12/04/2012, 11:15
 
Fecha de Ingreso: abril-2012
Mensajes: 11
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Extraer registro de DB con una variable

Cita:
Iniciado por zalito12 Ver Mensaje
Como te he dicho puede que tengas algun problema con el form y no te esté enviando bien los nombres cone espacios.
Pon esto a ver que te deuelve
Código PHP:
...
else{
  
$articulos=$_POST["articulos"];  
  echo 
$articulos.'<br>'//A ver que devuelve este echo
  
$r=mysql_query("select * From articulos1 WHERE articulo LIKE '".$articulos."' Order by id",$con);
... 
Si, de hecho seguí tu consejo y lo puse, tengo un artículo llamado "Sal Rosada", y el echo me muestra solo "Sal". Gracias.
  #18 (permalink)  
Antiguo 12/04/2012, 23:55
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 15 años, 2 meses
Puntos: 44
Respuesta: Extraer registro de DB con una variable

se me hace raro que stas lineas

Código PHP:
Ver original
  1. $articulos=$_POST["articulos"];  
  2.   echo $articulos.'<br>'; //A ver que devuelve este echo

te arrojen solo una palabra y no lo que mandaste, puedes poner tu formulario de nuevo ??

´porfavor
__________________
Desde hace tiempo estoy esperandote... bienvenido mi pequeño Diego!!!
  #19 (permalink)  
Antiguo 13/04/2012, 00:43
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 13 años
Puntos: 67
Respuesta: Extraer registro de DB con una variable

Este es el problem creo:
Código PHP:
echo "<option value=".$ubi.">".$ubi."</option>"
//Cambialo por:
echo '<option value="'.$ubi.'">'.$ubi.'</option>'
  #20 (permalink)  
Antiguo 13/04/2012, 07:44
 
Fecha de Ingreso: abril-2012
Mensajes: 11
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Extraer registro de DB con una variable

Cita:
Iniciado por zalito12 Ver Mensaje
Este es el problem creo:
Código PHP:
echo "<option value=".$ubi.">".$ubi."</option>"
//Cambialo por:
echo '<option value="'.$ubi.'">'.$ubi.'</option>'
Son unos maestros!!!, tenias razón zalito12 el error estaba ahí, muchas gracias tambien a P414 por la ayuda.
  #21 (permalink)  
Antiguo 13/04/2012, 08:10
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 15 años, 2 meses
Puntos: 44
Respuesta: Extraer registro de DB con una variable

pues el que màs te apoyó fue zalito12 xD asiq ue bueno acuerdate de dar karma :D
__________________
Desde hace tiempo estoy esperandote... bienvenido mi pequeño Diego!!!
  #22 (permalink)  
Antiguo 13/04/2012, 08:20
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 13 años
Puntos: 67
Respuesta: Extraer registro de DB con una variable

Nada, son las cosillas que pasan cuando no se usan comillas en los atributos. Mucha gente dice que funciona igual pero yo siempre digo de ponerlos, ya no te volverás a olvidar jeje
  #23 (permalink)  
Antiguo 13/04/2012, 08:57
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 15 años, 2 meses
Puntos: 44
Respuesta: Extraer registro de DB con una variable

pues dudo que funcionen igual :S pero pues cada persona programa, piensa e imagina de forma diferente a todos los demás, pero yo personalmente las pongo para evitar posibles problemas despues... :)
__________________
Desde hace tiempo estoy esperandote... bienvenido mi pequeño Diego!!!

Etiquetas: especifico, registro
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 21:38.