PHP - Consulta php

 
Vista:

Consulta php

Publicado por Mauro (3 intervenciones) el 12/05/2012 17:48:54
Buenas tardes espero que puedan ayudarme en este problema.
Necesito hace un buscador que al hacer la busqueda muestre el resultado en textbox para que pueda cambiar algo y que tenga un boton para guardar lo nuevo que he escrito. La solucion que he visto es siempre la misma muestran el resultado de la consulta y le ponen un boton o link editar y de ahi los lleva a un formulario para cambiar los datos y guardarlos. Lo que yo quiero es que directamente lo pueda editar desde el resultado que muestra.

He logrado que esto funcione siempre y cuando el resultado sea unico. Pero cuando hay muchso resultados el b oton guardar manda los valores de la ultima fila no de la que yo elija. ME explico? Desde ya muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Consulta php

Publicado por xve (6935 intervenciones) el 12/05/2012 18:52:21
Hola Mauro, me cuesta mucho de entenderte... se puede visualizar la pagina en internet?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consulta php

Publicado por Mauro (3 intervenciones) el 12/05/2012 21:18:45
Hola xve no no esta en internet. Te explico mejor

Primero Tengo un campo de texto donde yo ingreso lo que quiero buscar( es un buscador de datos personales) entonces por ejemplo pongo en el buscador "mauro" con eso hago una consulta y muestro los resultados que coincidan con la paralaba "mauro". Estos resultados los muestro en en un formulario en cajas de texto. Puede pasar que el resultado me arroje muchos mauro y yo quiero editar solo uno. Como el resultado lo muestro en un campo de texto puedo borrar y escribir lo que yo quiera. Pero cuando aprieto el boton de guardar me manda los datos de la ultima fila y no de la fila que yo aprete el boton.

Los datos los estoy pasando por post cuando apreto el boton guardar. Pongo una parte del codigo para que lo veas.

<?php

$link = mysql_connect("localhost", "root");
mysql_select_db("netbooks", $link);
$buscar = $_POST['buscar']; //esto es la palabra que ingreso en el campo para buscar

//Consultas

$result = mysql_query("SELECT * FROM estado_netbooks WHERE CONCAT(Nombre,Apellido,Curso,Documento,Marca,Serie,Problema,Estado,Reclamo,Garantia) LIKE '%$buscar%' ORDER BY Nombre", $link);
$encontrados = mysql_num_rows($result);
//Mostramos el encabezado de los resultados dentro de un formulario que actualizará datos

echo"<form action=guardar.php method =post><table border=1 cellspacing=1 cellpadding=1>

<tr>
<td><b>id</b></td>
<td><b>Nombre</b></td>
<td><b>Apellido</b></td>
<td><b>Curso</b></td>
<td><b>Documento</b></td>
<td><b>Marca</b></td>
<td><b>Serie</b></td>
<td><b>Problema</b></td>
<td><b>Tipo</b></td>
<td><b>N Garan.</b></td>
<td><b>Est Garantia</b></td>
</tr>";

if ($encontrados > 0) {
//Creamos el bucle para los resultados
while($row=mysql_fetch_array($result)){

echo"
<tr>
<td><input type=text name=id size=1 maxlength=30 value=$row[id]></td>
<td><input type=text name=nombre size=13 maxlength=30 value=\"$row[Nombre]\"></td>
<td><input type=text name=apellido size=15 maxlength=30 value=$row[Apellido]></td>
<td><input type=text name=curso size=2 maxlength=4 value=$row[Curso]></td>
<td><input type=text name=documento size=8 maxlength=8 value=$row[Documento]></td>
<td><input type=text name=marca size=3 maxlength=3 value=$row[Marca]></td>
<td><input type=text name=serie size=14 maxlength=15 value=$row[Serie]></td>
<td><input type=text name=problema size=30 maxlength=50 value=\"$row[Problema]\"></td>
<td><input type=text name=tipo size=10 maxlength=30 value=$row[Estado]></td>
<td><input type=text name=reclamo size=8 maxlength=30 value=$row[Reclamo]></td>
<td><input type=text name=garantia size=15 maxlength=30 value=$row[Garantia]></td>
<td><input type=submit name=boton value=Guardar></td>
</tr>";

}
echo"</table></form>";
} else{
echo 'No se encontraron resultados';
}

//Cerramos la conexión con MySQL
mysql_close($link);
?>


Cuando el resultado solo es uno si funciona por ejemplo si busco "pablo" me da un resultado puedo borrar lo que hay y escribir de nuevo apreto guardar y se guardan los cambios.

Espero que me hays entendido. No se como hacerlo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Consulta php

Publicado por xve (6935 intervenciones) el 13/05/2012 10:21:52
Hola Mauro, gracias por comentarlo, ahora lo he entendido perfectamente.

Creo que el problema que tienes, es que al enviar el formulario, envías varias veces el campo nombre, apellido, etc... y el sistema, únicamente coge el ultimo que le llega, por eso únicamente te actualiza uno.

Tienes que identificar de alguna manera cada una de las columnas, ya sea poniendo el campo name="nombre#id" y en el momento de guardar los datos separar el nombre del id con explode() por ejemplo.

Una manera mas correcta, a lo mejor seria utilizar ajax y actualizar cada una de las lineas que se hubiera modificado... aunque ya es un poco mas complicado.

No se si te he ayudado... coméntame, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consulta php

Publicado por Mauro (3 intervenciones) el 13/05/2012 16:59:04
Hola xve la verdad que estoy medio perdido no entiendo muy bien lo que me decis. Me podrias dar un ejemplo de como usar lo de nombre#id y explode. Que logro haciendo eso?
Por otro lado tambien he leido para otros casos el uso de un array y luego hacer un foreach pero tampoco entiendo si me servira y como aplicarlo. Desde ya muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar