Ver Mensaje Individual
  #11 (permalink)  
Antiguo 26/05/2009, 15:28
Avatar de boy-computer
boy-computer
 
Fecha de Ingreso: diciembre-2006
Ubicación: Cuba, Pinar del Río
Mensajes: 337
Antigüedad: 18 años, 2 meses
Puntos: 1
Respuesta: No veo valor en los camos del form a la hora de editar un registro

Colega de esa forma no me es útil

Código PHP:
echo $arraym["nombre"];
echo 
$arraym["apellido"]; 
porque en realidad nesecito que el array sea capaz de almacenar cualquier campo, es decir, debe trabajar por ejemplo para cualquier tabla, te explico.

si trabajo con la tabla estudiante, por ejemplo, entonces tengo campos como nombre y apellidos; pero si trabajo con la tabla cursos, entonces tengo camos como fecha_inicio, impartido_por, calificación.

Como verás nesecito que que ese array pueda almacenar cualquier tipo de valor de campo.

Mira no nos compliquemos más, la idea esta clara, solo que no sé como insertar el valor en el atributo value=" del formulario.

Te voy a explicar mejor todavía el código mio para que lo entiendas mejor, pero por favor esto es con paciencia, y te agradesco que me ayudes hasta que desmos con el código que quiero, no me dejes solo con esto .

te voy a poner por parte el código y lo que me hace:

Código PHP:
/*este me selecciona los nombres de los campos de la tabla que pasa en la variable $tabla*/
$sql_campos="SHOW COLUMNS FROM $tabla";
$result mysql_query($sql_campos,$link); 
Código PHP:
while ($row mysql_fetch_assoc($result)) {
$campos=$row;   //aqui estoy almacenando los nombres de los campos
.
.              
.           
/* dentro de estas lineas va el codigo de edicion segun el tipo de campo*/
.

Código PHP:
/*aqui muestro los nombres de los campos, para despues poner al lado de cada uno un objeto del formulario ya sea un text, textarea o un select */
echo "<tr>";
echo 
"<td align='right' valign='top'>".$campos['Field'].":&nbsp;</td>";
echo 
"<td>"
Código PHP:
/* si existe algun campo que sea FOREIGN KEY (esto lo pregunto de la forma if ( $campos['Key']=='MUL' ), si existe, entonces muestro un select, donde hago una consulta a la tabla que pertenece el campo FOREIGN KEY de la tabla original en la que el es el campo PRIMARY KEY ) */
if ( $campos['Key']=='MUL' ) {
$campo_foraneo $campos['Field'];
$sql="SELECT CONCAT( referenced_table_name) AS tabla_referencia
      FROM information_schema.KEY_COLUMN_USAGE
      WHERE REFERENCED_TABLE_SCHEMA = 'dpswd' AND REFERENCED_TABLE_NAME IS NOT NULL AND COLUMN_NAME = '$campo_foraneo'
    ORDER BY TABLE_NAME, COLUMN_NAME"
;
$result=mysql_query($sql,$link);

$cols=mysql_fetch_object($result);
$tabla=$cols->tabla_referencia
         
$sql="select * from dpswd.$tabla";
$result=mysql_query($sql,$link);
    
echo 
"<select name='".$campos."'>";
echo 
"<option>- - - </option>";
while ( 
$select=mysql_fetch_assoc($result) ){
$select_campo=$select;
echo 
"<option value='".$select_campo[$campo_foraneo]."'>".$select_campo[$tabla]."</option>";
}
echo 
"</select>"
Código PHP:
/* si existe algun campo de de tipo dato longtext lo cual pregunto de la forma  elseif( $campos['Type']=='longtext' ), entonces muestro un textarea  */
elseif( $campos['Type']=='longtext' )
{
echo 
"<textarea name='".$campos['Field']."' cols='50' rows='7'></textarea>";

Código PHP:
/* en el caso para el campo PRIMARY KEY le digo que me ponga el valor del campo nada mas  */
else{
if ( 
$campos['Key']=='PRI' 
{
echo 
$id_;

Código PHP:
/* y en ultima instancia, en caso de no cumplirse nada de lo anterior, entonces muestro solamente cajas de texto  */
else{
echo 
"<input type='text' name='".$campos['Field']."' value='' />";

Ahora lo que nesecito es pasarle en el value='' de los objetos el valor de los campos que voy a editar y es para eso que hago:

Código PHP:
$sql_editar="select * from dpswd.$tabla where id_".$tabla."='$id_'";
        
$result_editar=mysql_query($sql_editar,$link);
        
$num mysql_num_fields($result_editar);
        
$valores=mysql_fetch_array($result_editar,MYSQL_ASSOC);
        echo 
$valores['nombre']; // o cualkier nombre de campo en la bdd
        
for ($i=0;$i<mysql_num_rows($result_editar);$i++) 
        { 
         for (
$k=1;$k<$num;$k++) 
         {           
          
$edit[]=mysql_result($result_editar$i$k); 
         } 
        } 
Pero no se como meter el valor de:
Código PHP:
$edit[]=mysql_result($result_editar$i$k); 
dentro del codigo donde empieza:

Código PHP:
while ($row mysql_fetch_assoc($result)) {
$campos=$row;
.
.
.
.
.
.
.

Es aqui donde nesecito de la ayuda, como almacenar los datos de la consulta en un array y luego pasarlo al value=''

Por favor ayudame (O) aydenme. Estoy muy