Foros del Web » Programando para Internet » PHP »

Ayuda con array

Estas en el tema de Ayuda con array en el foro de PHP en Foros del Web. Tenga el código: Código PHP: $sql = "select * from dpswd.$tabla limit $desde, $cantidadlinea" ; $result  =  mysql_query ( $sql , $link ); while (  $row  =  mysql_fetch_assoc ( $result ) )  {  ...
  #1 (permalink)  
Antiguo 25/05/2009, 16:13
Avatar de boy-computer  
Fecha de Ingreso: diciembre-2006
Ubicación: Cuba, Pinar del Río
Mensajes: 337
Antigüedad: 17 años, 4 meses
Puntos: 1
Pregunta Ayuda con array

Tenga el código:

Código PHP:
$sql="select * from dpswd.$tabla limit $desde, $cantidadlinea";
$result mysql_query($sql,$link);
while ( 
$row mysql_fetch_assoc($result) ) 

 
$identifica=$row
 
$id[]=$identifica['id_'.$tabla.''];

Pero me da el siguiente error:

Código:
Fatal error: [] operator not supported for strings
Por qué es esto, cual es el problema
  #2 (permalink)  
Antiguo 25/05/2009, 16:24
Avatar de Kenichi  
Fecha de Ingreso: enero-2009
Ubicación: Rosario, Argentina
Mensajes: 160
Antigüedad: 15 años, 3 meses
Puntos: 6
Respuesta: Ayuda con array

Prueba cambiando tu codigo por el siguiente:
Código PHP:
$sql="select * from dpswd.$tabla limit $desde, $cantidadlinea";
$result mysql_query($sql,$link);
$id = array();
while ( 
$row mysql_fetch_assoc($result) ) 

 
$id[]=$row['id_'.$tabla];

  #3 (permalink)  
Antiguo 25/05/2009, 16:31
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 5 meses
Puntos: 18
Respuesta: Ayuda con array

Que intentas hacer con estas sentencias??

Código :
Ver original
  1. $identifica=$row;  
  2.  $id[]=$identifica['id_'.$tabla.''];

Primero almacenas lo que obtienes de la BD ($row) en la variable $identifica( que por cierto te falta declarar antes de utilizarla, porque con errores estrictos te saldrá una advertencia) que es un array copia de $row que contiene lo mismo.

Luego en la segunda línea tratas de almacenar en la variable $id(que por cierto es de tipo array que no has declarado). y quieres obtener un índice que no encontrarás en la variable $identifica porque es fiel copia de $row.

Analiza bien lo que estás haciendo.

suerte.
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #4 (permalink)  
Antiguo 25/05/2009, 16:57
Avatar de boy-computer  
Fecha de Ingreso: diciembre-2006
Ubicación: Cuba, Pinar del Río
Mensajes: 337
Antigüedad: 17 años, 4 meses
Puntos: 1
Respuesta: Ayuda con array

argy, como lo harías tu, podría postearme el código.
  #5 (permalink)  
Antiguo 25/05/2009, 17:02
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 5 meses
Puntos: 18
Respuesta: Ayuda con array

por eso dime que es lo que intentas hacer, imprimir lo que obtienes con el select??? almacenarlo en una nueva variable para utilizarlo en otra parte??.
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #6 (permalink)  
Antiguo 25/05/2009, 17:07
Avatar de boy-computer  
Fecha de Ingreso: diciembre-2006
Ubicación: Cuba, Pinar del Río
Mensajes: 337
Antigüedad: 17 años, 4 meses
Puntos: 1
Pregunta Respuesta: Ayuda con array

Lo que intento es obtener el id de los registros, y pasárselos a un link
  #7 (permalink)  
Antiguo 25/05/2009, 17:15
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 5 meses
Puntos: 18
Respuesta: Ayuda con array

algo así?

Código :
Ver original
  1. while ( $row = mysql_fetch_assoc($result) )  
  2. {  
  3. echo '<a href="link.php?id='.$row['campo_id'].'">link</a>';
  4. }
o todos los id en un sólo link

algo asi

Código :
Ver original
  1. <a href="http://www.forosdelweb.com/f18/ayuda-con-array-703098/link.php?id1=valor1&id2=valor2...>link</a>
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #8 (permalink)  
Antiguo 25/05/2009, 17:20
Avatar de boy-computer  
Fecha de Ingreso: diciembre-2006
Ubicación: Cuba, Pinar del Río
Mensajes: 337
Antigüedad: 17 años, 4 meses
Puntos: 1
Respuesta: Ayuda con array

Mira mi objetivo es pasarle un valor al link para poder editar un registro de una tabla, es decir, se generan un grupo de registros y cada registro va a tener un id
  #9 (permalink)  
Antiguo 25/05/2009, 17:25
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 5 meses
Puntos: 18
Respuesta: Ayuda con array

por eso mismo entonces estás en el primer caso simplemente tienes que imprimir los otros campos más que sean necesarios ejemplo.

Código :
Ver original
  1. while ( $row = mysql_fetch_assoc($result) )  
  2. {  
  3. echo '<div>'.$row['otro_campo'].' <a href="link.php?id='.$row['campo_id'].'">link</a></div>';
  4. }

claro que me supongo en tu caso utilizarás quizás tablas. y cada registro tendrá su propio id y al momento de abrir el link será con el id respectivo. que luego puedes utilizarlo para obtener los campos que vas a editar de dicho registro.

suerte.
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #10 (permalink)  
Antiguo 25/05/2009, 17:43
Avatar de boy-computer  
Fecha de Ingreso: diciembre-2006
Ubicación: Cuba, Pinar del Río
Mensajes: 337
Antigüedad: 17 años, 4 meses
Puntos: 1
Respuesta: Ayuda con array

Disculpa pero parece que no me sirve, porque ese campo_id varia en dependencia de la tabla con la que este trabajando, y en realidad el diseño que estoy programando es para cualquier campo_id de cualquier tabla.

En realidad solo me hace falta obtener los id de los registros, con el código:

Código PHP:
$sql="select * from dpswd.$tabla limit $desde, $cantidadlinea";
$result mysql_query($sql,$link);
$id=array();
while ( 
$row mysql_fetch_assoc($result) ) 

 echo 
$id[]=$row[id_.$tabla];

lo que obtengo de una de mis tablas que tiene tres registros es: 123, y cuando hago

Código PHP:
echo count($id
me debería mostrar el tamaño del vector $id, pues no, lo que hace es ponerme 123.

Por favor dime que hago, ayudame me estoy
  #11 (permalink)  
Antiguo 25/05/2009, 17:45
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 5 meses
Puntos: 18
Respuesta: Ayuda con array

entonces utiliza mysql_fetch_array() o en todo caso hazte una función.
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #12 (permalink)  
Antiguo 25/05/2009, 18:11
Avatar de boy-computer  
Fecha de Ingreso: diciembre-2006
Ubicación: Cuba, Pinar del Río
Mensajes: 337
Antigüedad: 17 años, 4 meses
Puntos: 1
Respuesta: Ayuda con array

Colega y despues como saco el valor de adentro del ciclo del while y lo pongo en otra parte.
  #13 (permalink)  
Antiguo 25/05/2009, 18:28
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 5 meses
Puntos: 18
Respuesta: Ayuda con array

declaras una variable de tipo array fuera del while y dentro de este le asignas el contenido de $row y luego ya puedes utilizar fuera del while.
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #14 (permalink)  
Antiguo 25/05/2009, 18:30
Avatar de Kenichi  
Fecha de Ingreso: enero-2009
Ubicación: Rosario, Argentina
Mensajes: 160
Antigüedad: 15 años, 3 meses
Puntos: 6
Respuesta: Ayuda con array

Argy, no hace falta si o si mostrar los enlaces apenas los sacas de la db, puedes ponerlo en un array para usarlo cuando quieras, asi:
Código PHP:
<?php
$sql
="select * from dpswd.$tabla limit $desde, $cantidadlinea";
$result mysql_query($sql$link);
$id = array();
$i 0;
while (
$row mysql_fetch_assoc($result)) 

 
$i++; // Contamos los objetos
 
$id[]=$row['id_'.$tabla];
}
// Luego lo usas donde quieras, por ejemplo aqui:
for ($f 0;$f $i;$f++)
{
 echo 
"<a href='link.php?id=".$id[$f]."'>enlace</a>";
}
?>
Asi, cada vez que necesites listar los resultados lo haces con otro while o for como hice yo ahi. Saludos
  #15 (permalink)  
Antiguo 25/05/2009, 18:34
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Ayuda con array

Escribe lo que viene despues de ese codigo en el for que habias publicado anteriormente para poderte crear el codigo conforme a lo que viene despues
  #16 (permalink)  
Antiguo 25/05/2009, 18:34
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 5 meses
Puntos: 18
Respuesta: Ayuda con array

si por eso mismo declaras una variable de tipo array fuera del while y a este lo asignas dentro del while que luego lo utilizas fuera del while.

suerte.
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #17 (permalink)  
Antiguo 26/05/2009, 08:20
Avatar de boy-computer  
Fecha de Ingreso: diciembre-2006
Ubicación: Cuba, Pinar del Río
Mensajes: 337
Antigüedad: 17 años, 4 meses
Puntos: 1
Respuesta: Ayuda con array

Colegas con el último códigoi de Kenichi, ya resolví el problema. Gracias a todos.
  #18 (permalink)  
Antiguo 26/05/2009, 11:38
Avatar de boy-computer  
Fecha de Ingreso: diciembre-2006
Ubicación: Cuba, Pinar del Río
Mensajes: 337
Antigüedad: 17 años, 4 meses
Puntos: 1
Respuesta: Ayuda con array

Que tengo mal en este código que cuando le asigno un valor a un objeto text del formulario, solo me muestra el primer valor del array:

Código PHP:
$sql="SHOW COLUMNS FROM $tabla";
        
$result mysql_query($sql,$link);
        echo 
"<tr><td colspan='2' class='encabeza'>Editando $tabla</td></tr>";
        
$sql_editar="select * from dpswd.$tabla where id_".$tabla."='$id_'";
        
$result_editar=mysql_query($sql_editar,$link);
        
$num=mysql_num_fields($result_editar);
        for (
$h=0$h<mysql_num_rows($result_editar); $h++)
        {
         for (
$d=1;$d<$num;$d++)
         {          
          
$uno1=mysql_result($result_editar$h$d);
          
$a_editar[$d]=$uno1;
        
        while (
$row mysql_fetch_assoc($result)) {
        
$campos=$row;
        echo 
"<tr>";
        echo 
"<td align='right' valign='top'>".$campos['Field'].":&nbsp;</td>";
        echo 
"<td>";
        
        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);
         
//echo $sql;
         
$cols=mysql_fetch_object($result);
         
$tabla=$cols->tabla_referencia
         
         
$sql="select * from dpswd.$tabla";
         
$result=mysql_query($sql,$link);
         
//echo $sql;
         
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>";
        
        }elseif( 
$campos['Type']==longtext )
        {
         echo 
"<textarea name='".$campos['Field']."' cols='50' rows='7'></textarea>";
        }else{
         if ( 
$campos['Key']==PRI 
         {
          echo 
$id_;
         }else{
         echo 
"<input type='text' name='".$campos['Field']."' value='".$a_editar[$d]."' />";
         }
        }
        echo 
"</td>";
        echo 
"</tr>";
        }
        
         } 
        } 
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 01:56.