Programación Web y Scripting > PHP

 procesar muchos ID tildados por un checkbox

<< < (2/3) > >>

DriverOp:

--- Cita de: "cesand" ---HOLa DriverOp ..

sabes que tuve un problema al intentar hacer un echo para ver los id que recupero el array id[] que cree como me dijiste que lo puciera en el name.. mas que nada el problema lo tuve en que no supe escribir la sintaxis para mostrarlo los resultados ya que es un array id[] pero al procesar vA a tener el $_POST ese array como quedaria para hacer un echo a las distintas pociciones del array?

probe de muchas formas que por lo visto estan mal.. asi lo intente

echo $_POST['id[]'];

tambien

echo $_POST['id[0]'];
--- Fin de la cita ---

Bueno, es entendible, porque $_POST ya es un array.

Tienes dos formas de hacerlo:

[php:3rnrke1q] $ids = $_POST["id"];foreach($ids as $key => $value) {  echo "El valor del indice ".$key." es: ".$value."<br>";}[/php:3rnrke1q]

o bien:

[php:3rnrke1q]echo "El valor del indice 0 es: ".$_POST["id"][0];[/php:3rnrke1q]

cesand:
Muchas gracias por las respuestas amigos, les cuento lo pude hacer con el foreach y con la otra sintaxis --- Como ya e dicho muchas veces estoy aprendiendo y por esto seguramente como ustedes cuando empezaron nostrabamos seguido en los script por no saber como hacer algo... este tema yo crei no me iva a presentar tantas complicaciones pero no fue asi espero no se tome a mal otra pregunta mia sobre el tema..

lo que pasa es que yo queria generar este array para despues hacer una SQL (select) para mostrar solo estos registros en otro script. Entonces me surge otra vez el problema supongamos que la sql fuera asi:

$sql = "SELECT * FROM clientes where clientes.id = " ??????????? ;

ahi donde puse los ? se entiende que es lo que no puede hacer nose como poner el array que contiene los id como tendria que ser? imagino puede ser que hacer un loop para que haga un echo a los distintos id  pero nose si se puede hacer esto... intente hacerlo pero lo unici que consegui fueron errores :brickwall:

los espero por favor que me puedan dar otra ayuda.
desde ya mil graciassss.

DriverOp:
Solo para estar seguro que comprendí bien: el usuario pone tildes en aquellos ids que luego va a visualizar y para ello debes recuperar los clientes cuyo id sea igual a alguno de los ids que el usuario tildó (o todos ellos).

Para lograrlo quieres hacerlo con una sola sentencia SQL. Bien pues, sí, se puede:

Reusando el código anterior...

[php:1qnviwky] $ids = $_POST["id"];$condicion = "";if (count($ids) > 0) {foreach($ids as $key => $value) {  $condicion .= $value." ";}$condicion = trim($condicion); // quita el último espacio$condicion = str_replace(" ",",",$condicion); // reemplaza los espacios por coma$condicion = "(".$condicion.")"; // agrega los paréntesis} else { echo "No ha seleccionado ningún cliente."; exit; }$sql = "SELECT * FROM `clientes` WHERE `id` IN ".$condicion";"; // La sentencia SQLecho $sql; [/php:1qnviwky]

He separado cada paso en una línea cada uno para que se comprenda, pero podría hacerse todo de una sola vez así:
[php:1qnviwky]$condicion = "(".str_replace(" ",",",trim($condicion)).")";[/php:1qnviwky]
El operador de SQL "IN" devuelve verdadero si el elemento que está a la izquierda (`id`) pertenece al conjunto que está a la derecha ($condicion = "(1,3,6)");

cesand:
muchimas gracias por el tiempo y las respuestas driverOp..

te digo la verdad todavia no pude probar tu codigo no e podido estar en la pc ahora voy a mirarlo y probarlo si te comento despues cualquier cosita

gracias otra vez

cesand:
driverOp ahi estuve probando el codigo que me pasaste, me gustaria hacerte dos consultas si puede ser;

1)
      no entiendo esta parte, te pregunto sobre tu codigo


--- Código: PHP ---   foreach($ids as $key => $value)  {   $condicion .= $value." "; // [b]aca le agregas un espacio al final[/b] } $condicion = trim($condicion); // [b]no entiendo por que lo sacas aca al espacio si en la linea de abajo vas a reemplazar el espacio por una " , " [/b] por que lo sacas aca si recien en la linea de abajo vas a reemplazar el espacio por la coma. por que sino en la linea de abajo que espacio reemplazas si ya lo sacaste con el trim??  $condicion = str_replace(" ",",",$condicion); // reemplaza los espacios por coma 
2)
     cree la sql con el codigo que me diste la misma quedo asi
SELECT * FROM renovacion WHERE 'id' IN (5,7);
no me da error de sintaxis pero la pruevo en el phpmyadmin y me devuelvo 0 resultados y los id 5 y 7 existen por que podra ser esto?

desde ya muchas gracias amigo y como siempre yo pregunto y en lo posible que se me pueda ayudar bienvenido sea si no se puede no se puede no quiero resultar molesto.

saludos gente

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior

Ir a la versión completa