Foros del Web » Programando para Internet » PHP »

Este codigo no imprime el valor..

Estas en el tema de Este codigo no imprime el valor.. en el foro de PHP en Foros del Web. llevo leyendo 3 horas ... como imprimir arrays, como imprimir consultas... mi consulta no me imprime ... etc .. Y ps no c si es ...
  #1 (permalink)  
Antiguo 20/11/2008, 03:45
Avatar de jozzj  
Fecha de Ingreso: noviembre-2008
Mensajes: 33
Antigüedad: 15 años, 5 meses
Puntos: 0
Pregunta Este codigo no imprime el valor..

llevo leyendo 3 horas ... como imprimir arrays, como imprimir consultas... mi consulta no me imprime ... etc ..

Y ps no c si es el sueño .. tantos dias de no dormir ... o serio soy muy borrico para esto ...

Código PHP:
<?php mysql_select_db($database_Hotel$Hotel);
$query_DetalleP1 "SELECT Detalle_Producto FROM detalle_factura INNER JOIN producto ON detalle_factura.Detalle_p1 = producto.Valor_Producto ORDER BY Cod_Producto DESC";
 
 
$DetalleP1 mysql_query($query_DetalleP1$Hotel) or die(mysql_error());
 while(
$row_DetalleP1 mysql_fetch_array($DetalleP1))
          {  echo 
'<br>'.$row["Detalle_Producto"];}
 
?>
Gracias al alma piadosa que me diga . por que caraj.. no imprime la consulta .. o un link de algun tema donde pueda saber x que no sirve mis ojos se lo agradecen ...
  #2 (permalink)  
Antiguo 20/11/2008, 03:55
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Este codigo no imprime el valor..

¿notas las diferencias??

Cita:
while($row_DetalleP1 = mysql_fetch_array($DetalleP1))
{ echo '<br>'.$row["Detalle_Producto"];}
PDTA: ¿a que te dedicas?

__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 20/11/2008, 04:05
Avatar de danielrivas  
Fecha de Ingreso: noviembre-2007
Ubicación: Preprocessing
Mensajes: 275
Antigüedad: 16 años, 5 meses
Puntos: 6
Respuesta: Este codigo no imprime el valor..

Con el bucle while, estás definiendo un array ($row_DetalleP1) y luego estás imprimiendo (o intentandolo) un elemento de otro array ($row) que no está definido...
  #4 (permalink)  
Antiguo 20/11/2008, 11:07
Avatar de jozzj  
Fecha de Ingreso: noviembre-2008
Mensajes: 33
Antigüedad: 15 años, 5 meses
Puntos: 0
ahh otra cosita... Bueno muchachos muhas gracias.. si entendi la idea y si salio ... bueno yo me dedico orita a aprender php... soy estudiante de sistemas ... y ps no puedo aprender digamos que con un tutuorial paso a paso .. si no por medio de ejemplos.. y practica error... igual orita veo 8 materias y ando en finales .. pero esto de php si es urgente .. por eso eh transnochado tanto.. ... espero . seguir aprendiendo y poder tambien ayudar a los demas ... serio muchas gracias

ahh y otra cosita... bueno ahi me sale una cantidad de prodructos .. si yo solo kisiera que me saliera solo el ultimo .. ?

Gracias

Última edición por GatorV; 20/11/2008 a las 13:43
  #5 (permalink)  
Antiguo 20/11/2008, 11:14
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Respuesta: Este codigo no imprime el valor..

Código PHP:
$query_DetalleP1 "SELECT Detalle_Producto FROM detalle_factura INNER JOIN producto ON detalle_factura.Detalle_p1 = producto.Valor_Producto ORDER BY Cod_Producto DESC limit 1"
No?

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #6 (permalink)  
Antiguo 20/11/2008, 11:18
Avatar de jozzj  
Fecha de Ingreso: noviembre-2008
Mensajes: 33
Antigüedad: 15 años, 5 meses
Puntos: 0
uyyyyy jeje ps si eso si lo sabia pero ps noc ando mal.. jejeje se me paso o depronto ya tengo la cabeza mal... muchas gracias serio que si.

bueno que pena la joda . pero este es otro detalle... dentro de esa consulta ..
me sale mal y esta en la forma de la consulta SQL osea en la estructura .... no c si c pueda ... tengo dos tablas una que c llama productos .. y tiene Cod_producto, Detalle_producto y Valor Producto .. y tengo otra tabla que cse llama Detalle_Factura.. en detalle factura se guarda un precio digamos 1500 que coresponde a un producto digamos agua en botella 1500 .. . ese valor se guarda en un capo que se llama Detalle_p1 . la consulta es : que con el ultimo registro ... me traiga el nombre del articulo que hay en la tabla Productos que sea igual al iltimo valor agregado .. (losm productos tiene diferentes precios)

la consultaq que hice fue esta pero me bota es el ultimo articulo de la tabla producto... no el nombre del que sea igual a 1500 o 2000 :



