Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP语法相当于SQL%_Php_Mysql_Sql - Fatal编程技术网

PHP语法相当于SQL%

PHP语法相当于SQL%,php,mysql,sql,Php,Mysql,Sql,我有一个文件夹unit\u images,里面满是带有随机名称的图像,除了它们的前缀对应于数据库表中的主键 1_4534534fw4.jpg 243534TW4T45.png 你明白我的意思了。我正在使用YoxView查看图像,并正在执行以下操作: <?php $query = "SELECT id FROM images WHERE unit = ".$_GET['id'].""; $result = mysqli_query($con, $query); echo '<div c

我有一个文件夹
unit\u images
,里面满是带有随机名称的图像,除了它们的前缀对应于数据库表中的
主键

1_4534534fw4.jpg

243534TW4T45.png

你明白我的意思了。我正在使用YoxView查看图像,并正在执行以下操作:

<?php
$query = "SELECT id FROM images WHERE unit = ".$_GET['id']."";
$result = mysqli_query($con, $query);
echo '<div class="yoxview">';
while ($row = mysqli_fetch_assoc($result))
{
    echo '<img src="unit_images/01.jpg" alt="First" title="First image" />
    <img src="unit_images/02.jpg" alt="Second" title="Second image" />'
}
echo '</div>';
?>
glob("unit_images/<YOUR_PRIMARY_KEY>_*.{png,jpg}", GLOB_BRACE);


我想列出我的文件夹
unit\u images
中的图像,该单元就是当前显示的单元。我只是不知道如何告诉PHP文件名。我想在SQL中执行类似于
1%
的操作。这有意义吗?因为我不知道文件名的其余部分是什么样子,所以我只需要告诉php这不重要

与用于文件的SQL的
%
通配符最接近的等价物是shell的
*
通配符,它在php中通过提供。您可以按如下方式迭代其结果:

foreach (glob("unit_images/1_*.jpg") as $filename) {
  echo '<img src="unit_images/' . htmlspecialchars(basename($filename)) 
     . '" />';
}
foreach(glob(“unit_images/1_*.jpg”)作为$filename){
回声';
}

我的建议是将文件的全名存储在一列中,这样您就可以直接引用它,而不必在文件系统中搜索匹配的名称

话虽如此,您可以使用PHP函数搜索文件

也许你可以这样做:

<?php
$query = "SELECT id FROM images WHERE unit = ".$_GET['id']."";
$result = mysqli_query($con, $query);
echo '<div class="yoxview">';
while ($row = mysqli_fetch_assoc($result))
{
    echo '<img src="unit_images/01.jpg" alt="First" title="First image" />
    <img src="unit_images/02.jpg" alt="Second" title="Second image" />'
}
echo '</div>';
?>
glob("unit_images/<YOUR_PRIMARY_KEY>_*.{png,jpg}", GLOB_BRACE);
glob(“单位图像/{png,jpg}”,glob\u括号);

如果我理解正确,您希望获得具有特定前缀的目录中的项目列表。 步骤1(使用
sandir()
确定目录中的项目):

步骤2(消除不需要的图像名称):


for($i=0;$iSo)我想您没有将文件字符串存储在数据库中的
id
部分之后,对吗?您的
$query
易受攻击。为了您自身的安全,您需要在激活此代码之前修复此问题。