gpt4 book ai didi

php - 如何使用 php/mysql 从对象/数组中获取正确的信息?

转载 作者:行者123 更新时间:2023-11-29 23:10:08 25 4
gpt4 key购买 nike

我不是编程专家,但我想将我的旧网站设置为新设计,因此我想重新使用我的旧代码(稍作调整)。

通过以下函数,我可以获得所有艺术家信息和编写的吉他歌曲。以表格形式显示。

但是艺术家信息(aArtist)没有问题,但是歌曲信息无法正常工作。我想我并不遥远,但我应该/可以尝试什么让它发挥作用。

当打印(var_dump)$aArtist时,我确实得到了所有信息,现在很需要管理它。

感谢所有建议。一月

    function getArtistBySeoName($sSeoName,$sSortColumn,$sSortDirection,$sWhere)
{
$sWhereAdditions = "";

if($sWhereAdditions == "" && $sWhere != "")
{
$sWhereAdditions = " WHERE ".$sWhere;
}
$sSeoName = str_replace("'", "", $sSeoName);
$sQuery = "SELECT * FROM artist a
LEFT JOIN artist_info ai ON a.artist_id = ai.artist_info_artist_id
WHERE artist_seoname = '".$sSeoName."'
".$sWhereAdditions." ";

$oQueryResult = query($sQuery);

$oArtist = $oQueryResult->fetch_assoc();

$aSongs = array();
$sQuery2 = "SELECT s.song_id,s.song_name,a.*,aa.*,st.*,ss.*,d.* FROM song s
LEFT JOIN song_type st ON s.song_song_type_id = st.song_type_id
LEFT JOIN song_style ss ON s.song_style_id = ss.song_style_id
LEFT JOIN song_status sst ON sst.song_id = s.song_id
LEFT JOIN artist_album aa ON s.song_album_id = aa.artist_album_id
LEFT JOIN download d ON s.song_id = d.download_song_id inner join artist a on a.artist_id=s.song_artist_id
WHERE s.song_artist_id = ".$oArtist[artist_id]." and (sst.status=1 or sst.status=2 or sst.status=3) ORDER BY ".$sSortColumn." ".$sSortDirection;
$oQueryResult2 = query($sQuery2);
$i=0;

while($oSong = $oQueryResult2->fetch_assoc())
{
$i++;
$aSongs[]=$oSong;
}

$oArtist[songs] = $aSongs;

$aAlbums = array();
$sQuery3 = "SELECT * FROM artist_album aa
INNER JOIN song s ON s.song_album_id = aa.artist_album_id
WHERE s.song_artist_id = ".$oArtist[artist_id]." GROUP BY aa.artist_album_id";
$oQueryResult3 = query($sQuery3);
while($oAlbum = $oQueryResult3->fetch_assoc())
{
$aAlbums[]=$oAlbum;
}
$oArtist[albums] = $aAlbums;

$aImages = array();
$sQuery3 = "SELECT * FROM artist_images ai
WHERE ai.artist_image_artist_id = ".$oArtist[artist_id]." ";
$oQueryResult3 = query($sQuery3);
while($oImage = $oQueryResult3->fetch_assoc())
{
$aImages[]=$oImage;
}
$oArtist[images] = $aImages;

$oArtist[songscount] = $i;

return $oArtist;
}
?>


<?
$sSeoName = $route[2];
$sSortColumn ="song_name";
$sSortDirection="ASC";
$sWhere = "";

$aArtist = getArtistBySeoName($sSeoName,$sSortColumn,$sSortDirection,$sWhere);

var_dump($aArtist);

下面是我尝试打印值的代码。这可能就是出错的地方。

                <?

foreach($aArtist as $oSong)
{

//print $aArtist[song_name];

switch($oSong[song_type_name])
{
case "CRD":
$sPagename = CHORDSPAGE;
break;
case "TAB":
$sPagename = TABPAGE;
break;
case "BTAB":
$sPagename = BTABPAGE;
break;
case "LYRIC":
$sPagename = LYRICSPAGE;
break;
case "PTB":
$sPagename = PTBPAGE;
break;
case "GPR":
$sPagename = GPRPAGE;
break;
}

?>

            <tr>
<td><span itemprop="name"><a href="/<?=$sPagename?>/<?=$oSong[artist_seoname]?>/<?=$oSong[song_seoname]?>"><? echo ucwords($oSong->song_name);?></a><span><meta itemprop="url" content ="http://www.gitaartabs.nl/<?=$sPagename?>/<?=$oSong[artist_seoname]?>/<?=$oSong[song_seoname]?>"><meta itemprop="duration" content="PT2M30S"></td>
<td class=""><?=ucfirst($oSong[song_type_name])?></td>
<td class="hidden-sm"><?=ucfirst($oSong[artist_album_name])?></td>
<td class="hidden-sm"><?=ucfirst($oSong[artist_album_year])?></td>
<td class="hidden-sm"><?=ucfirst($oSong[song_style_name])?></td>
<td><em><?=ucfirst($oSong[download_amount])?></em></td>
<td><i class="fa fa-star"></i><i class="fa fa-star"></i><i class="fa fa-star"></i><i class="fa fa-star"></i><i class="fa fa-star-half-o"></i></td>
</tr>
            </tbody>
</table>
<!--End Basic Table-->

最佳答案

我通过使用 foreach(song as Songval) { } 代码解决了这个问题

感谢大家的帮助

关于php - 如何使用 php/mysql 从对象/数组中获取正确的信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28119663/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com