Foros del Web » Programando para Internet » PHP »

sigo con el problema de array (de los id de articulos)

Estas en el tema de sigo con el problema de array (de los id de articulos) en el foro de PHP en Foros del Web. El codigo siguiente me genera arrays, dentro de estos tenemos el array de los id, no logro en la funcion ver_compras, que vaya y me ...
  #1 (permalink)  
Antiguo 28/09/2006, 07:42
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 17 años, 8 meses
Puntos: 0
sigo con el problema de array (de los id de articulos)

El codigo siguiente me genera arrays, dentro de estos tenemos el array de los id, no logro en la funcion ver_compras, que vaya y me devuelva los datos de mi tabla (aclaro que no logre "para Cluster" utilizar la setencia sql con IN). por Comento que en los array precio y productos vienen una claves y no los precios ni los productos, que estos los saco de la tabla

va el codigo
Código PHP:
<?php
class carrito {
       var 
$num_productos;
       var 
$array_id_prod;
       var 
$array_nombre_prod;
       var 
$array_precio_prod;

    function 
carrito () {
           
$this->num_productos=0;
    }
    
    function 
introduce_producto($id_prod,$nombre_prod,$precio_prod){
        
$this->array_id_prod[$this->num_productos]=$id_prod;
        
$this->array_nombre_prod[$this->num_productos]=$nombre_prod;
        
$this->array_precio_prod[$this->num_productos]=$precio_prod;
        
$this->num_productos++;
    }
    
    function 
ver_compras(){
    
$id $array_id_prod;
    
$db mysql_pconnect "xxxx""xxxx""xxxx" );
    
mysql_select_db 'xxxx' );

        for ( 
$e 0$e count $id ); $e++ )
        {
            
$consulta "SELECT * FROM tblArticulos WHERE id_index = '".$id[$e]."'";
            
$result mysql_query $consulta );

            
$numeroderesult mysql_num_rows $result ); 
            if (
$numeroderesult 0){
                  while (
$fila=mysql_fetch_array($result)){ 
                  echo 
"ID de artículo: ".$fila['id_index']."<br/>"
                  echo 
"Precio de artículo: ".$fila['precio']."<br/>"
                  echo 
"Cantidad de cuotas: ".$fila['cuotas']."<p>"
                } 
            } else {
                   echo 
"No hay resultados";
            }  
        }
    }
gracias nuevamente.
  #2 (permalink)  
Antiguo 28/09/2006, 08:44
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
NO ESTOY MUY SEGURO PERO CREO QUE POR NINGUNA PARTE LLAMAS A TU CLASE Y ME PARECE QUE SE HACE MAS O MENOS ASI:

$a = new carrito();
$a->introduce_producto('aquí_pones_el_array_de_los_id _artículos');

ADEMAS DE QUE EN LA FUNCION introduce_producto() ME PARECE QUE NO ESTAS LLAMANDO A LA FUNCION ver_compras() Y ESO SE HARÍA TAL VEZ ASÍ:

function introduce_producto($id_prod,$nombre_prod,$precio_p rod)
{
$this->array_id_prod[$this->num_productos]=$id_prod;
$this->array_nombre_prod[$this->num_productos]=$nombre_prod;
$this->array_precio_prod[$this->num_productos]=$precio_prod;
$this->num_productos++;
$this->ver_compras();
}

ESPERO HABERTE PODIDO AYUDAR EN ALGO. SUERTE
  #3 (permalink)  
Antiguo 28/09/2006, 08:47
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 17 años, 8 meses
Puntos: 0
no perdon el archivo solo pase la parte que me interesaba

No las llamadas a las compras la hago desde otro archivo PHP, lo que no logro es que mi funcion ver_compras me vea el array de los id.
  #4 (permalink)  
Antiguo 28/09/2006, 08:56
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
YA HAS INTENTADO PASARLE EL ARRAY DE LOS ID A ESTA FUNCION:

