Foros del Web » Programando para Internet » PHP »

seleccion erronea de dato

Estas en el tema de seleccion erronea de dato en el foro de PHP en Foros del Web. Hola gente, tengo este codigo: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original echo "                        <form ...
  #1 (permalink)  
Antiguo 20/07/2012, 11:35
 
Fecha de Ingreso: agosto-2008
Ubicación: Miami, FL
Mensajes: 210
Antigüedad: 15 años, 7 meses
Puntos: 2
Pregunta seleccion erronea de dato

Hola gente,

tengo este codigo:

Código PHP:
Ver original
  1. echo "
  2.                        <form name='f1' action='send_estimate.php' method='POST' >
  3.                          <table class='css3' id='mytable' cellspacing='0'>
  4.                          <tr class='nobg'>
  5.                            <th scope='col' width='60'><strong>Date</strong</th>
  6.                            <th scope='col' width='80'><strong>User</strong</th>
  7.                            <th scope='col' width='60'><strong>Pick Up</strong></th>
  8.                            <th scope='col' width='60'><strong>Drop Off</strong></th>
  9.                            <th scope='col' width='40'><strong>Map</strong></th>
  10.                            <th scope='col' width='100'><strong>Description</strong></th>
  11.                            <th scope='col' width='50'><strong>Estimate</strong></th>
  12.                            <th scope='col' width='50'><strong><a href=\"javascript:document.forms.f1.action='delete_main.php';document.forms.f1.submit();\">delete</a></strong></th>
  13.                            <th scope='col' width='25'><strong></strong></th>
  14.                          </tr>
  15.                        ";
  16.  
  17.                         while ($fila = mysql_fetch_array($datos_sql))
  18.                         {
  19.                         echo"
  20.                        <tr class='spec' >
  21.                        <td align=center width=60>".$fila['date']."</td>
  22.                        <td align=center width=80>".$fila['user_name']."</td>
  23.                        <td align=center width=60>".$fila['pickup_zip_code']."</td>
  24.                        <td align=center width=60>".$fila['dropoff_zip_code']."</td>
  25.                        <td align=center width=40><a href=\"javascript:popup('mapa.php?pickup_zip_code=".$fila['pickup_zip_code']."&dropoff_zip_code=".$fila['dropoff_zip_code']."',800,600)\" >Map</a></td>
  26.                        <td align=center width=150>".$fila['description']."</td>
  27.                        <td align=center width=50><input type='text' name='quote' value='".$fila['quote']."' size='10'></td>
  28.                        <td align=center width=50><input type='checkbox' name='select[]' value='".$fila['id_data']."'></td>
  29.                        <td align=center width=25><button type='submit' name='login_submit'>Submit</button></td>
  30.                        </tr>
  31.                        <input type='hidden' name='id_data' value='".$fila['id_data']."'>
  32.                        <input type='hidden' name='notification' value='Quote Received'>
  33.                      
  34.                        ";
  35.                         }
  36.                         echo "</table></form>";

Se hace un consulta a la BD y devuelve los valores en un listado.
Tengo unos select que me permiten seleccionar uno de los registros listados y borrarlo.
Al final tengo un boton submit que envia el action="send_estimate.php" dependiendo del resultado que seleccione.
Cuando tengo un solo resultado de la consulta funciona bien, pero cuando tengo mas de uno y presiono "submit" me envia los datos del ultimo registro y no del registro que presione submit, no se si me explico.

A ver si alguien me da una idea del fallo por que yo lo veo todo bien..

Gracias por el tiempo prestado
__________________
Se invierte mas dinero en cirugía de pechos y viagra que en la cura del Alzheimer. En unos años tendremos viejas con grandes tetas y viejos con erecciones pero que no recordarán para que sirven..
  #2 (permalink)  
Antiguo 20/07/2012, 12:22
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: seleccion erronea de dato

podrias ver en

send_estimate.php


que pasa si haces esto?


Código PHP:
Ver original
  1. print_r($_POST['select'])
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #3 (permalink)  
Antiguo 20/07/2012, 12:44
 
Fecha de Ingreso: agosto-2008
Ubicación: Miami, FL
Mensajes: 210
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: seleccion erronea de dato

hola mogurbon

