Не отображается правильная информация PHP и Oracle запрос

Мой вопрос касается базы данных Oracle, которую я могу подключить с помощью PHP. С тем же запросом, используя SQL Developer, я получил это:

введение в описание природы

Но в PHP:

$tsql= "select orden, fase, maquina_id, DescMaterial, dhsalida, scg_MaterialesLotes.lote, scg_MaterialesLotes.lotecli from scg_fases inner join scg_materiales on scg_fases.IdBoletin = scg_Materiales.IdBoletin inner join scg_MaterialesLotes on scg_Materiales.IdMatOf = scg_MaterialesLotes.IdMatOF";

$stmt = sqlsrv_query( $conn, $tsql);

if ( $stmt )
{
?>

while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC))
{
$orden = $row["orden"];
$fase = $row["fase"];
$puesto = $row["maquina_id"];
$art = $row["CodMaterial"];
$desc = $row["DescMaterial"];
$fecha = $row["dhsalida"];
$lote = $row["scg_MaterialesLotes.lote"];
$loteCli = $row["scg_MaterialesLotes.lotecli"];

echo "<tr>";
echo "<td align=center>" . $orden . "</td>";
echo "<td align=center>" . $fase . "</td>";
echo "<td align=center>" . $puesto . "</td>";
echo "<td align=center>" . $art . "</td>";
echo "<td align=center>" . $desc . "</td>";
echo "<td align=center>" . $fecha . "</td>";
echo "<td align=center>" . $lote . "</td>";
echo "<td align=center>" . $loteCli . "</td>";
echo "</tr>";
}

?>
</table>
</body>
</html>
<?php
}
else
{
echo "Submission unsuccessful.";
die( print_r( sqlsrv_errors(), true));
}

sqlsrv_free_stmt( $stmt);
sqlsrv_close( $conn);

Используя браузер, он показывает:

введение в описание природы

Почему я не могу показать ту же информацию? В чем проблема? Спасибо

1

Решение

1) Добавить CodMaterial поле к вашему запросу Ты не включаешь поле CodMaterial в вашем запросе, так что эта строка:

$art = $row["CodMaterial"];

Ничего не делает. Таким образом, вы можете добавить это поле в длинный список полей в вашем запросе, или просто использовать SELECT * FROM... чтобы получить каждое поле.

2) Не используйте tablename.columnname в строках результатов запроса Когда вы запрашиваете scg_MaterialesLotes.lote например, результирующий атрибут будет называться loteтак что вместо этого в вашем PHP-коде:

$lote = $row["scg_MaterialesLotes.lote"];

Использовать этот:

$lote = $row["lote"];

Сделать то же самое для scg_MaterialesLotes.lotecli

3) Эхо $fecha как строка, на данный момент это объект типа Вместо того, чтобы использовать:

echo "<td align=center>" . $fecha . "</td>";

Используйте это вместо:

echo "<td align=center>" . ($fecha ? $fecha->format("Y-m-d H:i:s") : ""). "</td>";

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]