bugfix> php > 投稿

MySQL Workbenchには、実行時に問題なく動作するクエリがあります。 WebサイトのPHPで実行すると、サブクエリの列が空白で表示されます。

<?php
 $sql_query = "SELECT PROJECTNOID, ProjectNumber, (SELECT StatusHold FROM 
tblProjectStatus WHERE ProjectStatus = PROJECTSTATUSID), EnteredDate FROM 
tblProjects ORDER BY PROJECTNOID";

簡単にするために、他の4つのサブクエリを削除しました。

echo $sql_query;
 $resultset = mysqli_query($conn, $sql_query) or die("database error:". 
 mysqli_error($conn));
 while($developer = mysqli_fetch_assoc($resultset)){
 ?>
 <tr id="<?php echo $developer ['PROJECTNOID']; ?>">
 <td><?php echo $developer ['PROJECTNOID']; ?></td>
 <td><?php echo $developer ['ProjectNumber']; ?></td>
 <td><?php echo $developer ['ProjectStatus']; ?></td>
 <td><?php echo $developer ['CustomerProjectLeadID']; ?></td>
 <td><?php echo $developer ['MGEProjectLeadID']; ?></td>
 <td><?php echo $developer ['ProjectStatusNumberID']; ?></td>
 <td><?php echo $developer ['ProjectTitle']; ?></td>
 <td><?php echo $developer ['SubmittedDate']; ?></td>
 <td><?php echo $developer ['StartDate']; ?></td>
 <td><?php echo $developer ['CompletionDate']; ?></td>
 <td><?php echo $developer ['Follow-Up']; ?></td>
 <td><?php echo $developer ['Comments']; ?></td>
 <td><?php echo $developer ['ProjectEnteredBy']; ?></td>
 <td><?php echo $developer ['EnteredDate']; ?></td>
 </tr>
 <?php } ?>

期待される出力:

なしサブクエリの列3、4、5、および6は、代わりに数字で表示されます。

回答 1 件
  • これはおそらく、エイリアスが欠落しているためです。次のようなものを試してください:

    SELECT PROJECTNOID, ProjectNumber, (SELECT StatusHold FROM 
    tblProjectStatus WHERE ProjectStatus = PROJECTSTATUSID) AS StatusHold, EnteredDate FROM 
    tblProjects ORDER BY PROJECTNOID
    
    

    第二に、何を達成しようとしているのかは明確ではありませんが、サブクエリよりも結合を使用する方が適切です。

あなたの答え