Si pongo esa linea me da varios errores dependiendo donde la ponga, siempre con respecto a la linea siguiente.
Si hago un echo imprimiendo el select solo me saca un comilla " cuando en realidad me tendría que sacar el ID del cliente y me he dado cuenta que si tengo mas de un registro me envia los 3 con un solo submit.... no lo entiendo...

Gracias
__________________
Se invierte mas dinero en cirugía de pechos y viagra que en la cura del Alzheimer. En unos años tendremos viejas con grandes tetas y viejos con erecciones pero que no recordarán para que sirven..
  #4 (permalink)  
Antiguo 20/07/2012, 12:56
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: seleccion erronea de dato

Cita:
Iniciado por desoler Ver Mensaje
hola mogurbon

Si pongo esa linea me da varios errores dependiendo donde la ponga, siempre con respecto a la linea siguiente.
Si hago un echo imprimiendo el select solo me saca un comilla " cuando en realidad me tendría que sacar el ID del cliente y me he dado cuenta que si tengo mas de un registro me envia los 3 con un solo submit.... no lo entiendo...

Gracias
es la idea no?
al hacer un select[] que lo guarde todo en ese arreglo no?


o a ver afloja el codigo de send_estimate.php
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #5 (permalink)  
Antiguo 20/07/2012, 13:10
 
Fecha de Ingreso: agosto-2008
Ubicación: Miami, FL
Mensajes: 210
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: seleccion erronea de dato

Si y no, el select solo es utilizado para borrar, tengo un solo boton borrar y cada linea de registro un checkbox, tantos check box seleccione tantos me borra.
Ahora para el submit tengo un boton individual para cada registro, este es el codigo del send_estimate.php