function ver_compras()
{
$id = $array_id_prod;
...

DE ESTA MANERA:

function ver_compras($id_prod)
{
$this->array_id_prod[$this->num_productos]=$id_prod;
$id = $array_id_prod;
...

O ALGO PARECIDO?
  #5 (permalink)  
Antiguo 28/09/2006, 11:23
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 17 años, 8 meses
Puntos: 0
Me tiene medio loco (lo malo que tampoco estoy entendiendo mucho la solucion)

Pero agradezco todos los intentos, vuelvo a pasar el codigo para ver si lo podemos sacar

Código PHP:
class carrito {
       var 
$num_productos;
       var 
$array_id_prod;
       var 
$array_nombre_prod;
       var 
$array_precio_prod;

    function 
carrito () {
           
$this->num_productos=0;
    }
    
    function 
introduce_producto($id_prod,$nombre_prod,$precio_prod){
        
$this->array_id_prod[$this->num_productos]=$id_prod;
        
$this->array_nombre_prod[$this->num_productos]=$nombre_prod;
        
$this->array_precio_prod[$this->num_productos]=$precio_prod;
        
$this->num_productos++;
    }
    
    function 
ver_compras($id_prod){
        
//si aqui coloco un id, ejemplo: $id = array ( '1', '2', '3', '4', '5', '6', '7', '8', '9', '10');
    
$this->array_id_prod[$this->num_productos]=$id_prod;
    
$id $array_id_prod
    
$db mysql_pconnect "xxxx""xxxx""xxxx" );
    
mysql_select_db 'xxxxx' );
    
        for ( 
$e 0$e count $id ); $e++ )
        {
            
$consulta "SELECT * FROM tblArticulos WHERE id_index = '".$id[$e]."'";
            
$result mysql_query $consulta );

            
$numeroderesult mysql_num_rows $result ); 
            if (
$numeroderesult 0){
                  while (
$fila=mysql_fetch_array($result)){ 
                  echo 
"ID de artículo: ".$fila['id_index']."<br/>"
                  echo 
"Precio de artículo: ".$fila['precio']."<br/>"
                  echo 
"Cantidad de cuotas: ".$fila['cuotas']."<p>"
                } 
            } else {
                   echo 
"No hay resultados";
            }  
        }
    } 
si coloco un array de ejemplo anda barbaro, pero no logra que me levante el id que estoy propagando por la sesion (todo lo de la sesion anda barbaro), estoy volviendome medio loco, y ademas sigo leyendo documentacion y me parece que me estoy empezando a marear mas. Gracias por todo
  #6 (permalink)  
Antiguo 28/09/2006, 11:34
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
(si coloco un array de ejemplo anda barbaro)
ACASO EL ERROR NO SERA QUE LA VARIBLE QUE LE ESTAS PASANDO ($id_prod) NO LA ESTAS DEFINIENDO COMO UN ARRAY. RECUERDA QUE:

