Foros del Web » Programando para Internet » PHP »

Problema con mysql_fetch_array

Estas en el tema de Problema con mysql_fetch_array en el foro de PHP en Foros del Web. Hola amigos Tengo el siguiente código Código PHP:          $nCont=0;          while ($row2 = mysql_fetch_array($result2)){ ?>         <tr>         <td><center><b> <?php  echo  trim ( $row2 [ "COMPANIA" ]); ?> </b><input type="hidden" name="compania" value=" <?php  echo  ...
  #1 (permalink)  
Antiguo 30/10/2007, 14:43
 
Fecha de Ingreso: junio-2007
Mensajes: 80
Antigüedad: 16 años, 10 meses
Puntos: 1
Problema con mysql_fetch_array

Hola amigos

Tengo el siguiente código
Código PHP:
         $nCont=0;
         while ($row2 = mysql_fetch_array($result2)){
?>
        <tr>
        <td><center><b><?php echo trim($row2["COMPANIA"]);?></b><input type="hidden" name="compania" value="<?php echo trim($row2["COMPANIA"]);?>"></center></td>
        <td><right><b><?php echo trim($row2["CALLE"]); ?></b><input type="hidden" name="calle" value="<?php echo trim($row2["CALLE"]);?>"></right></td>
        <td><right><b><?php echo trim($row2["POBLA"]); ?></b><input type="hidden" name="poblacion" value="<?php echo trim($row2["POBLA"]);?>"></right></td>
        <td><right><b><?php echo trim($row2["PROVIN"]);?></b><input type="hidden" name="provincia" value="<?php echo trim($row2["PROVIN"]);?>"></right></td>
        <td><right><b><?php echo trim($row2["CP"]);    ?></b><input type="hidden" name="cp" value="<?php echo trim($row2["CP"]);?>"></right></td>
        <td colspan=5 align=center><br><input type=submit value='Confirmar'></br></center></td>
        </tr>
<?php
$nCont 
+= $nCont+1;
}
La idea es que cuando pinchen en el boton "Confirmar" me mande a otra pagina los valores de la linea en la que está en ese momento.

Bueno pues algo tengo mal en éste codigo, ya que si tenemos 10 registros, aunque pinche en el primero, siempre me devuelve los valores del último, es como si el while, recorriera toda la tabla, y se queda en el último, y aunque elija el primero, siempre asume que he pinchado n el último, no sé si me explico.

Alguna ayuda?

Saludos
  #2 (permalink)  
Antiguo 30/10/2007, 15:15
Avatar de acastillog70  
Fecha de Ingreso: septiembre-2003
Ubicación: México, D.F.
Mensajes: 181
Antigüedad: 20 años, 7 meses
Puntos: 1
Re: Problema con mysql_fetch_array

Bueno, lo primero que veo es que no estas mandando en formulario, cuando hago lo que tu quieres uso un formulario para enviar los hiddenn, al igual que el submit, luego, caundo recibo la información en otra página, la meto en variables de memoria $_POST["FolioOficio"] o GET, dependiendo.
Espero te sirva de algo lo que te menciono, si tienes alguna duda, sigo al pendiente a tus comentarios.
Saludos
__________________
Nacemos para morir. De lo demas, no te preocupes, ocupate.
  #3 (permalink)  
Antiguo 30/10/2007, 15:54
 
Fecha de Ingreso: junio-2007
Mensajes: 80
Antigüedad: 16 años, 10 meses
Puntos: 1
Re: Problema con mysql_fetch_array

Bueno, realmente envío el formulario con submit en la linea:
Código PHP:
       <td colspan=5 align=center><br><input type=submit value='Confirmar'></br></center></td>
        </
tr
La página que recibe éste formulario, recibe las 5 variables que envío, osea compania, calle, poblacion, provincia y cp, lo que pasa, y ahí está mi problema, es que éstas variables son siempre del último registro que recorre con la orden while, no las que contiene el registro que envío.

Saludos
  #4 (permalink)  
Antiguo 30/10/2007, 15:58
Avatar de Aken  
Fecha de Ingreso: julio-2004
Ubicación: Barcelona
Mensajes: 267
Antigüedad: 19 años, 9 meses
Puntos: 1
Re: Problema con mysql_fetch_array

Seguramente tengas el error en la query de result2. Posteala a ver...
  #5 (permalink)  
Antiguo 30/10/2007, 16:25
 
Fecha de Ingreso: junio-2007
Mensajes: 80
Antigüedad: 16 años, 10 meses
Puntos: 1
Re: Problema con mysql_fetch_array

Es esta
Código PHP:
  if ($nfilas 0) {
   
$result2=mysql_query ("SELECT CODIGO,COMPANIA,CALLE,POBLA,PROVIN,CP,TELEFONO from almacen where codigo='$contra';"$connect);
   
$num_total_registros2 mysql_num_rows($result2);
     if (
$num_total_registros2>0)
     { 
De todas las maneras, puede ser que el error esté en la forma de enviarlo, he probado a poner el codigo
Código PHP:
        <td colspan=5 align=center><br><input type="submit" name=p_rec[$row2[0]] value='Confirmar'></br></center></td
Pero me manda un array con un solo varor 'Confirmar'
pero no se que valores poner en name y en value para que me envíe el registro en cuestión.

Saludos
  #6 (permalink)  
Antiguo 30/10/2007, 16:55
Avatar de Aken  
Fecha de Ingreso: julio-2004
Ubicación: Barcelona
Mensajes: 267
Antigüedad: 19 años, 9 meses
Puntos: 1
Re: Problema con mysql_fetch_array

where codigo='$contra' ...

Si el campo es un primary_key logicamente solo te devuelve una fila...

No crees? :)
  #7 (permalink)  
Antiguo 30/10/2007, 17:19
 
Fecha de Ingreso: junio-2007
Mensajes: 80
Antigüedad: 16 años, 10 meses
Puntos: 1
Re: Problema con mysql_fetch_array

Hola
El campo 'codigo' es el codigo del cliente, no es primary_key, y 'contra' es la contraseña con la que entró en la página, que es la misma que el código de cliente.
Lo que hace es una selección de aquellos registros que coincide el campo codigo(del cliente), con la contraseña.
y me muestra correctamente todos los registros del cliente, en éste caso todos sus almacenes, y a la derecha de cada uno de ellos me aparece un boton ("Confirmar"), que al pulsarlo, me debería llevar los valores de ése registro a otro formulario donde los procese.
Pero aqui viene el problema, que siempre me retorna el valor del ultimo registro aunque pinche en el primero.
Te pongo una imagen
[IMG][/IMG]

Si pincho sobre "Confirmar" de la primera linea, me deberia enviar el nombre, y la poblacion seria Ciudad Real, pero me manda el Ultimo que es Talavera de la Reina, y así con todos los clientes.

Saludos
  #8 (permalink)  
Antiguo 30/10/2007, 22:40
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 3 meses
Puntos: 81
Re: Problema con mysql_fetch_array

Mmm... creo que tu problema pasa porque estas usando solo un formulario...

En tus ciclos debes poner un formulario por cada registro... asi el boton Confirmar solo enviara la informacion de ese formulario y no el ultimo (que es como si los input que pones en la pagina se fueran reescribiendo a medida que se cargan)

Trata de hacer esto:
Código PHP:
<?
$nCont
=0
while (
$row2 mysql_fetch_array($result2)){ 
?>
    <tr>
        <td colspan="10">
        <form action="pagina.php" name="<?=$nCont?>" method="post"><!-- abre tu form -->
            <table>
            <tr>
                <td><center><b><?php echo trim($row2["COMPANIA"]);?></b><input type="hidden" name="compania" value="<?php echo trim($row2["COMPANIA"]);?>"></center></td> 
                <td><right><b><?php echo trim($row2["CALLE"]); ?></b><input type="hidden" name="calle" value="<?php echo trim($row2["CALLE"]);?>"></right></td> 
                <td><right><b><?php echo trim($row2["POBLA"]); ?></b><input type="hidden" name="poblacion" value="<?php echo trim($row2["POBLA"]);?>"></right></td> 
                <td><right><b><?php echo trim($row2["PROVIN"]);?></b><input type="hidden" name="provincia" value="<?php echo trim($row2["PROVIN"]);?>"></right></td> 
                <td><right><b><?php echo trim($row2["CP"]);    ?></b><input type="hidden" name="cp" value="<?php echo trim($row2["CP"]);?>"></right></td> 
                <td colspan=5 align=center><br><input type=submit value='Confirmar'></br></center></td>
            </tr>
            </table>
        </form><!-- cierra tu form -->
        </td>
    </tr> 
<?php 
    $nCont
++; 
}
?>
Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #9 (permalink)  
Antiguo 31/10/2007, 02:01
 
Fecha de Ingreso: junio-2007
Mensajes: 80
Antigüedad: 16 años, 10 meses
Puntos: 1
Re: Problema con mysql_fetch_array

Funciona perfecto!

Muchas gracias por la ayuda

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 06:41.