所以我正在尝试全新的东西(对我来说)。我有一个PHP文件,我尝试在其中检索2个表的数据并替换匹配的值。因为我不太确定自己在做什么,所以有点卡住了:)这就是我想要的:
我的mysql数据库中有2个表。

表“广告”的列为“ logo_fid”。
表“文件”具有列“ FID”和“文件路径”。

现在,我想在“广告”表中的“ cc_logo”列的值echo
但是,在此之前,我想看看表“文件”中是否在“ fid”卷中存储了相应的值,如果是,我想回显“ filepath”的值而不是“ logo_fid”的值。
因此,基本上,我想要的是将logo_fid列的返回值(如果该值与“ fid”列中的值匹配)替换为相应的“ filepath”值。

希望我能说清楚。无论如何,我有此代码atm。希望任何人都可以帮助我解决这个问题。非常感谢!

<?php
//connection info xxxx
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
//advertisement SELECT
$sql = "SELECT logo_fid FROM advertisement ORDER BY nid ASC";
$result = $conn->query($sql);

//advertisement SELECT
$sql2 = "SELECT fid, filepath FROM files";
$result2 = $conn->query($sql2);

if ($result->num_rows > 0 && $result2->num_rows > 0) {
    // output data of each row
  while(($row = $result->fetch_assoc()) && ($row2 = $result2->fetch_assoc())){

     //So after i received all the info i'd like to check if the value of logo_fid matches with fid and if so replace the value with the value of filepath
       if ($row["logo_fid"] == $row2["fid"]) :
       echo $row2["filepath"];
       else :
       echo $row["logo_fid"];
        endif;
       echo '<br>';



    }
} else {
    echo "0 results";
}
$conn->close();
?>

最佳答案

似乎可以将它作为一个查询来完成。

SELECT A.logo_Fid, F.Fid, F.filePath, coalesce(F.FilePath, Logo_Fid) as ValueYouWant
FROM advertisement A
LEFT JOIN files F
 on A.logo_Fid = F.FID


然后,您可以在没有内联逻辑的情况下回显ValueYouWant。

该联接将Fid和logo_fid上的两个表关联起来。
如果找到匹配项,则Valueyouwant将包含f.filepath;如果未找到匹配项,则logo_fid将位于valueyouwant中。

由于这是使用LEFT联接的,因此将返回广告中的所有值,并且仅返回文件中的相关记录。

以便显示...

我没有做太多的PHP,但是作为答案的在线搜索表明这将是类似的...

 $sql="    SELECT A.logo_Fid, F.Fid, F.filePath, coalesce(F.FilePath, Logo_Fid) as ValueYouWant
    FROM advertisement A
    LEFT JOIN files F
     on A.logo_Fid = F.FID ORDER BY NID asc"

$result = mysql_query($sql);
while($row = mysql_fetch_array($result)) {
 echo $row['ValueYouWant'];
 echo '<br>';
}

关于php - 如果另一个查询(表)中存在值,是否要替换值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27693257/

10-16 16:38