Foros del Web » Programando para Internet » PHP »

Error en ciclo foreach php postgresql

Estas en el tema de Error en ciclo foreach php postgresql en el foro de PHP en Foros del Web. Hola, tengo una peticion ajax en la que estoy tratando de hacer un ciclo foreach porque asi lo necesito, sin embargo al ejecutar la peticion ...
  #1 (permalink)  
Antiguo 21/01/2020, 12:43
 
Fecha de Ingreso: noviembre-2015
Mensajes: 72
Antigüedad: 4 años, 3 meses
Puntos: 2
Error en ciclo foreach php postgresql

Hola, tengo una peticion ajax en la que estoy tratando de hacer un ciclo foreach porque asi lo necesito, sin embargo al ejecutar la peticion me devuelve el siguiente error:
Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\CustomerInsightSystem\php\procesar .php on line 13

mi codigo es el siguiente:
Código PHP:
<?php
include('conexion.php');

$dato $_POST['dato'];

//EJECUTAMOS LA CONSULTA DE BUSQUEDA
if ($dato != '') {
$registro pg_query($con"SELECT cm.companyName as companyname, ca.address as address, ca.website as website, ca.segmentID as segmentID, sc.segmentName as segment FROM company_main cm, company_attributes ca, segment_catalog sc WHERE ca.localName = cm.companyName and ca.segmentID = sc.segmentID and cm.companyName LIKE '%$dato%' OR ca.website LIKE '%$dato%'");

//CREAMOS NUESTRA VISTA Y LA DEVOLVEMOS AL AJAX

echo '<table class="table table-stripped table-responsive table-hover table-condesed" style="color: #FFF;">
            <tr style="background-color: #000;">
                <th>Company</th>
                <th>Address</th>
                <th>Web page</th>
                <th>Segment</th>
            </tr>'
;
$i 1;
foreach (
$registro as $registro2) {
  

        echo 
'<form action="" method="post">
        <tr>
                <td><a href="recordsMaster.php?details=companyname" id="companyname" name="companyname$i">'
.$registro2['companyname'].'</a></td>
                <td id="address$i" name="address">'
.$registro2['address'].'</td>
                <td id="website$i" name="website">'
.$registro2['website'].'</td>
                <td id="segment$i" name="segment">'
.$registro2['segment'].'</td>
               
           
                </tr></form>'
;
                
$i++;
    }
}else{
    echo 
'<tr>
                <td colspan="6">No records found</td>
            </tr>'
;
}

echo 
'</table>';
?>
en el id estoy haciendo un aumento con la variable $i, pero tenga el aumento o no lo tenga, el resultado es el mismo, sigue enviando el mismo error.

Alguien me puede ayudar a identificar el error por favor?
Agradezco su apoyo
__________________
paco alonso
  #2 (permalink)  
Antiguo 21/01/2020, 13:44
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.621
Antigüedad: 12 años
Puntos: 1104
Respuesta: Error en ciclo foreach php postgresql

la funcion foreach espera un Array el cual poder recorrer, el error es bastante claro y no necesita mas explicacion.

El valor que le estas enviando no es un Array

Usa un var_dump para que veas que contiene esa variable, tambien recuerda que pg_query puede arrojar false en caso de algún error, por lo que tendrías que validar que no tengas un error.

prueba colocar un if(!$valor) { die('hay un error en la consulta'); }
  #3 (permalink)  
Antiguo 22/01/2020, 08:47
Avatar de Panino5001
Moderatroll
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.103
Antigüedad: 15 años, 9 meses
Puntos: 791
Respuesta: Error en ciclo foreach php postgresql

En PostrgreSQL segmentos que combinan mayúsculas y minúsculas, como ca.segmentID suelen provocar fallos si no los entrecomillas: ca.\"segmentID\" (tienes otros en el query en la misma situación).



La zona horaria es GMT -6. Ahora son las 06:34.