Не отображается правильная информация PHP и Oracle запрос - PullRequest
0 голосов
/ 04 сентября 2018

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

introducir la descripción de la imagen aquí

Но в 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);

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

introducir la descripción de la imagen aquí

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

1 Ответ

0 голосов
/ 04 сентября 2018

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>";

...