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
1 Asked on November 15, 2021 by richard-vquez-prez
1 Asked on November 15, 2021 by dannogger
1 Asked on November 15, 2021 by el_enzo
1 Asked on November 15, 2021 by minihack
0 Asked on November 15, 2021 by andeman-cervantes
0 Asked on November 15, 2021 by shredder
1 Asked on November 13, 2021 by carlos-cuellar
2 Asked on November 13, 2021 by user180162
1 Asked on November 13, 2021 by terspoes-meruts
1 Asked on November 13, 2021 by lamsarmiento
funcion personalizada funciones function javascript programacion funcional
1 Asked on November 13, 2021 by fragmentado
array bidimensional c estructuras de datos lenguaje compilado matriz
2 Asked on November 13, 2021 by raul-escalona
1 Asked on November 13, 2021
0 Asked on November 13, 2021
1 Asked on November 13, 2021
Get help from others!
Recent Answers
Recent Questions
© 2023 AnswerBun.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP