OK Я знаю, что в стеке есть вопросы, которые задают/отвечают здесь, но я попробовал все, что было предложено в этих потоках, безрезультатно. Как видно из заголовка, я получаю уведомление неопределенного индекса при попытке просмотреть xml, написанный скриптом PHP ниже, а именно «track_number» и «track_title». Я знаю, что эти столбцы существуют в моей базе данных. Я подозреваю, что что-то не так, когда я запрашиваю таблицу треклистов, но не могу понять, что именно. Любые идеи были бы хорошы!Неопределенный индекс PHP/mySQL
PHP
<?php
ini_set('display_errors',1);
define("HOST",'54.152.129.000');
$db=mysqli_connect(HOST,'wp_user','password','*******');
$query="select * from albums";
$result=mysqli_query($db,$query);
$fp=fopen('music_inventory.xml','w');
$header="<?xml version=\"1.0\"?>\n<!DOCTYPE album SYSTEM \"music_inventory.dtd\">\n";
$header.="<?xml-stylesheet type=\"text/css\" href=\"music_inventory.css\"?>\n";
$written=fwrite($fp,$header);
$xml_data="<music_inventory>";
while($row=mysqli_fetch_array($result))
{
$xml_data .= "<album id=\"".$row['id']."\" type=\"".$type."\" albumart=\"".$row['albumart']."\">";
$xml_data .= "<artist>".htmlentities($row['artist'])."</artist>";
$xml_data .= "<name>".$row['name']."</name>";
$xml_data .= "<year>".$row['year']."</year>";
$xml_data .= "<label>".$row['label']."</label>";
$xml_data .= "<disc>".$row['disc']."</disc>";
$xml_data .= "<totaldiscs>".$row['totaldiscs']."</totaldiscs>";
switch($row["type"])
{
case 'E':
$type='EP';
break;
case 'F':
$type='full_length';
break;
case 'S':
$type='soundtrack';
break;
case 'C':
$type='compilation';
break;
case 'M':
$type='multi_disc';
break;
default:
$type='unknown';
break;
}
$xml_data .= "<tracklist>";
//problem somewhere in here?
$track_query="select track_number,track_title,track_artist from tracklist where id='" . $row['id'] . "' order by track_number";
$track_result=mysqli_query($db,$track_query);
while($track_row=mysqli_fetch_array($track_result))
{
$xml_data .= "<track id=".$row['track_number'].">".htmlentities($row['track_title'])."</track>";
}
$xml_data .= "</tracklist>";
$xml_data .= "</album>";
}
$xml_data .= "</music_inventory>";
$written=fwrite($fp,$xml_data);
fclose($fp);
readfile('music_inventory.xml');
?>
Пожалуйста, добавьте структуру из альбомов и треклистов, чтобы убедиться, что вы не заметили очевидного (ситуация, когда вы долго смотрели на экран). –