簡體   English   中英

如何在PHP中獲取並回顯JOIN的結果

[英]How to fetch and echo the results of a JOIN in PHP

幾周前在這里發布了一個問題,但仍在努力中。

因此,我要做的就是顯示創建任務的用戶名,該用戶名將顯示在以下頁面上: https : //vloggi.com/commission/21

目前,在控制器頁面中,我有以下查詢:

$sql = "SELECT * FROM users_gor WHERE usrg_usr_id = ".$db->quote($user_info['usr_id'])." LIMIT 1";
$rows = $db->select($sql);
$users_gor = $rows[0];

$sql = "SELECT * FROM users_vgr WHERE usrv_usr_id = ".$db->quote($user_info['usr_id'])." LIMIT 1";
$rows = $db->select($sql);
$users_vgr = $rows[0];

$sql = "SELECT * FROM users WHERE usr_id = ".$db->quote($user_info['usr_id'])." LIMIT 1";
$rows = $db->select($sql);
$users = $rows[0];

$sql = "SELECT * FROM vlog-ops WHERE vlop_usr_id ".$db->quote($user_info['usr_id'])." LIMIT 1";
$rows = $db->select($sql);
$users = $rows[0];

$sql = "SELECT usr_name AS vlop_usr_name FROM users WHERE usr_id = ".$db->quote($user_info['usr_id'])." LIMIT 1";
$result = mysql_query($sql);        
$row = mysql_fetch_array($result);


$sql = "SELECT usr_name  FROM users WHERE usr_id='".$db->quote($user_info['usr_id'])." LIMIT 1";
$creator = $db->select1($sql);
$users = $rows[0];

$query = "SELECT u.usr_name, g.usrg_orgname, v.vlop_usr_id  FROM users u 
JOIN vlog-ops v on u.usr_id = v.vlop_usr_id 
JOIN users_gor g on u.usr_id = g.usrg_usr_id";

然后在模板頁面中,進行以下提取和回顯。

             <?php
             $result = mysqli_query($connection, $query);
             while($row = mysqli_fetch_assoc($result)) {
                 echo 'User name = ' . $row['u.usr_name'];
                 echo 'Org name = ' . $row['g.usrg_orgname'];
                 echo 'Job posting user id = ' . $row['v.vlop_usr_id'];
             }
             ?>   

但這是行不通的。 我嘗試了Paulo Hgo的代碼,但也不起作用。

因此,我了解了JOIN的基本概念,但實際上需要一些幫助來回顯或打印變量。

很抱歉重新發布。

首先,您錯誤地檢索了該列,結果關聯數組不包含u.usr_name或u.anyfields之類的任何點(。),它將返回實際的表字段。 要檢查關聯數組中的行,可以按如下所示進行打印(只是為了查看生成的結構或數組鍵)

<?php
    $result = mysqli_query($connection, $query);
    while($row = mysqli_fetch_assoc($result)) {
      echo '<pre>';
      print_r($row);
      echo '</pre>';
      die(); //just return 1 iteration.
    }
 ?>  

輸出如下:

Array
(
    [usr_name] => john
    [usrg_orgname] => doe
    ...
)

然后,您可以直接參考其字段/鍵。 如果每個表中都有相同名稱的字段,請使用字段別名。

使用實際的字段名稱來修復上述代碼,請參見以下內容:

<?php
$result = mysqli_query($connection, $query);
if($result) {
   while($row = mysqli_fetch_assoc($result)) {
     echo 'User name = ' . $row['usr_name'];
     echo 'Org name = ' . $row['usrg_orgname'];
     echo 'Job posting user id = ' . $row['vlop_usr_id'];
   }
} else {
   echo 'Something went wrong.'; 
}
?>  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM