Will Up 0 Denunciar post Postado Fevereiro 23, 2011 Quando clico na segunda página, por exemplo, dá isso: Warning: implode() [function.implode]: Invalid arguments passed É essa linha: $links2 = implode(" | ", $links); Esté é o código da minha galeria de imagens com paginação: <? $qSettings = "select * from `settings` where `ID` = '1'"; $rSettings = mysql_query($qSettings) or die(mysql_error()); $aSettings = mysql_fetch_array($rSettings); echo "<center>"; if(!empty($_GET[start])) { $Start = $_GET[start]; } else { $Start = '0'; } $ByPage = $aSettings[Columns_per_Page] * $aSettings[Rows_per_Page]; $qnav = "select * from `images` where `Username` = '$_SESSION[username]' and `Published` = 'Yes' Order by `ImageID` DESC"; $rnav = mysql_query($qnav) or die(mysql_error()); $rows = mysql_num_rows($rnav); if($rows > $ByPage) { $NextPrev = "<br><table align=center width=50%>"; $NextPrev .= PAGINACAO . ': | '; $pages = ceil($rows/$ByPage); $pagesLimit = 5;//Limite de páginas $lowAllow = (int)($Start - ($pagesLimit / 2)); $start = ($lowAllow <= 0) ? 1 : $lowAllow; $aboveAllow = $start + $pagesLimit; $until = ($aboveAllow > $pages) ? $pages : $aboveAllow; for($i = $start; $i <= $until; $i++) { $PageStart = $ByPage*$i; $i2 = $i + 1; if($PageStart == $Start) { $links[] = "$i2\n\t "; } elseif($PageStart < $rows) { $links[] = " <a href=\"myimages.php?Start=$PageStart&ByPage=$ByPage\">$i2</a>\n\t "; } } $links2 = implode(" | ", $links); $NextPrev .= "$links2"; $NextPrev .= " | </td>"; $NextPrev .= "</table>\n"; } echo "<center>$NextPrev</center>"; $WidthHeight = explode(" x ","$aSettings[Popup_window]"); $qData = "select * from `images` where `Username` = '$_SESSION[username]' and `Published` = 'Yes' order by `ImageID` DESC limit $Start, $ByPage"; $rData = mysql_query($qData) or die(mysql_error()); $Total = mysql_num_rows($rData); if(mysql_num_rows($rData) == '0') { ?> <center style='background: #FCC; color: #A00; font-size: 1.3em; padding: 7px;'><?=AINDA_NAO_POSSUI?></center> <? } else { echo '<table border="0" cellspacing="'.$aSettings[space_between_thumbs].'" width="750"> '; $n = 1; while($aData = mysql_fetch_array($rData)) { $b = $n%$aSettings[Columns_per_Page]; if($aSettings[show_full_sized_image]==Yes) { $image = "<a href=\"#\" onclick=\"javascript:window.open('popup.php?id=$aData[image]', '_blank', 'width=$WidthHeight[0], height=$WidthHeight[1], scrollbars=yes');return false\"><img border=\"0\" src=\"images_files/redimensionar.php?arquivo=$aData[image]&largura=200&altura=200\"></a>"; } else { $image = "<a href=\"myimages.php?Cid=$_GET[Cid]&SubID=$_GET[subID]&ImageView=$aData[image]\"><img border=\"0\" src=\"images_files/redimensionar.php?arquivo=$aData[image]&largura=200&altura=200\"></a>"; } if($aSettings[Display_File_name]=="Yes") { $Title = "<br>$aData[Title]"; } if($b == 1) { echo "<tr>\n"; } /* menu de opções exibido abaixo da imagem */ echo "<td><center>$image $Title <br><a href=\"deleteimage.php?ImageID=$aData[imageID]\" onclick=\"return confirmLink(this, 'Tem certeza?')\"><img src='http://www.theimageup.com/icones/excluir.png' border='0' alt='Excluir Imagem' title='Excluir Imagem'/></a> <a target=_blank href=\"http://www.pixlr.com/editor/?image=http://www.theimageup.com/images_files/$aData[image]&loc=pt-br\"><img src='http://www.theimageup.com/icones/editar.png' border='0' alt='Editar Imagem' title='Editar Imagem'/></a></center></td>\n"; if($b == 0) { echo "</tr>\n\n"; } elseif($Total == $n) { echo "</tr>\n\n"; } $n++; } echo'</table>'; echo'</center>'; } ?> O que tem de errado, amigos? Compartilhar este post Link para o post Compartilhar em outros sites
gremio10 14 Denunciar post Postado Fevereiro 23, 2011 Ou $links2 = implode(" | ", $links); $links não é array, ou ele não possui | Compartilhar este post Link para o post Compartilhar em outros sites
Will Up 0 Denunciar post Postado Fevereiro 24, 2011 E como resolvo? Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Fevereiro 24, 2011 Verifica se $links é um array. Vê esse trecho: if($PageStart == $Start) { $links[] = "$i2\n\t "; } elseif($PageStart < $rows) { $links[] = " <a href=\"myimages.php?Start=$PageStart&ByPage=$ByPage\">$i2</a>\n\t "; } } Não há um else que serviria para "se tudo o mais falhar...". Como você não definiu $links como array antes desses condicionais: $links = array(); Após eles, no implode(), pode ser que $links não exista, para os casos de não ter caído em nenhuma condição, onde o array é criado em runtime. Tenho quase certeza que seus alertas de erro estão desabilitados ou muito baixos, caso contrário você talvez veria um erro de Undefined variable. Lembre-se, durante o desenvolvimento use sempre no topo do arquivo: ini_set( 'display_erros', TRUE ); error_reporting( E_ALL | E_STRICT ); Assim você programa certo. :thumbsup: Compartilhar este post Link para o post Compartilhar em outros sites
Will Up 0 Denunciar post Postado Fevereiro 26, 2011 Não entendi muito bem, cara. Coloquei o $links = array(); antes das condicionais e o Warning não foi exibido, mas os números da páginação também não. Ficou assim: Páginas: | | Como é a página 2 (na um fica normal) deveria exibir: Páginas: | 3 | 4 | 5 | 6 | 7 | 8 | Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Março 2, 2011 Coloca um: var_dump( $links ); Logo antes do implode()e posta o resultado. Compartilhar este post Link para o post Compartilhar em outros sites
MGC 0 Denunciar post Postado Maio 8, 2012 Boas tardes, Julgo estar no sitio certo. Possuo um codigo semelhante a este, e tentando orientar-me pelas dicas que aqui expuseram, o meu codigo deu erro. Ou seja, na versão base (sem limites de numero de paginas) os numeros anteriores que cliquei desaparecem, mas quando integro o codigo de limitação de paginas dá erro: desaparece todos, exceto a ultima pagina. O codigo: $rnav = mysql_query($qnav) or die(mysql_error()); $rows = mysql_num_rows($rnav); if($rows > $ByPage) { $ListingTable .= "<table class=\"tlistnav\" border=0 cellspacing=0 align=center width=100% >"; $ListingTable .= "<tr><td align=center><font face=verdana size=2> | "; $pages = ceil($rows/$ByPage); $pagesLimit = 5;//Limite de páginas $lowAllow = (int)($Start - ($pagesLimit / 2)); $Start = ($lowAllow <= 0) ? 1 : $lowAllow; $aboveAllow = $Start + $pagesLimit; $until = ($aboveAllow > $pages) ? $pages : $aboveAllow; for($i = $Start; $i <= $until; $i++) { $PageStart = $ByPage*$i; $i2 = $i + 1; if($PageStart == $Start) { [b]$links = array();[/b] $links[] = " <span class=CurrPageIdx>$i2</span>\n\t "; } elseif($PageStart < $rows) { $links[] = " <a class=BlackLink href=\"search.php?Start=$PageStart&c=$_GET[c]&s=$_GET[s]&search_kw=$_GET[search_kw]&CategoryID=$_GET[CategoryID]&search_district=$_GET[search_district]&search_place=$_GET[search_place]&search_city=$_GET[search_city]&PostID=$_GET[PostID]&zip=$_GET[zip]&old=$_GET[old]\">$i2</a>\n\t "; } } $links2 = implode(" | ", $links); $ListingTable .= $links2; $ListingTable .= "| </td></tr>"; $ListingTable .= "</table><br><br>\n"; } else // rows <= bypage (no navbar required) { $ListingTable .= "<br><br>\n"; } } // lrows >0 else { $ListingTable = "<br><br><center>Não existem resultados! <br><br><center>Tente noutras caracteristicas!</center>"; } } // else if($_GET[c]) Check for subcategories @ line 63 Procuro desesperadamente de ajuda, pois gostaria de resolver essa duvida. Obrigado pela atenção. Compartilhar este post Link para o post Compartilhar em outros sites
Denilson Telaroli 7 Denunciar post Postado Maio 8, 2012 cara se não entrar no for o links não vai ser definido. coloca a definição de links antes do for assim: $links = array(); for($i = $Start; $i <= $until; $i++) { ... Boas tardes, Julgo estar no sitio certo. Possuo um codigo semelhante a este, e tentando orientar-me pelas dicas que aqui expuseram, o meu codigo deu erro. Ou seja, na versão base (sem limites de numero de paginas) os numeros anteriores que cliquei desaparecem, mas quando integro o codigo de limitação de paginas dá erro: desaparece todos, exceto a ultima pagina. O codigo: $rnav = mysql_query($qnav) or die(mysql_error()); $rows = mysql_num_rows($rnav); if($rows > $ByPage) { $ListingTable .= "<table class=\"tlistnav\" border=0 cellspacing=0 align=center width=100% >"; $ListingTable .= "<tr><td align=center><font face=verdana size=2> | "; $pages = ceil($rows/$ByPage); $pagesLimit = 5;//Limite de páginas $lowAllow = (int)($Start - ($pagesLimit / 2)); $Start = ($lowAllow <= 0) ? 1 : $lowAllow; $aboveAllow = $Start + $pagesLimit; $until = ($aboveAllow > $pages) ? $pages : $aboveAllow; for($i = $Start; $i <= $until; $i++) { $PageStart = $ByPage*$i; $i2 = $i + 1; if($PageStart == $Start) { [b]$links = array();[/b] $links[] = " <span class=CurrPageIdx>$i2</span>\n\t "; } elseif($PageStart < $rows) { $links[] = " <a class=BlackLink href=\"search.php?Start=$PageStart&c=$_GET[c]&s=$_GET[s]&search_kw=$_GET[search_kw]&CategoryID=$_GET[CategoryID]&search_district=$_GET[search_district]&search_place=$_GET[search_place]&search_city=$_GET[search_city]&PostID=$_GET[PostID]&zip=$_GET[zip]&old=$_GET[old]\">$i2</a>\n\t "; } } $links2 = implode(" | ", $links); $ListingTable .= $links2; $ListingTable .= "| </td></tr>"; $ListingTable .= "</table><br><br>\n"; } else // rows <= bypage (no navbar required) { $ListingTable .= "<br><br>\n"; } } // lrows >0 else { $ListingTable = "<br><br><center>Não existem resultados! <br><br><center>Tente noutras caracteristicas!</center>"; } } // else if($_GET[c]) Check for subcategories @ line 63 Procuro desesperadamente de ajuda, pois gostaria de resolver essa duvida. Obrigado pela atenção. Compartilhar este post Link para o post Compartilhar em outros sites