Foros del Web » Programando para Internet » PHP »

Problema con un array

Estas en el tema de Problema con un array en el foro de PHP en Foros del Web. Buenas! Veréis, lo que pretendo con este trocito de código es que para cada idioma ($idiomes), me cree un array llamado vecDescripcio con i$ valores, ...
  #1 (permalink)  
Antiguo 13/10/2010, 07:41
 
Fecha de Ingreso: enero-2005
Mensajes: 170
Antigüedad: 19 años, 10 meses
Puntos: 0
Problema con un array

Buenas!

Veréis, lo que pretendo con este trocito de código es que para cada idioma ($idiomes), me cree un array llamado vecDescripcio con i$ valores, que cada i$ será cada idioma. Y luego para cada valor de i$ dentro de vecDescripcio, haga el str_replace dentro de un cuado de texto.

Código PHP:
Ver original
  1. for ($i = 0; $i = count($idiomes); $i++){
  2.         $vecDescripcio = array($i);
  3.         $vecDescripcio[$i] = str_replace("'","`", $_POST["TNAYdescripcio".$idiomes($i)]);
  4.     }

Esto me da el siguiente error:

Fatal error: Function name must be a string in /var/www/html/workspace/gypco/root/admin/seccions/operaciones.php on line 29

La linea 29 es la ultima linea del trozo de código que os pongo. No acabo de ver dond está el error!
  #2 (permalink)  
Antiguo 13/10/2010, 07:55
Avatar de JoseTejada  
Fecha de Ingreso: diciembre-2007
Ubicación: Peru.Lima.Cercado.MDuarez.Granaderos172
Mensajes: 218
Antigüedad: 16 años, 11 meses
Puntos: 11
Respuesta: Problema con un array

