Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problemas con array error illegal string offset...

Estas en el tema de Problemas con array error illegal string offset... en el foro de PHP en Foros del Web. Buenas, lo que pasa es que quiero imprimir un array que obtenido desde un script de busqueda pero cuando hago el foreach me imprime un ...
  #1 (permalink)  
Antiguo 20/11/2012, 15:19
 
Fecha de Ingreso: septiembre-2012
Ubicación: Norte de Santander
Mensajes: 127
Antigüedad: 11 años, 7 meses
Puntos: 1
Pregunta Problemas con array error illegal string offset...

Buenas, lo que pasa es que quiero imprimir un array que obtenido desde un script de busqueda pero cuando hago el foreach me imprime un error que me dice illegal string offset, en lo que me gustaria que me ayudaran es si hay otra forma de inprimir este array. Les dejo los scripts para que sea mas facil de comprender...

script prueba.php que llama a la funcion buscar
Código PHP:
Ver original
  1. <?php
  2. include("../funciones/buscar.php");
  3.     if(isset($_POST['submit'])) {
  4.     $barrio = $_POST['barrio'];
  5.     }
  6. ?>
  7. <html>
  8. <head>
  9. <title></title>
  10. </head>
  11. <body>
  12. <form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">
  13. <label>CONSULTA:<input type="text" name="barrio" value="" /><br /></label>
  14. <input type="submit" name="submit" value="Comprobar Barrio" /><br /><br />
  15. <?php
  16. $res = buscar($barrio);
  17. if($res != null){
  18. ?>
  19. <label>BARRIO:&nbsp;&nbsp;<input type="text" name="barr" value="<?php echo $res['barrio'];?>" /></label>&nbsp;&nbsp;&nbsp;
  20. <label>CIUDAD:&nbsp;&nbsp;<input type="text" name="ciudad" value="<?php echo $res['ciudad'];?>" /></label>&nbsp;&nbsp;&nbsp;
  21. <label>COMUNA:&nbsp;&nbsp;<input type="text" name="comuna" value="<?php echo $res['comuna'];?>" /></label><br />
  22. <?php
  23. }else{
  24. echo '<span style="color:red">ERROR DE CONSULTA</span>';
  25. }
  26. ?>
  27. </form>
  28. </body>
  29. </html>

script buscar.php
Código PHP:
Ver original
  1. <?php
  2. include("../conexiones/conexion.php");
  3. function buscar($dato){
  4. $barrio=$dato;
  5. $sql = mysql_query("SELECT * FROM barrios WHERE barrio LIKE '%".$barrio."%'");
  6. if(mysql_num_rows($sql)>0){
  7.         $res=mysql_fetch_assoc($sql);
  8.         return ($res);
  9.     }
  10. }
  11. ?>
  #2 (permalink)  
Antiguo 20/11/2012, 16:10
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problemas con array error illegal string offset...

¿Cual foreach?

Yo no veo ninguno.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 21/11/2012, 07:07
 
Fecha de Ingreso: septiembre-2012
Ubicación: Norte de Santander
Mensajes: 127
Antigüedad: 11 años, 7 meses
Puntos: 1
Respuesta: Problemas con array error illegal string offset...

Oops que pena habia hecho una modificacion. Ahora si aqui esta el script con el foreach...
Código PHP:
Ver original
  1. <?php
  2. include("../funciones/buscar.php");
  3.     if(isset($_POST['submit'])) {
  4.     $barrio = $_POST['barrio'];
  5.     }
  6. ?>
  7. <html>
  8. <head>
  9. <title></title>
  10. </head>
  11. <body>
  12. <form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">
  13. <label>CONSULTA:<input type="text" name="barrio" value="" /><br /></label>
  14. <input type="submit" name="submit" value="Comprobar Barrio" /><br /><br />
  15. <?php
  16. $res = buscar($barrio);
  17. if($res != null){
  18. foreach($res as $valor){
  19. ?>
  20. <label>BARRIO:&nbsp;&nbsp;<input type="text" name="barr" value="<?php echo $valor['barrio'];?>" /></label>&nbsp;&nbsp;&nbsp;
  21. <label>CIUDAD:&nbsp;&nbsp;<input type="text" name="ciudad" value="<?php echo $valor['ciudad'];?>" /></label>&nbsp;&nbsp;&nbsp;
  22. <label>COMUNA:&nbsp;&nbsp;<input type="text" name="comuna" value="<?php echo $valor['comuna'];?>" /></label><br />
  23. <?php
  24. }
  25. }else{
  26. echo '<span style="color:red">ERROR DE CONSULTA</span>';
  27. }
  28. ?>
  29. </form>
  30. </body>
  31. </html>
  #4 (permalink)  
Antiguo 21/11/2012, 09:39
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problemas con array error illegal string offset...

Tu función buscar() siempre va a devolver un array asociativo, no un array con arrays.

Es por eso que tu foreach() está fallando, no es necesario, no hace falta.

Código PHP:
$res buscar($barrio);
echo 
$res['ciudad']; 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 21/11/2012, 09:57
 
Fecha de Ingreso: septiembre-2012
Ubicación: Norte de Santander
Mensajes: 127
Antigüedad: 11 años, 7 meses
Puntos: 1
Respuesta: Problemas con array error illegal string offset...

mmm pero entonces el problema es que al realizar la busqueda de barrio no solo existe uno sino varios, por ej si es barrio LA ESPERANZA, me trae al menos 3 opciones diferentes. como podria hacer para imprimirlos?. Es que para hacer un select no puedo, incluso es lo que trato de cambiar porque son alrededor de 666 barrios y para buscar la opcion correcta se pierde tiempo.

Siendo asi me gustaria comentarte lo siguiente: Tengo un formulario encuesta en el cual existe un campo de Ubicacion con combo box, entonces al seleccionar ciudad te habilita el combo comuna y al seleccionar comuna te habilita barrio. El problema esta en que al pasar a comuna quien ingresa la informacion no sebe exactamente en que comuna se encuentra el barrio que busca. Hay alguna solucion posible para agilizar este proceso?

Te agradezco tu ayuda...
  #6 (permalink)  
Antiguo 21/11/2012, 10:04
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problemas con array error illegal string offset...

Entonces de ahí parte tu problema, tu función buscar() devuelve únicamente un resultado y no todos.

La función debería devolver un array, y cada elemento representar a una fila de resultados.

Código PHP:
function buscar($what) {
  
$out = array();

  while (
$row mysql_fetch_something()) {
    
$out []= $row;
  }

  return 
$out;

__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 21/11/2012, 10:47
 
Fecha de Ingreso: septiembre-2012
Ubicación: Norte de Santander
Mensajes: 127
Antigüedad: 11 años, 7 meses
Puntos: 1
Respuesta: Problemas con array error illegal string offset...

Post resuelto...xD

Etiquetas: html, mysql, sql
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 15:34.