Cita:
<?php mysql_select_db($database_Hotel, $Hotel);

$query_DetalleP1 = "SELECT Detalle_Producto FROM Producto INNER JOIN detalle_factura ON producto.Valor_producto = detalle_factura.Detalle_p1 ORDER BY Detalle_p1 DESC limit 1";

$DetalleP1 = mysql_query($query_DetalleP1, $Hotel) or die(mysql_error());
while($row_DetalleP1 = mysql_fetch_array($DetalleP1))
{ echo $row_DetalleP1=["Detalle_Producto"];}
?>
Gracias por su ayuda..

Última edición por GatorV; 20/11/2008 a las 13:42
  #7 (permalink)  
Antiguo 20/11/2008, 12:52
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Respuesta: Este codigo no imprime el valor..

jozzj, por favor (espero estar hablando por varios), antes de continuar preguntando leete este thread: http://www.forosdelweb.com/f74/120-m...grafia-634340/
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #8 (permalink)  
Antiguo 20/11/2008, 13:35
Avatar de jozzj  
Fecha de Ingreso: noviembre-2008
Mensajes: 33
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Este codigo no imprime el valor..

Vale, me disculpo con los integrantes del fofo y con la Real academia de la lengua.
Bueno que pena seguir molestando, pero este es otro detalle dentro de la misma consulta:
No obtengo el valor que deseo por la forma de la consulta , tengo dos tablas una con el nombre productos los campos son : Cod_producto, Detalle_producto y Valor_Producto y la otra se llama Detalle_Factura , en detalle factura se guarda el precio de un artículo en el campo DetalleP1, por ejemplo 1500 que corresponde al valor de un producto Código: 1 Detalle_producto :agua en botella Valor_Producto 1500 , la pregunta es como imprimir por pantalla el nombre del producto, dependiendo del valor de DetalleP1:
Mi idea es que si 1500 está en el último registro de DetalleP1, busque he imprima el nombre del artículo que tiene un valor de 1500.

Cita:
Cita:
<?php mysql_select_db($database_Hotel, $Hotel);

$query_DetalleP1 = "SELECT Detalle_Producto FROM Producto INNER JOIN detalle_factura ON producto.Valor_producto = detalle_factura.Detalle_p1 ORDER BY Detalle_p1 DESC limit 1";

$DetalleP1 = mysql_query($query_DetalleP1, $Hotel) or die(mysql_error());
while($row_DetalleP1 = mysql_fetch_array($DetalleP1))
{ echo $row_DetalleP1=["Detalle_Producto"];}
?>
Gracias por su ayuda y de nuevo me disculpo.

Última edición por jozzj; 20/11/2008 a las 14:10
  #9 (permalink)  
Antiguo 20/11/2008, 13:51
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Respuesta: Este codigo no imprime el valor..

A ver si te comprendo...

Vos estás entablando una relación entre ambas tablas por el precio? Que pasa si tenés muchos productos con el mismo precio?...antes de continuar quiero comprender esto y gracias por mejorar tu manera de redactar.


Cita:
Vale, me disculpo con los integrantes del fofo y con la Real academia de la lengua.
No es para tanto aún siendo irónico, pero realmente se torna imposible leer tanto texto sms junto...y ya que estamos siempre pon el código entre los tags [php], queda más legible.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #10 (permalink)  
Antiguo 20/11/2008, 14:02
Avatar de jozzj  
Fecha de Ingreso: noviembre-2008
Mensajes: 33
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Este codigo no imprime el valor..

Hola, si pensé en la posibilidad de que varios productos tengan el mismo precio y sé que no es muy ortodoxa la consulta, pero en este caso ahí solo 15 artículos y nunca se va repetir el precio.

Y no me disculpe con ironía o sarcasmo, lo dije enserio porque me sentí avergonzado, personas como mi novia o compañeros me dicen que escribo muy mal.
  #11 (permalink)  
Antiguo 20/11/2008, 14:14
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Respuesta: Este codigo no imprime el valor..

Cita:
Y no me disculpe con ironía o sarcasmo, lo dije enserio porque me sentí avergonzado, personas como mi novia o compañeros me dicen que escribo muy mal.
Ahora no lo estás haciendo, eso quiere decír que sabes y podés expresarte bien (y no hablamos de faltas ortográficas, cosa que todos podemos tener, sino de ese lenguaje SMS ilegible), y no sientas vergüenza!, vergüenza se siente por otras cosas.

En fin, a tu problema...siendo así como me decís (la relación por el precio, cosa que no es correcta. Para eso están los PK en la db) la consulta que ponés en el ante último POST está bien, y seguramente te esté imprimiendo un producto, el de mayor precio.

Es así?

Ahora bien, cosa que no comprendí hasta ahora, cual es el problema que estás teniendo?
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #12 (permalink)  
Antiguo 20/11/2008, 14:23
Avatar de jozzj  
Fecha de Ingreso: noviembre-2008
Mensajes: 33
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Este codigo no imprime el valor..