$id_prod = array ( '1', '2, '3' ... );

NO ES LO MISMO QUE:

$id_prod = " '1', '2, '3' ...";


SI TIENES UNA CADENA ASI $id_prod = " '1', '2, '3' ..."; LA PUEDES TRANFORMAR EN UN ARRAY DE ESTA FORMA:

$id_prod = explode ( ",", $id_prod );

TENDRIAS QUE CREAR UN BUCLE PARA SUSTITUIR LAS COMILLAS SIMPLES DE CADA ID POR EJEMPLO:

'1' DEBERIA QUEDAR 1

ESPERO HABERME DADO A ENTENDER. SUERTE.
  #7 (permalink)  
Antiguo 28/09/2006, 11:49
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 17 años, 8 meses
Puntos: 0
mira, a ver si estoy en lo cierto

en este codigo estoy pasando los datos a los distintos array entre ellos el id:

Código PHP:
    function carrito () {
           
$this->num_productos=0;
    }

    function 
introduce_producto($id_prod,$nombre_prod,$precio_prod){
        
$this->array_id_prod[$this->num_productos]=$id_prod;
        
$this->array_nombre_prod[$this->num_productos]=$nombre_prod;
        
$this->array_precio_prod[$this->num_productos]=$precio_prod;
        
$this->num_productos++;
    } 
ahora bien yo el array id lo quiero pasar a la funcion compras

Código PHP:
function ver_compras(){
    
//$id = array ( '1', '2', '3', '4', '5');
    //$this->array_id_prod[$this->num_productos]=$id_prod;
    //$id = $array_id_prod; 
si utilizo la primera linea comentada anda barbaro, si utilizo las dos lineas siguientes como me has pasado en las ayudas, no anda.
  #8 (permalink)  
Antiguo 28/09/2006, 12:44
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
DISCULPA LA TARDANZA PERO ES QUE ESTABA OCUPADO EN MI TRABAJO. SIGUIENDO CON TU PROBLEMA SI CAMBIAS TU CODIGO DE LA SIG. MANERA:

function ver_compras ( $id_prod )
{
$this->array_id_prod = $id_prod;

$db = mysql_pconnect ( "xxxx", "xxxx", "xxxx" );
mysql_select_db ( 'xxxxx' );

for ( $e = 0; $e < count ( $id ); $e++ )
{
$consulta = "SELECT * FROM tblArticulos WHERE id_index = '".$this->array_id_prod[$e]."'";
$result = mysql_query ( $consulta );
BLABLABLA


FUNCIONARA?
  #9 (permalink)  
Antiguo 28/09/2006, 13:34
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 17 años, 8 meses
Puntos: 0
gracias por tu tiempo

no tu sabes que tampoco voy a tratar de generar un array nuevo con los datos que paso de el formularios con los productos (que los paso a traves del $_POST["id"]). Lo que no me doy cuenta (o mejor dicho no tengo mucha idea de como hacerlo) es como crear una funcion independiente que me genere un array nuevo con esos datos, algo asi:

function ingresa_id{

y aqui me genere un array con esos datos que le paso por el $_POST["id"]

}

Bueno no te disculpes, y por supuesto que gracias por el tiempo dedicado
  #10 (permalink)  
Antiguo 28/09/2006, 13:51
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
BUENO DESPUES DE ESTAR TANTEANDO DEMASIADAS VECES DECIDI HACERME UN EJEMPLO Y ME DIO RESULTADOS CREO QUE EL ERROR ESTABA EN COMO LE PASABAMOS EL ARRAY A LA CONSULTA ADEMAS LA CONSULTA LA APLIQUE COMO TE LA SUGIRIO CLUSTER:

<?php
class algo
{
function vercompras( $id )
{
$id2 = implode ( ",", $id ); // esto sirve para pasarle los id a la consulta
$db = mysql_pconnect ( "xxx", "xxx", "xxx" );
mysql_select_db ( 'xxx' );
$consulta = "SELECT * FROM tblArticulos WHERE id_index IN ( $id2 )";
$result = mysql_query ( $consulta );
$numeroderesult = mysql_num_rows ( $result );

if ($numeroderesult > 0)
{
while ( $fila = mysql_fetch_array ( $result ) )
{
echo "ID de artículo: ".$fila['id_index']."<br/>";
echo "Precio de artículo: ".$fila['precio']."<br/>";
echo "Cantidad de cuotas: ".$fila['cuotas']."<p>";
}
}

else
{
echo "No hay resultados";
}
}
}

$id = array ( '1', '2', '3' ); // este es el array que seguramente generas

$b = new algo();
$b -> vercompras( $id );
?>

ESPERO AHORA SI QUEDE CLARO Y TE DE UNA IDEA PARA REALIZARLO YA QUE YO NO TENGO EL CODIGO COMPLETO QUE TU UTILIZAS. SUERTE
  #11 (permalink)  
Antiguo 28/09/2006, 14:19
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 17 años, 8 meses
Puntos: 0
te paso todo el codigo que tengo

ahora me dice que no hay registros o sea hace toda la busqueda lo mas bien, pero sigue sin ver los id

el codigo es:

Código PHP:
<?
class carrito {
       var 
$num_productos;
       var 
$array_id_prod;
       var 
$array_nombre_prod;
       var 
$array_precio_prod;

    function 
carrito () {
           
$this->num_productos=0;
    }
    
    function 
introduce_producto($id_prod,$nombre_prod,$precio_prod){
        
$this->array_id_prod[$this->num_productos]=$id_prod;
        
$this->array_nombre_prod[$this->num_productos]=$nombre_prod;
        
$this->num_productos++;
    }
    
    function 
ver_compras($id_prod){
    
$id2 implode ","$id_prod ); // esto sirve para pasarle los id a la consulta 
    
$db mysql_pconnect "xxxx""xxxx""xxxx" );
    
mysql_select_db 'xxxx' );
    
            
$consulta "SELECT * FROM tblArticulos WHERE id_index IN ( $id2 )";
            
$result mysql_query $consulta );

            
$numeroderesult mysql_num_rows $result ); 
            if (
$numeroderesult 0){
                  while (
$fila=mysql_fetch_array($result)){ 
                  echo 
"ID de artículo: ".$fila['id_index']."<br/>"
                  echo 
"Precio de artículo: ".$fila['precio']."<br/>"
                  echo 
"Cantidad de cuotas: ".$fila['cuotas']."<br/>";
                echo 
"Total: ".$fila['precio'] * $fila['cuotas']."<p>";
                } 
            } else {
                   echo 
"No hay resultados";
            }  
    }

    function 
