Foros del Web » Programando para Internet » PHP »

Problema al editar despues de buscar

Estas en el tema de Problema al editar despues de buscar en el foro de PHP en Foros del Web. Bueno, mi problema es que no puedo editar los datos de una busqueda, tengo 2 archivos uno en el que esta la interfaz y la ...
  #1 (permalink)  
Antiguo 04/10/2012, 19:14
(Desactivado)
 
Fecha de Ingreso: septiembre-2012
Ubicación: Peru Villa Maria
Mensajes: 29
Antigüedad: 11 años, 7 meses
Puntos: 0
Problema al editar despues de buscar

Bueno, mi problema es que no puedo editar los datos de una busqueda, tengo 2 archivos uno en el que esta la interfaz y la busqueda y otro archivo modificar.php donde esta la modificacion:
Código PHP:
<?php
include('conexion.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org
//mas codigo//
</form>
<?
                        
////////////////////////////
                        // Proceso del Formulario
                        ///////////////////////////
    
if ($_POST['enviar'])
        {
        
// Tomamos el valor ingresado
        
$buscar $_POST['palabra'];
        
        
// Si está vacío, lo informamos, sino realizamos la búsqueda
        
if(empty($buscar))
        {
            echo 
"No se ha ingresado una cadena a buscar";
        }else{
            
$sql "SELECT * FROM cliente_lab WHERE idcliente_lab like '%$buscar%' ORDER BY idcliente_lab DESC";
            
$result1 mysql_query($sql);
            
$result mysql_query($sql);
            
?>
                <div>                            
                    <TABLE BORDER=1 CELLSPACING = 1 CELLPADDING= 1>
                                  <TR>
                                 <TD>&nbsp;ID</TD>
                                  <TD>&nbsp;RAZON SOCIAL&nbsp;</TD>
                                  <TD>&nbsp;DIRECCION&nbsp;</TD>
                                  <TD>&nbsp;CODIGO POSTAL&nbsp;</TD>
                                 <TD>&nbsp;PROVINCIA&nbsp;</TD>
                                   </TR>
                     
                    <form name="form1" method="post" action="">
                    <?php
                    
while($row mysql_fetch_array($result))
                    {
                        
printf(
                            
"
                                <tr>
                                    <td>
                                    <INPUT TYPE='text'  disabled='true' NAME='idcliente_lab' id='idcliente_lab' SIZE='20'value= $row[idcliente_lab]>
                                    </td>
                                    <td>&nbsp;
                                    <INPUT TYPE='text' name='razonsocial_lab' id='razonsocial_lab' SIZE='20' value=$row[razonsocial_lab]>&nbsp;
                                    </td>
                                    <td>&nbsp;
                                    <INPUT TYPE='text' name ='direccion_lab' id='direccion_lab'SIZE='20' value=$row[direccion_lab]>&nbsp;</td>
                                    <td>&nbsp;
                                    <INPUT TYPE='text' name ='codpostal_lab' id='codpostal_lab' SIZE='20' value=$row[codpostal_lab]>&nbsp;</td>
                                    <td>&nbsp;
                                    <INPUT TYPE='text' name ='provincia_lab' id='provincia_lab' SIZE='20' MAXLENGTH='30' value=$row[provincia_lab]>&nbsp;
                                    </td>
                                    <td>&nbsp;
                                    <a href=\"ctrl_modificar_lab.php?id=$row[idcliente_lab]\">Borrar</a></td>
                                </tr>
                        "
,
                        
$row["idcliente_lab"],$row["razonsocial_lab"],$row["direccion_lab"],$row["codpostal_lab"],$row["provincia_lab"],$row["idcliente_lab"]);
                        }
                        
mysql_free_result($result);
                    
?>
                    
                    </form>
                    </table>        
            </div>
            
            <?
            
// Tomamos el total de los resultados
            
$total mysql_num_rows($result1);
            
            
// Imprimimos los resultados
            
if ($row mysql_fetch_array($result1)){
            echo 
"<center>Resultados para: <b>$buscar</center></b>";
            while (
$row mysql_fetch_array($result1)); {
            echo 
"<p><center>Resultados: $total</p>";
            } 
            
            } else {
            
// En caso de no encontrar resultados
            
echo "No se encontraron resultados para: <b>$buscar</b>";
            }
            }
            }
?>

    <div class="bloque-ppal">

        </div>
    </div>
<div class="menu_derecha-bt">
            <ul>
//mas codigo//

</div>

</body></html>
Y el archivo para modificar es este...
la verdad no se como hacer para que me lea las variables en este otro archivo probando con el var_dump me devuelve null.. :S
Código PHP:
<?php
include("conexion.php");
$razonsocial_lab $row['idcliente_lab'];
$Sql="UPDATE cliente_lab SET
razonsocial_lab ='$razonsocial_lab',
direccion_lab ='$direccion_lab',
codpostal_lab='$codpostal_lab',
provincia_lab='$provincia_lab'
nombre_lab ='$nombre_lab' 
WHERE      idcliente_lab='$idcliente_lab'"
;
mysql_query($Sql);
var_dump($row);
//var_dump($direccion_lab);
//var_dump($codpostal_lab);
//var_dump($provincia_lab);
//var_dump($nombre_lab);
//var_dump($$idcliente_lab);
?>
no me lee ninguna variable..
ayudenme please...
  #2 (permalink)  
Antiguo 04/10/2012, 19:33
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: Problema al editar despues de buscar

Pero y como no te va a devolver null, si nisiquiera están definidas.
Deberías tener una zona en tu script donde definas esas variables que te llegan por POST en este caso, a demas de que en el action del formulario no tenes nada, entonces no te va a llegar a ningún lado nada.
ejemplo:
Código PHP:
Ver original
  1. $razonsocial_lab=$_POST['razonsocial_lab']
con el enlace ese lo único que haces es pasarle "id" que es igual a "$row[idcliente_lab]", lo otro nunca te llega es obvio.
Usa el boton del submit para algo no te compliques
  #3 (permalink)  
Antiguo 04/10/2012, 21:28
(Desactivado)
 
Fecha de Ingreso: septiembre-2012
Ubicación: Peru Villa Maria
Mensajes: 29
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Problema al editar despues de buscar

Gracias me sirvio lo que me dijiste..
Pero bueno, ahora, pasa que cuando quiero poner a un input de tipo text como deshabilitado, ya no me lo lee, el var_dump y por consiguiente no puedo modificar ya que quiero deshabilitar la edicion del codigo, y que solo me sirva para jalar el dato para actualizar los otros datos...
como lo haria.. Gracias de antemano..
  #4 (permalink)  
Antiguo 04/10/2012, 22:01
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: Problema al editar despues de buscar

ponelo como readonly="readonly", no como disabled

http://www.w3schools.com/tags/att_input_readonly.asp
  #5 (permalink)  
Antiguo 04/10/2012, 23:58
(Desactivado)
 
Fecha de Ingreso: septiembre-2012
Ubicación: Peru Villa Maria
Mensajes: 29
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Problema al editar despues de buscar

Cita:
Iniciado por rodrigo791 Ver Mensaje
ponelo como readonly="readonly", no como disabled

[url]http://www.w3schools.com/tags/att_input_readonly.asp[/url]
Vaa.. pense que ya estaba arreglado.. o derepente movi algo... sin querer la cosa es que ahora solo puedo editar el primer registro aunque ponga el codigo de otro registro no me lo lee, me lee siempre el primer registro, y por consiguiente me edita solo rl primer registro.. pondre solo el codigo que esta mal..
Please ayuda es para mañana me amanecere haciendo :(
Código PHP:
if ($_POST['enviar'])
        {
        // Tomamos el valor ingresado
        $buscar = $_POST['palabra'];
        
        // Si está vacío, lo informamos, sino realizamos la búsqueda
        if(empty($buscar))
        {
            echo "No se ha ingresado una cadena a buscar";
        }else{
            $sql = "SELECT * FROM cliente_lab WHERE idcliente_lab like '%$buscar%' ORDER BY idcliente_lab DESC";
            $result1 = mysql_query($sql);
            $result = mysql_query($sql);
            ?>
                <div>                            
                    <TABLE BORDER=1 CELLSPACING = 1 CELLPADDING= 1>
                                  <TR>
                                 <TD>&nbsp;ID</TD>
                                  <TD>&nbsp;RAZON SOCIAL&nbsp;</TD>
                                  <TD>&nbsp;DIRECCION&nbsp;</TD>
                                  <TD>&nbsp;CODIGO POSTAL&nbsp;</TD>
                                 <TD>&nbsp;PROVINCIA&nbsp;</TD>
                                
                                   </TR>                
                    <form name="form1" method="post" action="ctrl_modificar_lab.php">
                    <?php
                    
while($row mysql_fetch_array($result))
                    {
                        
printf(
                            
"
                                <tr>
                                    <td>
                                    <INPUT TYPE='text' name='idcliente_lab' id='idcliente_lab' SIZE='20' value= $row[idcliente_lab]>
                                    </td>
                                    <td>&nbsp;
                                    <INPUT TYPE='text' name='razonsocial_lab' id='razonsocial_lab' SIZE='20' value= $row[razonsocial_lab]>&nbsp;
                                    </td>
                                    <td>&nbsp;
                                    <INPUT TYPE='text' name ='direccion_lab' id='direccion_lab' SIZE='20' value= $row[direccion_lab]>&nbsp;</td>
                                    <td>&nbsp;
                                    <INPUT TYPE='text' name ='codpostal_lab' id='codpostal_lab' SIZE='20' value=$row[codpostal_lab]>&nbsp;</td>
                                    <td>&nbsp;
                                    <INPUT TYPE='text' name ='provincia_lab' id='provincia_lab' SIZE='20' MAXLENGTH='30' value=$row[provincia_lab]>&nbsp;
                                    </td>
                                    <td>&nbsp;
                                    <input type=submit name=boton value=ACTUALIZAR></td>
                                </tr>
                        "
,
                        
$row["idcliente_lab"],$row["razonsocial_lab"],$row["direccion_lab"],$row["codpostal_lab"],$row["provincia_lab"]);
                        }
                        
mysql_free_result($result);
                    
?>
                    
                    </form>
                    </table>        
            </div>
            
            <?
            
// Tomamos el total de los resultados
            
$total mysql_num_rows($result1);
            
            
// Imprimimos los resultados
            
if ($row mysql_fetch_array($result1)){
            echo 
"<center>Resultados para: <b>$buscar</center></b>";
            while (
$row mysql_fetch_array($result1)); {
            echo 
"<p><center>Resultados: $total</p>";
            } 
            
            } else {
            
// En caso de no encontrar resultados
            
echo "No se encontraron resultados para: <b>$buscar</b>";
            }
            }
            }
?>
Juro que te pondre karma todos los dias por un mes...xDD
O si no se puede, estaba pensando que el boton solo aparesca cuando el usuario termine la busqueda osea cuando busque un solo registro.. pero no se como lo controlaria..
Cualquiera de las dos opciones.. please .. :)
  #6 (permalink)  
Antiguo 05/10/2012, 00:05
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: Problema al editar despues de buscar

bueno pero si el error está al actualizar, fijate con echo var_dump(variables); que valores tiene lo que le estas pasando a la consulta sql UPDATE, para ver porque te actualiza el 1ero nomas
  #7 (permalink)  
Antiguo 05/10/2012, 00:10
(Desactivado)
 
Fecha de Ingreso: septiembre-2012
Ubicación: Peru Villa Maria
Mensajes: 29
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Problema al editar despues de buscar

Cita:
Iniciado por rodrigo791 Ver Mensaje
bueno pero si el error está al actualizar, fijate con echo var_dump(variables); que valores tiene lo que le estas pasando a la consulta sql UPDATE, para ver porque te actualiza el 1ero nomas
eso fue lo que hice el var_dump lo puse al otro formulario que me envia los datos.
y me salio que recogia los datos del primer registro de la db.. y no del que yo estaba editando.. :S
Este es mi otro archivo el modificar.php
Código PHP:
<?php
include("conexion.php");


//Convertimos los datos del formulario a cadenas.
$idcliente_lab $_POST['idcliente_lab'];
$razonsocial_lab $_POST['razonsocial_lab'];
$direccion_lab $_POST['direccion_lab'];
$codpostal_lab $_POST['codpostal_lab'];
$provincia_lab $_POST['provincia_lab'];
//$nombredos = $_POST['nombreact'];
//$dire = $_POST['dire'];
//$tele = $_POST['tel'];
//$ecorreo = $_POST['email'];

$Sql="UPDATE cliente_lab SET
razonsocial_lab ='$razonsocial_lab',
direccion_lab ='$direccion_lab',
codpostal_lab='$codpostal_lab',
provincia_lab='$provincia_lab'
WHERE      idcliente_lab='$idcliente_lab'"
;
mysql_query($Sql);
//var_dump($row);
var_dump($direccion_lab);
var_dump($codpostal_lab);
var_dump($provincia_lab);
var_dump($razonsocial_lab);
var_dump($idcliente_lab);
?>
como le dije me sale los datos del primer registro de la db, mejor dicho del primer registro que me buscaba en la pagina..
pero si buscaba por un codigo especifico, (solo una fila) ahi si me modifica esa fila
que sale.. :S
  #8 (permalink)  
Antiguo 05/10/2012, 00:12
(Desactivado)
 
Fecha de Ingreso: septiembre-2012
Ubicación: Peru Villa Maria
Mensajes: 29
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Problema al editar despues de buscar

Para tal caso entonces que solo me deje actualizar, cuando haiga solo una tupla o registro, deshabilitando el buton, pero como controlo eso :S

Etiquetas: buscar+para+modificar, editar+actualizar, modificar, modificar-tablas, mysql, bases-de-datos
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 19:53.