Código PHP:
Ver original
  1. $id_data = $_POST['id_data'];
  2. $quote = $_POST['quote'];
  3. $notification = $_POST['notification'];
  4.  
  5. $old_id_data = $_SESSION['id_data'];
  6.  
  7. $actualizar = mysql_query("UPDATE main_data SET quote='".$quote."', notification='".$notification."' WHERE id_data='".$old_id_data."'");
  8. if (!$actualizar) {
  9. die("Fallo en la actualizacion de registro en la Base de Datos main_data: " . mysql_error());
  10. }
  11.  
  12. //4. Insertar campos en la Base de quoted
  13. $insertar = mysql_query("INSERT INTO quoted (id_data, date, user_name, user_email, pickup_zip_code, dropoff_zip_code, description, quote, notification, sound) SELECT * FROM main_data WHERE id_data='".$old_id_data."' ");
  14. if (!$insertar) {
  15. die("Fallo en la insercion de registro en la Base de Datos Quoted: " . mysql_error());
  16. }
  17.  
  18. //4. Insertar campos en la Base de quoted
  19. $insertar = mysql_query("INSERT INTO quoted_backup (id_data, date, user_name, user_email, pickup_zip_code, dropoff_zip_code, description, quote, notification, sound) SELECT * FROM main_data WHERE id_data='".$old_id_data."' ");
  20. if (!$insertar) {
  21. die("Fallo en la insercion de registro en la Base de Datos Quoted_Backup: " . mysql_error());
  22. }
  23.  
  24. $borrar = mysql_query("DELETE FROM main_data WHERE id_data='".$old_id_data."' ");
  25. if (!$borrar) {
  26. die("Fallo en el borrado de los registros de la Base de Datos Datos main_data: " . mysql_error());
  27. }
  28.  
  29. echo "
  30. <html>
  31. <head>
  32. <style>
  33. body{
  34.  background-color:#023149;
  35.  background-size:100% 900px;
  36.  background-repeat:repeat-x;
  37.  background-image:-moz-linear-gradient(#0594be,#023149 900px);
  38.  background-image:-webkit-gradient(linear,0 0,0 100%,from(#0594be),to(#023149));
  39.  background-image:-o-linear-gradient(#0594be,#023149 900px);
  40.  background-image:-ms-linear-gradient(#0594be,#023149 900px);
  41.  -cp-background-image:linear-gradient(#0594be,#023149 900px);
  42.  background-image:linear-gradient(#0594be,#023149 900px);
  43.  font-family:helvetica,arial,sans-serif;
  44.  }
  45.  
  46. body:not(#old_ie){
  47.  behavior:url(css/ie9gradients.htc);
  48.  }
  49. </style>
  50.  <script language='JavaScript' type='text/javascript'>
  51.     function confirmar()
  52.      {
  53.     var agree=confirm('Quote Saved it successfully.');
  54.      if (agree) location.href='#';
  55.      else return false ;
  56.      }
  57.  </script>
  58. </head>
  59. <body onload='confirmar()'>
  60. </body>
  61. </html>
  62. ";
  63. mysql_close($conexion);
  64. ?>

asi es como se ve el listado que genero, si selecciono el primer registro le pongo 100 a estimate y le doy a Submit, me envia el de abajo y con 0



Gracias por tu tiempo
__________________
Se invierte mas dinero en cirugía de pechos y viagra que en la cura del Alzheimer. En unos años tendremos viejas con grandes tetas y viejos con erecciones pero que no recordarán para que sirven..
  #6 (permalink)  
Antiguo 20/07/2012, 14:07
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: seleccion erronea de dato

Eso pasa porque toda tu tabla la tienes con un <form> completo, para hacer eso que quieres, necesitas usar Javascript para hacer el submit, no puedes depender de la funcionalidad directa del form.
  #7 (permalink)  
Antiguo 20/07/2012, 14:11
Avatar de bet7o  
Fecha de Ingreso: febrero-2010
Ubicación: DF
Mensajes: 315
Antigüedad: 14 años, 2 meses
Puntos: 20
Respuesta: seleccion erronea de dato

El problema que tienes es que todo esta dentro de un solo formulario y se sobrescriben las variables.

Tienes algo asi:

<input type='hidden' name='id_data' value='1'>
<input type='hidden' name='id_data' value='2'>
<input type='hidden' name='id_data' value='3'>
...

y como todo esta en el mismo formulario claro que te manda id_data como 3 pues fue el ultimo en declararse.

Como dice mogurbon "al hacer un select[] que lo guarde todo en ese arreglo no?", mete dentro del while el formulario.

Saludos!

Cita:
Iniciado por desoler Ver Mensaje
Si y no, el select solo es utilizado para borrar, tengo un solo boton borrar y cada linea de registro un checkbox, tantos check box seleccione tantos me borra.
Ahora para el submit tengo un boton individual para cada registro, este es el codigo del send_estimate.php

Código PHP:
Ver original
  1. $id_data = $_POST['id_data'];
  2. $quote = $_POST['quote'];
  3. $notification = $_POST['notification'];
  4.  
  5. $old_id_data = $_SESSION['id_data'];
  6.  
  7. $actualizar = mysql_query("UPDATE main_data SET quote='".$quote."', notification='".$notification."' WHERE id_data='".$old_id_data."'");
  8. if (!$actualizar) {
  9. die("Fallo en la actualizacion de registro en la Base de Datos main_data: " . mysql_error());
  10. }
  11.  
  12. //4. Insertar campos en la Base de quoted
  13. $insertar = mysql_query("INSERT INTO quoted (id_data, date, user_name, user_email, pickup_zip_code, dropoff_zip_code, description, quote, notification, sound) SELECT * FROM main_data WHERE id_data='".$old_id_data."' ");
  14. if (!$insertar) {
  15. die("Fallo en la insercion de registro en la Base de Datos Quoted: " . mysql_error());
  16. }
  17.  
  18. //4. Insertar campos en la Base de quoted
  19. $insertar = mysql_query("INSERT INTO quoted_backup (id_data, date, user_name, user_email, pickup_zip_code, dropoff_zip_code, description, quote, notification, sound) SELECT * FROM main_data WHERE id_data='".$old_id_data."' ");
  20. if (!$insertar) {
  21. die("Fallo en la insercion de registro en la Base de Datos Quoted_Backup: " . mysql_error());
  22. }
  23.  
  24. $borrar = mysql_query("DELETE FROM main_data WHERE id_data='".$old_id_data."' ");
  25. if (!$borrar) {
  26. die("Fallo en el borrado de los registros de la Base de Datos Datos main_data: " . mysql_error());
  27. }
  28.  
  29. echo "
  30. <html>
  31. <head>
  32. <style>
  33. body{
  34.  background-color:#023149;
  35.  background-size:100% 900px;
  36.  background-repeat:repeat-x;
  37.  background-image:-moz-linear-gradient(#0594be,#023149 900px);
  38.  background-image:-webkit-gradient(linear,0 0,0 100%,from(#0594be),to(#023149));
  39.  background-image:-o-linear-gradient(#0594be,#023149 900px);
  40.  background-image:-ms-linear-gradient(#0594be,#023149 900px);
  41.  -cp-background-image:linear-gradient(#0594be,#023149 900px);
  42.  background-image:linear-gradient(#0594be,#023149 900px);
  43.  font-family:helvetica,arial,sans-serif;
  44.  }
  45.  
  46. body:not(#old_ie){
  47.  behavior:url(css/ie9gradients.htc);
  48.  }
  49. </style>
  50.  <script language='JavaScript' type='text/javascript'>
  51.     function confirmar()
  52.      {
  53.     var agree=confirm('Quote Saved it successfully.');
  54.      if (agree) location.href='#';
  55.      else return false ;
  56.      }
  57.  </script>
  58. </head>
  59. <body onload='confirmar()'>
  60. </body>
  61. </html>
  62. ";
  63. mysql_close($conexion);
  64. ?>

asi es como se ve el listado que genero, si selecciono el primer registro le pongo 100 a estimate y le doy a Submit, me envia el de abajo y con 0



Gracias por tu tiempo
__________________
Pero el no contaba con una cosa, mi peligroso desinteres por la vida humana
  #8 (permalink)  
Antiguo 20/07/2012, 14:38
 
Fecha de Ingreso: agosto-2008
Ubicación: Miami, FL
Mensajes: 210
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: seleccion erronea de dato

hola bet7o

No te he entendido, dentro de que while lo meto?, deberé crear uno no?
Y el tema del form es por que necesito pasar campos hidden, con javascript no puedo hacerlo (o eso creo).

Gracias
__________________
Se invierte mas dinero en cirugía de pechos y viagra que en la cura del Alzheimer. En unos años tendremos viejas con grandes tetas y viejos con erecciones pero que no recordarán para que sirven..
  #9 (permalink)  
Antiguo 20/07/2012, 15:57
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: seleccion erronea de dato

ahi esta la onda , sabes para que es usar esto?


select[] ? dentro del html?


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

si en un form pones varios elementos del mismo nombre el valor que quedara sera siempre sel ultimo que selecciones , ve el html que genera el código que hiciste


mas que select[] podria ser ids [] y recolectar ahi las ids a borrar
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #10 (permalink)  
Antiguo 20/07/2012, 16:07
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: seleccion erronea de dato

Claro que es posible mandar los hidden, dales un ID y los puedes recuperar usando document.getElementById() y lees el value del campo.

Realmente yo te recomendaría que te fueras por el camino de Javascript a enviar todo el formulario como array va a ser más "limpio" el proceso.
  #11 (permalink)  
Antiguo 20/07/2012, 16:41
 
Fecha de Ingreso: agosto-2008
Ubicación: Miami, FL
Mensajes: 210
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: seleccion erronea de dato

Muchas gracias a todos por los aportes.

Vamos a ver, creo que me he explicado mal y hemos salido para otro lado.
El tema del While con el Select no es un problema, los select los recojo con esto:

Código PHP:
Ver original
  1. $fields = $_POST['select'];
  2. $hayDatos = 0;
  3.  
  4. for($i=0;$i<count($fields);$i++)
  5. {
  6.    $hayDatos++;
  7.    $consulta = "DELETE FROM main_data WHERE id_data = '$fields[$i]'";
  8.    $ejecutar=mysql_query($consulta) or die ("Error !!");
  9.  
  10. echo "
  11.     <html>
  12.       <head>
  13.       <style>
  14.        body{
  15.          background-color:#023149;
  16.          background-size:100% 900px;
  17.          background-repeat:repeat-x;
  18.          background-image:-moz-linear-gradient(#0594be,#023149 900px);
  19.          background-image:-webkit-gradient(linear,0 0,0 100%,from(#0594be),to(#023149));
  20.          background-image:-o-linear-gradient(#0594be,#023149 900px);
  21.          background-image:-ms-linear-gradient(#0594be,#023149 900px);
  22.          -cp-background-image:linear-gradient(#0594be,#023149 900px);
  23.          background-image:linear-gradient(#0594be,#023149 900px);
  24.          font-family:helvetica,arial,sans-serif;
  25.          }
  26.  
  27.         body:not(#old_ie){
  28.          behavior:url(css/ie9gradients.htc);
  29.          }
  30.        </style>
  31.         <script language='JavaScript' type='text/javascript'>
  32.           function confirmar()
  33.            {
  34.           var agree=confirm('Are you sure to delete this quote ');
  35.            if (agree) location='". $_SERVER['HTTP_REFERER'] ."';
  36.            else{
  37.              return false ;
  38.            }
  39.            }
  40.        </script>
  41.       </head>  
  42.       <body onload='confirmar()'>
  43.       </body>
  44.     </html>
  45.          ";
  46.         }
  47.   if ($hayDatos == 0)
  48.     {
  49.       echo "
  50.          <html>
  51.       <head>
  52.       <style>
  53.        body{
  54.          background-color:#023149;
  55.          background-size:100% 900px;
  56.          background-repeat:repeat-x;
  57.          background-image:-moz-linear-gradient(#0594be,#023149 900px);
  58.          background-image:-webkit-gradient(linear,0 0,0 100%,from(#0594be),to(#023149));
  59.          background-image:-o-linear-gradient(#0594be,#023149 900px);
  60.          background-image:-ms-linear-gradient(#0594be,#023149 900px);
  61.          -cp-background-image:linear-gradient(#0594be,#023149 900px);
  62.          background-image:linear-gradient(#0594be,#023149 900px);
  63.          font-family:helvetica,arial,sans-serif;
  64.          }
  65.  
  66.         body:not(#old_ie){
  67.          behavior:url(css/ie9gradients.htc);
  68.          }
  69.        </style>
  70.         <script language='JavaScript' type='text/javascript'>
  71.           function confirmar()
  72.            {
  73.           alert('ERROR !!! Please, check the quote that you want to delete.');
  74.            location='". $_SERVER['HTTP_REFERER'] ."';
  75.            }
  76.        </script>
  77.       </head>  
  78.       <body onload='confirmar()'>
  79.       </body>
  80.     </html>
  81.      ";
  82.    }

y el delete funciona correctamente, seleccione 1 registro, 3 o 6.
Hasta ahi perfecto.

Ahora, como se muestra en la imagen, el cliente envia unos datos a una BD y se muestran en el panel, el campo Estimado viene con valor 0 y en el panel se le pone el precio, digamos unos 1200, al hacer submit pasa un archivo send.php que recoge los datos mediante una SESSION, hace un UPDATE del Estimado, los copia a otra tabla, los elimina de la tabla actual y se los envia al cliente con el nuevo Estimado. Todo esto, y un par de cosas mas como enviar un sonido de alerta al recibir el estimado y demas lo hago sin problemas, el problema viene que el Select que deberia selecciona solo el registro del ID correspondiente no lo hace y selecciona el ultimo de la lista, pero esto nada tiene que ver con los SELECT ya que estos con su FOR each y su While y todo cumplen otra funcion.

Tal ves sea que estoy equivocado en el planteamiento de como funciona todo, pero el echo es que me funciona, excepto que no selecciona el que yo quiero, se que estoy equivocado, pero de ahi a que tenga que cambiar todo el sistema, de ultima buscare la forma de enviarlo via POST, pero creo que alguien debe saber una forma de solucionarlo, el tema es que creo yo que nos hemos ido del problema.

Como dije antes, agradezco y valoro enormemente el tiempo para darme una mano.

saludos
__________________
Se invierte mas dinero en cirugía de pechos y viagra que en la cura del Alzheimer. En unos años tendremos viejas con grandes tetas y viejos con erecciones pero que no recordarán para que sirven..
  #12 (permalink)  
Antiguo 20/07/2012, 18:13
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: seleccion erronea de dato

Es porque tienes el name como select[] eso te envía un array, cuando dejas el name="foo" solo va a enviar un valor, y va a ser el último del <form>, por eso es que te digo que lo mejor que necesitas es usar Javascript para enviar esos valores.

Saludos.
  #13 (permalink)  
Antiguo 21/07/2012, 09:21
 
Fecha de Ingreso: agosto-2008
Ubicación: Miami, FL
Mensajes: 210
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: seleccion erronea de dato

Hola GatorV,

Ok, tu sabes más que yo, así que con javascript lo tendre que hacer.
Me puede guiar un poco, por lo menos, decirme como sería la teoría?
Lo del select preferiría no tocarlo por que el Delete me funciona bien
lo unico que quiero es que al hacer que al presionar Submit me llame
a un .php enviando las variables que necesito, nada mas.

Si puedes te agradecería un monton.

Gracias por tu tiempo
__________________
Se invierte mas dinero en cirugía de pechos y viagra que en la cura del Alzheimer. En unos años tendremos viejas con grandes tetas y viejos con erecciones pero que no recordarán para que sirven..
  #14 (permalink)  
Antiguo 21/07/2012, 12:25
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: seleccion erronea de dato

Claro, solamente a tu botón submit, cambialo por un input del tipo button, y enlaza ahí a una función usando onclick, donde le pases el id del control, y cuando dibujes tu control dale ese id para rescatar el valor, y enviarlo usando otro form con un solo valor oculto, por ejemplo:
Código PHP:
Ver original
  1. <?php while( /* */ ) { ?>
  2. <input type="suma" id="suma<?php echo $row['id']; ?>" value="" />
  3. <button onclick="enviaSuma('suma<?php echo $row['id']; ?>');">Enviar</button>
  4. <?php } ?>
  5.  
  6. <form method="post" id="submitForm">
  7. <input type="hidden" name="suma" id="suma" />
  8. </form>
  9.  
  10. <script type="text/javascript">
  11. function enviaSuma(id) {
  12.       var suma = document.getElementById(id).value;
  13.       document.getElementById('suma').value = suma;
  14.       document.getElementById('submitForm').submit();
  15. }
  16. </script>

Algo así puedes ver como sería el proceso.

Saludos.
  #15 (permalink)  
Antiguo 22/07/2012, 10:22
 
Fecha de Ingreso: agosto-2008
Ubicación: Miami, FL
Mensajes: 210
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: seleccion erronea de dato

Gracias GatorV, lo voy a estudiar y te comento.
__________________
Se invierte mas dinero en cirugía de pechos y viagra que en la cura del Alzheimer. En unos años tendremos viejas con grandes tetas y viejos con erecciones pero que no recordarán para que sirven..
  #16 (permalink)  
Antiguo 23/07/2012, 09:45
 
Fecha de Ingreso: agosto-2008
Ubicación: Miami, FL
Mensajes: 210
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: seleccion erronea de dato

Hola GatorV,

He intentado poner en marcha el código que me pasaste pero no puedo, más que nada por que no lo entiendo.
Primero: este es mi código completo:
Código PHP:
Ver original
  1. <?
  2.  
  3.                         //1. Crear conexión a la Base de Datos
  4.                         $conexion = mysql_connect("localhost","**","**");
  5.                         if (!$conexion) {
  6.                         die("Failure connecting to the database: " . mysql_error());
  7.                         }
  8.                         //2. Seleccionar la Base de Datos a utilizar
  9.                         $seleccionar_bd = mysql_select_db("**", $conexion);
  10.                         if (!$seleccionar_bd) {
  11.                         die("Failure selectin the database: " . mysql_error());
  12.                         }
  13.  
  14.                          // Con esto tenemos el total de autos en nuestra tabla 'autos'
  15.                             $contador_news_sql = 'select count(*) from main_data' ;
  16.                             $contador_news_result = mysql_query($contador_news_sql) ;
  17.                             $total_news = mysql_result($contador_news_result, 0, 0) ;
  18.                          
  19.                             // configuración de la clase
  20.                             include('class.kpaginate.php') ; // incluimos la clase
  21.                             $kp1 = new kpaginate ; // instanciamos la clase
  22.                             $kp1->setTotalItems($total_news) ; // OJO!, aquí ponemos el total de autos que conseguimos anteriormente
  23.                             $kp1->setItemsPerPage(20) ; // 5 = cuantos datos queremos mostrar por página
  24.                             $limit = $kp1->getLimit() ; // IMPORTANTE: Este metodo retorna un array con 2 valores, el primero es el límite inferior y el segundo el límite superior que debemos colocar en nuestra consulta, veamos...
  25.                            
  26.                          
  27.                         $datos_sql = mysql_query("SELECT * FROM main_data ORDER BY id_data DESC limit " . $limit[0] . ', ' . $limit[1]);
  28.                         if (!$datos_sql) {
  29.                         die("Failure selecting main_data from database: " . mysql_error());
  30.                         }
  31.  
  32.                         echo "
  33.                        <form name='f1' action='send_estimate.php' id='submitForm' method='POST' >
  34.                          <table class='css3' id='mytable' cellspacing='0'>
  35.                          <tr class='nobg'>
  36.                            <th scope='col' width='30'><strong>ID</strong</th>
  37.                            <th scope='col' width='60'><strong>Date</strong</th>
  38.                            <th scope='col' width='80'><strong>User</strong</th>
  39.                            <th scope='col' width='60'><strong>Pick Up</strong></th>
  40.                            <th scope='col' width='60'><strong>Drop Off</strong></th>
  41.                            <th scope='col' width='40'><strong>Map</strong></th>
  42.                            <th scope='col' width='100'><strong>Description</strong></th>
  43.                            <th scope='col' width='50'><strong>Estimate</strong></th>
  44.                            <th scope='col' width='50'><strong><a href=\"javascript:document.forms.f1.action='delete_main.php';document.forms.f1.submit();\">delete</a></strong></th>
  45.                            <th scope='col' width='25'><strong></strong></th>
  46.                          </tr>
  47.                        ";
  48.  
  49.                         while ($fila = mysql_fetch_array($datos_sql))
  50.                         {
  51.                         echo"                      
  52.                        <tr class='spec' >
  53.                        <td align=center width=30>".$fila['id_data']."</td>
  54.                        <td align=center width=60>".$fila['date']."</td>
  55.                        <td align=center width=80>".$fila['user_name']."</td>
  56.                        <td align=center width=60>".$fila['pickup_zip_code']."</td>
  57.                        <td align=center width=60>".$fila['dropoff_zip_code']."</td>
  58.                        <td align=center width=40><a href=\"javascript:popup('mapa.php?pickup_zip_code=".$fila['pickup_zip_code']."&dropoff_zip_code=".$fila['dropoff_zip_code']."',800,600)\" >Map</a></td>
  59.                        <td align=center width=150>".$fila['description']."</td>
  60.                        <td align=center width=50><input type='text' name='quote' value='".$fila['quote']."' size='10'></td>                      
  61.                        <td align=center width=50><input type='checkbox' name='select[]' value='".$fila['id_data']."'></td>
  62.                        <input type='hidden' name='id_data' value='".$fila['id_data']."'>
  63.                        <input type='hidden' name='notification' value='Quote Received'>
  64.                        <input type='hidden' name='sound' value='/sound.wav'>
  65.                        <td align=center width=25><button onlclick="\enviaSuma()\">submit</button> </td>
  66.                        </tr>
  67.                        ";
  68.                          }
  69.                         echo "</table></form>";
  70.                         // Al final imprimimos la paginación, ya saben, los numeritos...
  71.                         $kp1->paginate() ;
  72.  
  73.                         $_SESSION['id_data'] = $fila['id_data'];
  74.  
  75.                         mysql_close($conexion);
  76.  
  77.                         ?>

Debo de meter todo esto dentro del While (/**/) según tu código?
En el input, type="suma" no le pongo ningun value, como lo muestro en pantalla al dato que recupero de la BD? y por que muestro dos veces con echo $row['id'] en el input y el button?


Lo siento, estoy echo un lio, me he mareado mas que con unas cuantas copas encima, no veo la forma de aplicarlo a mi código, más que nada por la forma en que esta armado.

Mil perdones por mi ignorancia..

Gracias
__________________
Se invierte mas dinero en cirugía de pechos y viagra que en la cura del Alzheimer. En unos años tendremos viejas con grandes tetas y viejos con erecciones pero que no recordarán para que sirven..
  #17 (permalink)  
Antiguo 23/07/2012, 10:19
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: seleccion erronea de dato

El código que te pase es solo un ejemplo, el while es simplemente demostrativo, tienes que entender que es lo que hace, lo cual no es nada del otro mundo:

1.- Dentro del while, dibuja un input y le asigna un ID único, y el botón para mandar llamar la función (usando el mismo ID único que se generó)
2.- Creo una forma aparte con un solo valor (este valor sí es el que se va a enviar por PHP usando el formulario oculto, y le asigno otro ID único, también le asigno un ID único a la forma.
3.- Uso una función Javascript (la cual es llamada por el botón) la cual recoge el valor del input que se generó dentro del while, y lo pasa al input hidden que esta dentro de nuestro formulario oculto (punto 2) y mando llamar al método submit() para enviar la forma oculta.

Saludos.
  #18 (permalink)  
Antiguo 23/07/2012, 11:06
 
Fecha de Ingreso: agosto-2008
Ubicación: Miami, FL
Mensajes: 210
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: seleccion erronea de dato

Bueno GatorV,

al fin lo solucione, de otra forma pero me funciona bien, con javascript pero enviando los datos (que solo son 5) por post y punto.

Muchas gracias por tu ayuda.
__________________
Se invierte mas dinero en cirugía de pechos y viagra que en la cura del Alzheimer. En unos años tendremos viejas con grandes tetas y viejos con erecciones pero que no recordarán para que sirven..
  #19 (permalink)  
Antiguo 23/07/2012, 11:12
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: seleccion erronea de dato

Cita:
Iniciado por desoler Ver Mensaje
Bueno GatorV,

al fin lo solucione, de otra forma pero me funciona bien, con javascript pero enviando los datos (que solo son 5) por post y punto.

Muchas gracias por tu ayuda.
creo que conviene que pongas tu solución para si alguien tiene un problema similar lo pueda encontrar en google , a mi parecer la mejor forma de dar las gracias
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #20 (permalink)  
Antiguo 02/08/2012, 12:12
 
Fecha de Ingreso: agosto-2008
Ubicación: Miami, FL
Mensajes: 210
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: seleccion erronea de dato

ok mogurbon,

No he puesto como lo solucione para no ganar espacio de más, pero aqui esta:

Código PHP:
Ver original
  1. while ($fila = mysql_fetch_array($datos_sql))
  2.                         {
  3.                         echo"                      
  4.                        <tr class='spec' >
  5.                        <td align=center width=30>".$fila['id_data']."</td>
  6.                        <td align=center width=60>".$fila['date']."</td>
  7.                        <td align=center width=80>".$fila['user_name']."</td>
  8.                        <td align=center width=60>".$fila['pickup_zip_code']."</td>
  9.                        <td align=center width=60>".$fila['dropoff_zip_code']."</td>
  10.                        <td align=center width=40><a href=\"javascript:popup('mapa.php?pickup_zip_code=".$fila['pickup_zip_code']."&dropoff_zip_code=".$fila['dropoff_zip_code']."',800,600)\" >Map</a></td>
  11.                        <td align=center width=150>".$fila['description']."</td>
  12.                        <td align=center width=50>".$fila['quote']."</td>                      
  13.                        <td align=center width=50><input type='checkbox' name='select[]' value='".$fila['id_data']."'></td>
  14.                        <input type='hidden' name='id_data' value='".$fila['id_data']."'>
  15.                        <input type='hidden' name='notification' value='Quote Received'>
  16.                        <input type='hidden' name='sound' value='http://www.ffq.carfreight.net/cPanel/sound/sound.wav'>
  17.                        <td align=center width=25><a href=\"javascript:popup('estimate.php?id_data=".$fila['id_data']."&date=".$fila['date']."&user_name=".$fila['user_name']."&pickup_zip_code=".$fila['pickup_zip_code']."&dropoff_zip_code=".$fila['dropoff_zip_code']."&description=".$fila['description']."&quote=".$fila['quote']." ',250,250)\" >Edit</a></td>
  18.                        </tr>
  19.                        ";
  20.                          }
  21.                         echo "</table></form>";

Lo unico que hice fue anular el formulario ya que como me dicen estoy metiendo todo dentre el mismo y esta mal, así que hice un boton en javascript pasando las variables por post, ya se que no es lo mas recomendable, pero como esto es un sistema interno al que solo nosotros tenemos acceso no afecta en nada.

Gracias por la ayuda.

PD: Estoy poniendo esto ahora, después de un tiempo por que he notado que he recibido un infracción de 3 puntos referido a este post. En realidad no se a que se debe, ya que la infracción no da motivo alguno, solo el castigo.
__________________
Se invierte mas dinero en cirugía de pechos y viagra que en la cura del Alzheimer. En unos años tendremos viejas con grandes tetas y viejos con erecciones pero que no recordarán para que sirven..

Etiquetas: php+basedatos
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:53.