ver_carrito(){
        
$suma 0;
        
$cantidad 0;
        echo 
'<table border=1 cellpadding="3">
              <tr>
                <td><b>Nombre producto</b></td>
                <td>&nbsp;</td>
              </tr>'
;
        for (
$i=0;$i<$this->num_productos;$i++){
            if(
$this->array_id_prod[$i]!=0){
                echo 
'<tr>';
                echo 
"<td>" $this->array_nombre_prod[$i] . "</td>";
                echo 
"<td><a href='eliminar_producto.php?linea=$i'>Eliminar producto</td>";
                echo 
'</tr>';
                
                
$cantidad++;
            }
        }
        echo 
"<tr><td><b>Total Articulos:</b></td><td> <b>$cantidad</b></td></tr>";
        echo 
"</table>";
    }
    

    
    function 
elimina_producto($linea){
        
$this->array_id_prod[$linea]=0;
    }

session_start();
if (!isset(
$_SESSION["ocarrito"])){
    
$_SESSION["ocarrito"] = new carrito();
}
?>
Los datos los paso de un formulario a traves de $_POST["id"] (esto esta funcionando, porque probe con otras cosas y anda barbaro), muchas gracias por todo
  #12 (permalink)  
Antiguo 28/09/2006, 14:20
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 17 años, 8 meses
Puntos: 0
ha me olvide las llamadas a las funciones las hago de otro archivo

que tambien andan, el problema esta para mi en el codigo que estamos analizando,gracias
  #13 (permalink)  
Antiguo 28/09/2006, 14:35
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Código PHP:
function ver_compras() {
    
$id $this->array_id_prod
En tu funcion estas llamando a $array_id_prod que no esta definida, debes de usar $this-> para llamar a una variable de la clase.
  #14 (permalink)  
Antiguo 28/09/2006, 14:46
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 17 años, 8 meses
Puntos: 0
bueno ahora si

muchas gracias quedo funcionando, despues de tantas vueltas (y bueno debido a mi poca experiencia en php), bueno espero seguir avanzando ahora en otras cosas, gracias a todos nuevamente, chau (por el momento)
  #15 (permalink)  
Antiguo 28/09/2006, 14:49
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
COPIA EL CODIGO QUE TE PASE EN LA RESPUESTA #10 A OTRO ARCHIVO Y HAS LAS PRUEBAS PERTINENTES PASANDOLE EL ARRAY IGUAL A COMO SE LO ESTAS PASANDO A LA CLASE carrito SI TE DA RESULTADO ENTONCES EL PROBLEMA NO ES EN LA FUNCION vercompras(); CHECALO Y SI NO TE FUNCIONA ME DICES COMO LE PASAS EL ARRAY ID A LA FUNCION PERO ENFOQUEMONOS SOLO EN LA FUNCION vercompras(); ASI COMO TE LA PASE EN LA RESPUESTA #10 OK?
  #16 (permalink)  
Antiguo 28/09/2006, 14:57
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
BUENA OBSERVACION GatorV, UFFF PARECE QUE DESPUES DE DARLE TANTAS VUELTAS AL ASUNTO POR FIN QUEDO NO?
  #17 (permalink)  
Antiguo 28/09/2006, 14:58
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 17 años, 8 meses
Puntos: 0
no gracias erikfrancisco

gracias che, pero ya quedo funcionando, en serio muchas gracias, no saben lo que he aprendido con todos ustedes, nos vemos y saludos
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 09:11.