Fijate en esto: $idiomes[$i], adem[as en el FOR me parece que hay un error en la condición $i=count($idiomes)
Código PHP:
for ($i 0$i count($idiomes); $i++){
        
$vecDescripcio = array($i);
        
$vecDescripcio[$i] = str_replace("'","`",$_POST["TNAYdescripcio".$idiomes[$i]]);

  #3 (permalink)  
Antiguo 13/10/2010, 07:56
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 10 meses
Puntos: 12
Respuesta: Problema con un array

$idiomes es FUNCION o es ARRAY ???
  #4 (permalink)  
Antiguo 13/10/2010, 08:06
 
Fecha de Ingreso: enero-2005
Mensajes: 170
Antigüedad: 19 años, 10 meses
Puntos: 0
Respuesta: Problema con un array

$idiomes es un array, por lo que si, faltavan los [] en lugar de (). No veo el error de la condición de para del for. Porqué pones < en lugar de =?

Ahora me salen errores que antes no salían:

Código PHP:
Ver original
  1. <?php
  2. include("../../../bd/cons.php");
  3. include("../include/incfunctions.php");
  4. include("../include/inctexteadmin.php");
  5.  
  6. if(!isset($_SESSION["codi"])){
  7.     header("location:index.php");
  8. }else{
  9.     $idioma = $_POST["idioma"];
  10.     $seccio = $_POST["seccio"];
  11.     if ((strlen(trim($seccio)) == 0) || (!is_numeric($seccio)))
  12.         {
  13.             ?>
  14.                 <script language="JavaScript" type="text/JavaScript">
  15.                 <!--
  16.                 alert('<?php echo texte($_SESSION["idioma"],"error")?>');
  17.                 -->
  18.                 </script>
  19.             <?php
  20.         }
  21.     $opcion = $_POST["opcion"];
  22.     $introduit = false;
  23.  
  24.     $id = $_POST["id"];
  25.     $idiomes = split(",", $_SESSION["idiomes"]);
  26.     //$idiomes = split(',', $_SESSION['idiomes']);
  27.     //foreach($idiomes as $idioma){
  28.            
  29.     for ($i = 0; $i = count($idiomes); $i++){      
  30.         $vecDescripcio = array($i);    
  31.         $vecDescripcio[$i] = str_replace("'","`", $_POST["TNAYdescripcio".$idiomes[$i]]);  
  32.     }
  33.     var_dump($vecDescripcio);

Notice: Undefined index: idioma in /var/www/html/workspace/gypco/root/admin/seccions/operaciones.php on line 10

Notice: Undefined index: id in /var/www/html/workspace/gypco/root/admin/seccions/operaciones.php on line 25

Notice: Undefined offset: 2 in /var/www/html/workspace/gypco/root/admin/seccions/operaciones.php on line 32

Notice: Undefined index: TNAYdescripcio in /var/www/html/workspace/gypco/root/admin/seccions/operaciones.php on line 32


Estos dos ultimos errores salen infinitamente, por lo que el For no lo hace bien...
  #5 (permalink)  
Antiguo 13/10/2010, 08:13
Avatar de JoseTejada  
Fecha de Ingreso: diciembre-2007
Ubicación: Peru.Lima.Cercado.MDuarez.Granaderos172
Mensajes: 218
Antigüedad: 16 años, 11 meses
Puntos: 11
Respuesta: Problema con un array

En el se establece lo siguiente:
for (valor inicial de $i; condicion que debe ser VERDADERA para ejecutar el bucle; incremento de la variable $i)
Con esto, suponiendo que $idiomes tiene 10 elementos, count($idiomes ) te va a devolver un "10", por tanto, si das el valor inicial de cero (0) a $i, obviamente no va a ejecutar el for ya que no cumple con la condición que le pones de "$i==10" (es con doble =, ya que uno solo es asignación...)
  #6 (permalink)  
Antiguo 13/10/2010, 08:16
Avatar de JoseTejada  
Fecha de Ingreso: diciembre-2007
Ubicación: Peru.Lima.Cercado.MDuarez.Granaderos172
Mensajes: 218
Antigüedad: 16 años, 11 meses
Puntos: 11
Respuesta: Problema con un array

Por los demás errores, está indicando que los indices como en el caso de la línea:
Código PHP:
"idioma = $_POST["idioma"]" 
el índice "idioma" no existe o no se ha definido, por tanto verifica que se está enviando bien el formulario que se recibe en tu código.
Espero haberte ayudado...
  #7 (permalink)  
Antiguo 13/10/2010, 08:20
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 19 años, 5 meses
Puntos: 88
Respuesta: Problema con un array

intenta con esto
Código PHP:
Ver original
  1. $idiomes = explode(",", $_SESSION["idiomes"]);//split esta obsoleto
  2.     for ($i = 0; $i < count($idiomes); $i++){//debe de ser menor a count porque el array comienza en cero    
  3.         $vecDescripcio[$i] = str_replace("'","`", $_POST['TNAYdescripcio'.$idiomes[$i]]);  
  4.     }
  5.     var_dump($vecDescripcio);
saludos
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #8 (permalink)  
Antiguo 13/10/2010, 08:20
 
Fecha de Ingreso: enero-2005
Mensajes: 170
Antigüedad: 19 años, 10 meses
Puntos: 0
Respuesta: Problema con un array

En este caso coun($idiomes) me devuelve 2, por lo que el for debe ser asi no?

for ($i = 0; $i == count($idiomes); $i++){

Pero me sigue sin funcionar! Me salen errores absurdos!
  #9 (permalink)  
Antiguo 13/10/2010, 08:23
 
Fecha de Ingreso: enero-2005
Mensajes: 170
Antigüedad: 19 años, 10 meses
Puntos: 0
Respuesta: Problema con un array

Gracias a todos por responder. He cambiado el split por el explode.

Los indices los está pasando bien porque antes solamente petaba en la linea 32 en adelante y desde que estoy haciendo camibios peta todo! :(
  #10 (permalink)  
Antiguo 13/10/2010, 08:34
 
Fecha de Ingreso: enero-2005
Mensajes: 170
Antigüedad: 19 años, 10 meses
Puntos: 0
Respuesta: Problema con un array

Bueno, los errores que me dan son estos:

Notice: Undefined index: idioma in /var/www/html/workspace/gypco/root/admin/seccions/operaciones.php on line 10

Notice: Undefined index: id in /var/www/html/workspace/gypco/root/admin/seccions/operaciones.php on line 25

Notice: Undefined variable: vecDescripcio in /var/www/html/workspace/gypco/root/admin/seccions/operaciones.php on line 35

Notice: Undefined variable: pos in /var/www/html/workspace/gypco/root/admin/seccions/operaciones.php on line 62

etc
  #11 (permalink)  
Antiguo 13/10/2010, 09:08
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 19 años, 5 meses
Puntos: 88
Respuesta: Problema con un array

Cita:
Iniciado por albertpg Ver Mensaje
Bueno, los errores que me dan son estos:
Notice: Undefined index: idioma
Notice: Undefined index: id
no tienen valor el $_POST esta vacio y no se pueden reuperar esos valores
Cita:
Iniciado por albertpg Ver Mensaje
Notice: Undefined variable: vecDescripcio
no esta definida, con esto se soluciona
Código PHP:
Ver original
  1. $idiomes = explode(",", $_SESSION["idiomes"]);
  2. $vecDescripcio=array();
  3. for ($i = 0; $i < count($idiomes); $i++){//debe de ser menor a count porque el array comienza en cero    
  4.  $vecDescripcio[$i] = str_replace("'","`", $_POST['TNAYdescripcio'.$idiomes[$i]]);  
  5. }
  6. var_dump($vecDescripcio);
Cita:
Iniciado por albertpg Ver Mensaje
Notice: Undefined variable: pos
no se cual es la linea 62
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #12 (permalink)  
Antiguo 13/10/2010, 10:08
 
Fecha de Ingreso: enero-2005
Mensajes: 170
Antigüedad: 19 años, 10 meses
Puntos: 0
Respuesta: Problema con un array

Mira, pongo el código y los errores que tengo ahora. Es curioso porque en todos los demás scripts de mi web el idioma y la id los recoge bien por $_POST pero aqui no sé porque no!

Código PHP:
Ver original
  1. <?php
  2. include("../../../bd/cons.php");
  3. include("../include/incfunctions.php");
  4. include("../include/inctexteadmin.php");
  5.  
  6. if(!isset($_SESSION["codi"])){
  7.     header("location:index.php");
  8. }else{
  9.     $idioma = $_POST["idioma"];
  10.     echo "El idioma es   \n".$idioma;
  11.     $seccio = $_POST["seccio"];
  12.    
  13.     if ((strlen(trim($seccio)) == 0) || (!is_numeric($seccio)))
  14.         {
  15.             ?>
  16.                 <script language="JavaScript" type="text/JavaScript">
  17.                 <!--
  18.                 alert('<?php echo texte($_SESSION["idioma"],"error")?>');
  19.                 -->
  20.                 </script>
  21.             <?php
  22.         }
  23.     $opcion = $_POST["opcion"];
  24.     $introduit = false;
  25.  
  26.     $id = $_GET["id"];
  27.     echo "La id es   \n\n".$id;
  28.     $idiomes = explode(",", $_SESSION["idiomes"]);
  29.     $vecDescripcio = array();  
  30.    
  31.     for ($i = 0; $i < count($idiomes)-1; $i++){    
  32.     //  echo "el vectorDescripcio es  \n".var_dump($vecDescripcio);
  33.         $vecDescripcio[$i] = str_replace("'","`",$_POST["TNAYdescripcio".$idiomes[$i]]);   
  34.     }
  35.     //var_dump($vecDescripcio);
  36.     $foto = CleanText($_POST["foto"]);
  37.  
  38.     $link = mysql_connect($server,$dbuser,$dbpass) or die ("Impossible connectar amb el servidor");
  39.     mysql_query("SET NAMES 'utf8'");
  40.    
  41.     switch ($opcion){
  42.  
  43.         case "Alta":    //Alta.
  44.             $query = sprintf("SELECT max(ordre) as maxim FROM partseccio WHERE clau_seccio ='".$seccio."'");
  45.             $result = mysql_db_query($database,$query,$link) or die (mysql_error());
  46.             $array = mysql_fetch_array($result);
  47.            
  48.             if (mysql_num_rows($result)>0) {
  49.                 if (empty($array["maxim"])) {
  50.                     $ordremax = 1;
  51.                 }else{
  52.                     $ordremax = $array["maxim"] + 1;
  53.                 }
  54.             }else{
  55.                 $ordremax = 1;
  56.             }
  57.             $query2 = "SELECT * FROM partseccio WHERE clau_seccio ='".$seccio."'";
  58.            
  59.             for ($i = 0; $i < count($idiomes); $i++){
  60.                 $array[$idiomes[$i]."_descripcio"] = $vecDescripcio[$i];
  61.             }
  62.             $pos = 0;
  63.             if (strlen(trim($pos)) == 0) {
  64.                 $pos = "left";
  65.             }
  66.             $array["clau_seccio"] = $seccio;
  67.             $array["posicio"] = "right";
  68.             $array["posiciot"] = "top";
  69.             $array["ordre"] = $ordremax;
  70.             $array["id_partseccio"] = $id;
  71.             break;
  72.            
  73.         case "Modi":        //Modificació.
  74.             $query3 = sprintf("SELECT * FROM partseccio WHERE id_partseccio = '".$id."'");
  75.             if (mysql_num_rows($result)>0) {
  76.                 $introduit = true;
  77.                 for ($i = 0; $i < count($idiomes); $i++){
  78.                     $array[$idiomes[$i]."_descripcio"] = $vecDescripcio[$i];
  79.                 }
  80.                 $id = $array["id_partseccio"];
  81.                 if ($foto == "true") {
  82.                     $query4 = sprintf("SELECT nomfile FROM upfile WHERE taula = 'partseccio' and clau_seccio ='".$id."'");
  83.                     $result4 = mysql_db_query($database,$query4,$link) or die (mysql_error());
  84.                     $array4 = mysql_fetch_array($result4);
  85.                    
  86.                     if (mysql_num_rows($result4)>0) {
  87.                         do {
  88.                             $borrafoto = trim($array4["nomfile"]);
  89.                             $DeleteFile(Uppath&"/".borrafoto);
  90.                             $DeleteFile(Uppath&"/th_".borrafoto);
  91.                         } while ($row = mysql_fetch_array($result4));
  92.                     }else{
  93.                         mysql_close($link);
  94.                     }          
  95.                 }
  96.             }
  97.             break;
  98.            
  99.         case "Elim":        //Eliminació.
  100.             $query5 = sprintf("SELECT * FROM partseccio WHERE id_partseccio = '".$id."'");
  101.             $result5 = mysql_db_query($database,$query5,$link) or die (mysql_error());
  102.             $array5 = mysql_fetch_array($result5);
  103.             if (mysql_num_rows($result5)>0) {
  104.                 $introduit = true;
  105.                 $query6 = sprintf("SELECT nomfile FROM upfile WHERE taula = 'partseccio' and clau_seccio ='".$id."'");
  106.                 $result6 = mysql_db_query($database,$query4,$link) or die (mysql_error());
  107.                 $array6 = mysql_fetch_array($result6);
  108.                
  109.                 if (mysql_num_rows($result6)>0) {
  110.                     do {
  111.                         $borrafoto = trim($array6["nomfile"]);
  112.                         $DeleteFile(Uppath&"/".borrafile);
  113.                         $DeleteFile(Uppath&"/th_".borrafile);
  114.                     } while ($row2 = mysql_fetch_array($result6));
  115.                 }else{
  116.                     mysql_close($link);
  117.                 }
  118.             }
  119.             break;
  120.     }
  121. ?>
Notice: Undefined index: idioma in /var/www/html/workspace/gypco/root/admin/seccions/operaciones.php on line 10
El idioma es

Notice: Undefined index: id in /var/www/html/workspace/gypco/root/admin/seccions/operaciones.php on line 27
El id es

Notice: Undefined offset: 1 in /var/www/html/workspace/gypco/root/admin/seccions/operaciones.php on line 61
  #13 (permalink)  
Antiguo 13/10/2010, 10:46
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 19 años, 5 meses
Puntos: 88
Respuesta: Problema con un array

haz
Código PHP:
Ver original
  1. var_dump($_POST);
y ve si realmente tiene valores y si los hay checa que los nombres sean los correctos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #14 (permalink)  
Antiguo 13/10/2010, 10:52
 
Fecha de Ingreso: enero-2005
Mensajes: 170
Antigüedad: 19 años, 10 meses
Puntos: 0
Respuesta: Problema con un array

Efectivamente, salen todas la variables excepto idiomes y id...

Pues vaya lío, no sé porque no las coge...
  #15 (permalink)  
Antiguo 13/10/2010, 10:55
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 19 años, 5 meses
Puntos: 88
Respuesta: Problema con un array

porque no las esta pasando por el formulario, checa que en el formulario esten bien declarados esos campos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.

Etiquetas: Ninguno
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 14:06.