Stack Overflow en español Asked by David Alvarado on January 1, 2022
Estoy realizando una consulta enviando datos concatenados pero solo me consulta el primero, seguí la documentación de php, pero me genera error Warning: Invalid argument supplied for foreach() in C:xampphtdocsetbmodelconsulta_fibra.php on line 821
if (isset($_POST[‘con_estmas’]) ) {
$con_estmas=$_POST['con_estmas'];
$stid = oci_parse($conex, "select status_cd estado,ROW_ID pedido
from SIEBEL.S_ORDER@dblk_fo
where ROW_ID in (:con_estmas
) AND STATUS_CD='Completada'");
$ba = array(':con_estmas' => 1700);
foreach ($ba as $clave => $valor) {
oci_bind_by_name($stid, $clave, $ba[$clave]);
}
oci_execute($stid);
print '<table class="table table-bordered">';
print '<thead>';
print '<tr>';
print '<th>ROW ID</th>';
print '<th>Name</th>';
print '</tr>';
print '</thead>';
$filas = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS);
foreach ($filas as $items) {
print $items."<br>n";
}
}
Esto parece una confusión heredada del ejemplo del Manual de PHP:
$ba = array(':con_estmas' => 1700);
foreach ($ba as $clave => $valor) {
oci_bind_by_name($stid, $clave, $ba[$clave]);
}
Supongo que el parámetro real es $con_estmas
. No tiene sentido hacer el bind
dentro de un for
cuando es un solo parámetro, lo puedes hacer directamente (ver Ejemplo 4 del Manual).
Intenta este código, con un control total de todos los posibles errores.
if (isset($_POST['con_estmas']) ) {
if ($conex) {
$con_estmas=$_POST['con_estmas'];
if ($stid = oci_parse($conex, "select status_cd estado,ROW_ID pedido
from SIEBEL.S_ORDER@dblk_fo
where ROW_ID in (:con_estmas
) AND STATUS_CD='Completada'"))
{
oci_bind_by_name($stid, ':con_estmas', $con_estmas);
if (oci_execute($stid) && $filas = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
$outPut="<table class="table table-bordered">
<thead>
<tr>
<th>ROW ID</th>
<th>Name</th>
</tr>
</thead>";
foreach ($filas as $items) {
$outPut.="<tr><td>$items[estado]</td><td>$items[pedido]</td></tr>";
}
$outPut.="</table>";
} else {
#Sólo para depurar, conviene luego cambiar los mensajes de $e por mensajes personalizados
$e = oci_error($conex);
$outPut="Error ejecutando la consulta: ".htmlentities($e['message']);
}
} else {
#Sólo para depurar, conviene luego cambiar los mensajes de $e por mensajes personalizados
$e = oci_error($conex);
$outPut="Error preparando la consulta: ".htmlentities($e['message']);
}
}else{
$outPut="No hay conexión";
}
} else {
$outPut="No hay datos en el POST";
}
echo $outPut;
Answered by A. Cedano on January 1, 2022
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP