我是PHP的新手,我正在尝试打印出5个图片,参考文件存储在一个字符串中,用新行分隔。
这是我到目前为止所拥有的:
function displayTeam($heroes){
$herolist = array();
$conn = odbc_connect('Dotalyzer', '', '');
if (!$conn) {
exit("Connection Failed: " . $conn);
}
$sql = "SELECT * FROM HeroStats ORDER BY Heroname";
$rs = odbc_exec($conn, $sql);
if (!$rs) {
exit("Error in SQL");
}
foreach(preg_split("/((\r?\n)|(\r\n?))/", $heroes) as $line){
while (odbc_fetch_row($rs)) {
$heroname = odbc_result($rs, "HeroName");
if ($line == $heroname) {
$heroimage = odbc_result($rs, "Portrait");
$herolist[] = $heroimage . ".png";
}
}
}
odbc_close($conn);
echo " <div class='heroimage_wrapper'>";
for ($i = 0; $i < 5; $i++) {
echo " <img src='Hero icons/$herolist[$i]' class='heroimage'>";
}
echo " </div>";
}
我想从数组中打印每张图片,引用存储在Access数据库中。
我正在调用使用以下函数生成$heroes
字符串的函数:
$(document).ready(function(){
$('.button').click(function(){
var clickBtnValue = $(this).val();
var id = $(this).attr('data-unique-id');
var ajaxurl = 'ajax/ajax',
data = {
'action': clickBtnValue,
'id': id
};
console.log(clickBtnValue);
$.post(ajaxurl, data, function (response) {
// Response div goes here.
alert(response.replace('\\n', '\n'));
});
});
});
答案 0 :(得分:1)
您可以获得5个具有LIMIT
操作的数据库实体。如
$query = 'SELECT * FROM HeroStats ORDER BY Heroname LIMIT 5'
您可以使用mysqli
连接数据库
$db_connection = new mysqli([HOST], [USERNAME], [PASSWORD], [DATABASE_NAME]);
使用mysqli::fetch_array
将图像提取到阵列。这个功能可以帮到你
function fetch($query)
{
$res = $db_connection->query($query);
$array = [];
while( $r = $res->fetch_array(MYSQLI_ASSOC) )
{
array_push($array, $r);
}
return $array;
}
要将数组传递给Javascript,请将数组编码为JSON或xml
$array = fetch($query);
$json = json_encode($array);
因此,您可以在Javascript中收到此响应,只需将JSON转换为数组
即可var images = JSON.parse(response);
答案 1 :(得分:0)
我可以在你的代码中看到两个错误。
<强>首先强>
更改此
$herolist[] .= $heroimage . ".png";
到
$herolist[] = $heroimage . ".png";
<强>第二强>
从img src属性中删除.png并更新for循环以使用数组长度
for ($i = 0; $i < 5; $i++) {
echo " <img src='Hero icons/$herolist[$i].png' class='heroimage'>";
}
到
for ($i = 0; $i < count($herolist); $i++) {
echo " <img src='Hero icons/$herolist[$i]' class='heroimage'>";
}
此外,您不应该使用空格作为文件夹名称。将文件夹名称从Hero图标更改为Hero_icons并更新img标记。