Hola, me hace la impresión del último registro de la tabla producto que es jabón y tiene un valor de 1200 lo ideal es que me mostrara: Agua en botella que es de $1500 y fue el último registro que inserte en la tabla Detalle_factura.

No disculpa, acabo de ver y no me muestra el último valor siempre me muestra jabón porque ahí un registro debajo de jabón
  #13 (permalink)  
Antiguo 20/11/2008, 14:37
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Respuesta: Este codigo no imprime el valor..

Cuando haces "ORDER BY Detalle_p1 DESC" en la consulta le estás diciendo que te ponga primero el registro con mayor valor en el campo Detalle_p1. Que tipo de dato es este campo? (suelo hacerlos del tipo decimal).

Pegá si podés el dump de ambas tablas así vemos bien su estructura.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #14 (permalink)  
Antiguo 20/11/2008, 14:50
Avatar de jozzj  
Fecha de Ingreso: noviembre-2008
Mensajes: 33
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Este codigo no imprime el valor..

Tanto el Detalle_producto y Producrop1 son varchar, con lo del dump te refieres a la estructura de las tablas ?

Código:
CREATE DATABASE `hotel2`
    CHARACTER SET 'utf8'
    COLLATE 'utf8_general_ci';

USE `hotel2`;

#
# Structure for the `detalle_factura` table : 
#

CREATE TABLE `detalle_factura` (
  `Cod_DFactura` int(11) unsigned zerofill NOT NULL auto_increment,
  `Fecha` date default NULL,
  `Hora_Entrada` time default NULL,
  `Hora_Salida` time default NULL,
  `Atendido` varchar(20) default NULL,
  `Detalle_p1` varchar(20) default NULL,
  `Detalle_p2` varchar(20) default NULL,
  `Detalle_p3` varchar(20) default NULL,
  `Cantidad_p1` int(11) default NULL,
  `Cantidad_p2` int(11) default NULL,
  `Cantidad_p3` int(11) default NULL,
  `IVA` int(11) NOT NULL,
  `Total` int(11) NOT NULL,
  `Sede` varchar(20) default NULL,
  PRIMARY KEY  (`Cod_DFactura`),
  UNIQUE KEY `Cod_DFactura` (`Cod_DFactura`)
) ENGINE=InnoDB AUTO_INCREMENT=124 DEFAULT CHARSET=utf8 PACK_KEYS=0 ROW_FORMAT=DYNAMIC COMMENT='InnoDB free: 3072 kB; (`Cod_Factura`) REFER `hotel2/factura`';

#
# Structure for the `producto` table : 
#

CREATE TABLE `producto` (
  `Cod_producto` int(11) NOT NULL auto_increment,
  `Detalle_Producto` varchar(20) default NULL,
  `Valor_Producto` int(11) NOT NULL,
  PRIMARY KEY  (`Cod_producto`),
  UNIQUE KEY `Id_producto` (`Cod_producto`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8 PACK_KEYS=0 ROW_FORMAT=DYNAMIC COMMENT='InnoDB free: 3072 kB; InnoDB free: 11264 kB';
  #15 (permalink)  
Antiguo 20/11/2008, 14:57
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Respuesta: Este codigo no imprime el valor..

Si, esto mismo es el dump.

Mirá, me juego a que es el orden lógico que te está jugando una mala pasada. Normalizá los campos de precios (a por ejemplo deciml(10,2) ).

Te pongo un ejemplo del orden de varchar, si tenes:

1, 2, 3, 8, 10, 11, 12, 20, 22

Y los ordenas de manera descendente te quedará si mal no ordeno:

8, 3, 22, 20, 2, 12, 11, 10, 1.

Con eso casi seguro se solucionará, y de no hacerlo volves a preguntar, pero no estarás haciendo nada de más ya que es lo correcto.

Saludos.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #16 (permalink)  
Antiguo 20/11/2008, 15:01
Avatar de jozzj  
Fecha de Ingreso: noviembre-2008
Mensajes: 33
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Este codigo no imprime el valor..

Vale, muchas gracias Nicolás ya comienzo a normalizar los campos.
Saludos.
  #17 (permalink)  
Antiguo 20/11/2008, 18:34
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Respuesta: Este codigo no imprime el valor..

Bárbaro jozzj!, y contanos si eso lo soluciona ;)


Saludos.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #18 (permalink)  
Antiguo 21/11/2008, 11:39
Avatar de jozzj  
Fecha de Ingreso: noviembre-2008
Mensajes: 33
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Este codigo no imprime el valor..

Buenos días,

Es por acá para informar que si me muestra bien los datos de el detalle pero solo cuando es el primer registro, cuando agrego el segundo, tercer etc.… me queda mostrando los datos del mismo primer registro, como si se quedara pegado el valor de la variable o si siguiera mostrando el primer registro.

Gracias.

No pude informar ayer... Porque tuve que salir ....
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:46.