Php 集合变量上的未定义变量错误
我是PHP的新手。这是画廊代码。虽然我让gallery正常工作,但有一个错误显示为Php 集合变量上的未定义变量错误,php,Php,我是PHP的新手。这是画廊代码。虽然我让gallery正常工作,但有一个错误显示为“PHP注意:未定义变量:caption\u数组位于/home/th/public\u html/gallery.PHP的第13行”。我检查并看到caption\u array已设置,但无法找出此错误持续出现的原因。下面的代码是使用caption\u数组的地方。。。任何帮助或指导都将不胜感激 // display previous and next links if more than one photo els
“PHP注意:未定义变量:caption\u数组位于/home/th/public\u html/gallery.PHP的第13行”
。我检查并看到caption\u array
已设置,但无法找出此错误持续出现的原因。下面的代码是使用caption\u数组
的地方。。。任何帮助或指导都将不胜感激
// display previous and next links if more than one photo
else if( $pcaption )
{
mysql_query("UPDATE gallery_photos SET photo_caption =
REPLACE(photo_caption,'\\\','') ");
$pcaption = str_replace("-", " ",$pcaption);
$pcaption = str_replace("%27", "'",$pcaption);
$pcaption = str_replace("\\", "",$pcaption);
$result = mysql_query( "SELECT photo_caption, photo_description, photo_filename,photo_keywords FROM gallery_photos WHERE photo_caption='".addslashes($pcaption)."'" );
list($photo_caption, $photo_description, $photo_filename, $photo_keywords) = mysql_fetch_array( $result );
$nr = mysql_num_rows( $result );
mysql_free_result( $result );
$p_caption = $photo_caption;
$p_description = $photo_description;
$p_keywords = $photo_keywords;
//fill caption_array with sorted pids in current category
$result = mysql_query( "SELECT photo_caption FROM gallery_photos WHERE category_name='".addslashes($cname)."' " );
$ct = mysql_num_rows( $result );
while ($row = mysql_fetch_array($result)) {
$row[0]= trim($row[0]);
$row[0] = str_replace(" ","-",$row[0]);
$row[0] = str_replace("'","%27",$row[0]);
$caption_array[] = trim($row[0]);
}
mysql_free_result( $result );
if( empty($nr ) )
{
$result_final = "\t<tr><td>***No Photo found*******</td></tr>\n";
}
else
{
$category_name = $cname;
$cname = str_replace(" ", "-", $cname);
$result_final = "
<div class=limagePage>
<div class=llink>
<a href=/gallery.php>ALBUMS</a>
<span class=arrow>>></span>
<a href=/gallery.php?cname=$cname>$category_name</a>
</div>
";
// display previous and next links if more than one photo
if ($ct > 1)
{
$pcaption = trim($pcaption);
$pcaption = str_replace(" ","-",$pcaption);
$pcaption = str_replace("'","%27",$pcaption);
$key = array_search($pcaption , $caption_array);
$prev = $key - 1;
if ($prev < 0) $prev = $ct - 1;
$next = $key + 1;
if ($next == $ct) $next = 0;
$total_count= count($caption_array);
$result_final .= "<div class='prevnext'>";
$result_final .= "<span class='prev'><a href=/gallery.php?cname=$cname&pcaption=".$caption_array[$next]."><img src=/photos/assets/left.png border=0 ></a></span>";
$result_final .= "<span class='next'><a href=/gallery.php?cname=$cname&pcaption=".$caption_array[$prev]."><img src=/photos/assets/right.png border=0 ></a></span>";
$result_final .= "</div>";
}
}
$cname = str_replace(" ", "-", $cname);
$images_dir =str_replace(".","",$images_dir);
$result_final .= "<div class=limage><table><tr><td><table class=image><tr>\n\t<td><a href=/gallery.php?cname=$cname&pcaption=".$caption_array[$next]."><img src='".$images_dir."/".$photo_filename."' border='0' alt='".$photo_keywords."' /></a>
<div class=caption>".$photo_caption."</div>
<div class='excerpt'>".$photo_description."</div>
</td>
</tr></table></td></tr></table><div class=underline></div></div>
<!-- .limagePage --></div> ";
}
//如果有多张照片,则显示上一个和下一个链接
否则如果($pcaption)
{
mysql\u查询(“更新图库\u照片集照片\u标题=
替换(照片标题“\\\”、“”);
$pcaption=str_replace(“-”,“,$pcaption”);
$pcaption=str_replace(“%27”、“'”、$pcaption);
$pcaption=str\u替换(“\\”、“”、$pcaption);
$result=mysql\u query(“从图片库中选择图片标题、图片描述、图片文件名、图片关键字,其中图片标题=”)。addslashes($pcaption)。”;
列表($photo_caption、$photo_description、$photo_filename、$photo_keywords)=mysql_fetch_数组($result);
$nr=mysql\u num\u行($result);
mysql_free_result($result);
$p_caption=$photo_caption;
$p_description=$photo_description;
$p_关键字=$photo_关键字;
//用当前类别中已排序的PID填充标题_数组
$result=mysql\u query(“从类别为“”的图库照片中选择照片标题”。.addslashes($cname)。”);
$ct=mysql\u num\u行($result);
while($row=mysql\u fetch\u数组($result)){
$row[0]=修剪($row[0]);
$row[0]=str_replace(“,”-“,$row[0]);
$row[0]=str_replace(“'”、“%27”、$row[0]);
$caption_array[]=trim($row[0]);
}
mysql_free_result($result);
如果(空($nr))
{
$result_final=“\t***未找到照片*********\n”;
}
其他的
{
$category_name=$cname;
$cname=str_替换(“,”-“,$cname);
$result_final=”
&燃气轮机
";
//如果有多张照片,则显示上一个和下一个链接
如果($ct>1)
{
$pcaption=修剪($pcaption);
$pcaption=str_replace(“,”-“,$pcaption);
$pcaption=str_replace(“'”、“%27”、$pcaption);
$key=array\u search($pcaption,$caption\u array);
$prev=$key-1;
如果($prev<0)$prev=$ct-1;
$next=$key+1;
如果($next==$ct)$next=0;
$total_count=count($caption_数组);
$result_final.=“”;
$result_final.=“”;
$result_final.=“”;
$result_final.=“”;
}
}
$cname=str_替换(“,”-“,$cname);
$images\u dir=str\u replace(“.”,“”,$images\u dir);
$result\u final.=“\n\t
“$photo_说明。”
“$photo_说明。”
";
}
使用前定义它以避免此警告
$caption_array = array();
在上面定义($row=mysql\u fetch\u array($result)){…使用前定义它以避免此警告
$caption_array = array();
在($row=mysql\u fetch\u array($result)){…添加时定义上述内容
$caption_array = array();
前while循环
while ($row = mysql_fetch_array($result)) {
加
前while循环
while ($row = mysql_fetch_array($result)) {
你的错误可能有几个原因。让我来告诉你
include
,您可能会错过定义该变量的部分global
关键字。请参阅下面的代码这是双向的
function func() {
global $var; // The magic trick
$var = 'test'; // Set variable
}
var_dump($var); // NULL, perhaps errors may occur
func();
var_dump($var); // "test";
你的错误可能有几个原因。让我来告诉你
include
,您可能会错过定义该变量的部分global
关键字。请参阅下面的代码这是双向的
function func() {
global $var; // The magic trick
$var = 'test'; // Set variable
}
var_dump($var); // NULL, perhaps errors may occur
func();
var_dump($var); // "test";
这是一个警告,不是一个错误声明$caption_数组,而在使用$caption_数组=array()之前循环定义它;这是一个警告,不是一个错误声明$caption_数组,而在使用$caption_数组=array()之前循环定义它;谢谢Farid…你的建议似乎减少了错误。我认为真正的原因是其他原因。因为错误有时会出现…谢谢Farid…你的建议似乎减少了错误。我认为真正的原因是其他原因。因为错误有时会出现。。。