Script cautare, paginare, htaccess - probleme

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
nutzu123
Mesaje:83

Script cautare, paginare, htaccess - probleme

Salut, am probleme la cautarea in site adica cu paginarea, pana sa adaug paginarea scriptul metgea perfect, am adaugat urmatorul cod:

Cod: Selectaţi tot

<?php
include('configurare.php');
include('functii.php');
$tag = htmlentities($_GET['cautare']);
$tag=str_replace("-"," ",$tag);
?>

<h1>Rezultatele cautarii "<?php echo $tag ?>"</h1>

<?php

	$tableName="referate";		
	$limit = 1; 
	$query = "SELECT COUNT(*) as num FROM $tableName WHERE titlu LIKE '$tag' ORDER BY data_ad DESC";
	$total_pages = mysql_fetch_array(mysql_query($query));
	$total_pages = $total_pages[num];
	$stages = 3;
	$page = mysql_escape_string($_GET['page']);
	if($page){
	$start = ($page - 1) * $limit; 
	}else{
	$start = 0;	
	}	
	$query1 = "SELECT * FROM $tableName WHERE titlu LIKE '$tag' ORDER BY data_ad DESC LIMIT $start, $limit";
	$result = mysql_query($query1);

	if ($page == 0){$page = 1;}
	$prev = $page - 1;	
	$next = $page + 1;							
	$lastpage = ceil($total_pages/$limit);		
	$LastPagem1 = $lastpage - 1;					
	$paginate = '';
	if($lastpage > 1)
	{	
	
		$paginate .= "<div class='pagination'>";

		if ($page > 1){
			$paginate.= "<a href='/cauta/$tag/$prev'>&laquo; Inapoi</a>";
		}else{
			$paginate.= "<span class='disabled'>&laquo; Inapoi</span>";	}
			
		if ($lastpage < 7 + ($stages * 2))
		{	
			for ($counter = 1; $counter <= $lastpage; $counter++)
			{
				if ($counter == $page){
					$paginate.= "<span class='current'>$counter</span>";
				}else{
					$paginate.= "<a href='/cauta/$tag/$counter'>$counter</a>";}					
			}
		}
		elseif($lastpage > 5 + ($stages * 2))
		{
			if($page < 1 + ($stages * 2))		
			{
				for ($counter = 1; $counter < 4 + ($stages * 2); $counter++)
				{
					if ($counter == $page){
						$paginate.= "<span class='current'>$counter</span>";
					}else{
						$paginate.= "<a href='/cauta/$tag/$counter'>$counter</a>";}					
				}
				$paginate.= "&nbsp;...&nbsp;";
				$paginate.= "<a href='/cauta/$tag/$LastPagem1'>$LastPagem1</a>";
				$paginate.= "<a href='/cauta/$tag/$lastpage'>$lastpage</a>";		
			}
			elseif($lastpage - ($stages * 2) > $page && $page > ($stages * 2))
			{
				$paginate.= "<a href='/cauta/$tag-1'>1</a>";
				$paginate.= "<a href='/cauta/$tag-2'>2</a>";
				$paginate.= "&nbsp;...&nbsp;";
				for ($counter = $page - $stages; $counter <= $page + $stages; $counter++)
				{
					if ($counter == $page){
						$paginate.= "<span class='current'>$counter</span>";
					}else{
						$paginate.= "<a href='/cauta/$tag/$counter'>$counter</a>";}					
				}
				$paginate.= "&nbsp;...&nbsp;";
				$paginate.= "<a href='/cauta/$tag/$LastPagem1'>$LastPagem1</a>";
				$paginate.= "<a href='/cauta/$tag/$lastpage'>$lastpage</a>";		
			}
			else
			{
				$paginate.= "<a href='/cauta/$tag/1'>1</a>";
				$paginate.= "<a href='/cauta/$tag/2'>2</a>";
				$paginate.= "&nbsp;...&nbsp;";
				for ($counter = $lastpage - (2 + ($stages * 2)); $counter <= $lastpage; $counter++)
				{
					if ($counter == $page){
						$paginate.= "<span class='current'>$counter</span>";
					}else{
						$paginate.= "<a href='/cauta/$tag/$counter'>$counter</a>";}					
				}
			}
		}

		if ($page < $counter - 1){ 
			$paginate.= "<a href='/cauta/$tag/$next'>Inainte &raquo;</a>";
		}else{
			$paginate.= "<span class='disabled'>Inainte &raquo;</span>";
			}
			
		$paginate.= "</div>";		
	
	
}
if(mysql_num_rows($result)>0)
{	
echo '<table cellspacing="0">	
<tr>
<td class="file">#</td>
<td class="titlu">Titlu referat</td>
<td class="nivel">Nivel</td>
<td class="nivel">Marime</td>
<td class="nivel">Acc.</td>
</tr>';
} else {
	echo '<table class="informatii">
<tr>
<td class="stanga"><img src="/imagini/icon_eroare.png" alt="eroare" /></td>
<td class="dreapta">Referat inexistent!</td></tr></table>';
}
$total_pages=1;
while ($row=mysql_fetch_array($result))
{
	$titluurl=str_replace(" ","-",$row['titlu']);
	$titluurl=str_replace("'","-",$titluurl);
	$titluurl=str_replace("`","-",$titluurl);
	$titluurl=str_replace("[","",$titluurl);
	$titluurl=str_replace("]","",$titluurl);
	$titluurl=str_replace("(","",$titluurl);
	$titluurl=str_replace(")","",$titluurl);
	$titluurl=str_replace(",","-",$titluurl);
	$titluurl=str_replace(".","-",$titluurl);
	$titluurl=str_replace(":","-",$titluurl);
	$titluurl=str_replace(";","-",$titluurl);
	$titluurl=str_replace("?","",$titluurl);
	$titluurl=str_replace("!","-",$titluurl);
	$titluurl=str_replace("&","",$titluurl);
	$titluurl=str_replace("@","",$titluurl);
	$titluurl=str_replace("*","",$titluurl);
	$titluurl=str_replace("^","",$titluurl);
	$titluurl=str_replace("%","",$titluurl);
	$titluurl=str_replace("#","",$titluurl);
	$titluurl=str_replace("=","",$titluurl);
	$titluurl=str_replace("+","-",$titluurl);
	$titluurl=str_replace("<","",$titluurl);
	$titluurl=str_replace(">","",$titluurl);
	$titluurl=str_replace("|","",$titluurl);
	$titluurl=str_replace("{","",$titluurl);
	$titluurl=str_replace("}","",$titluurl);
	$titluurl=str_replace("\"","",$titluurl);
	$titluurl=str_replace("/","",$titluurl);
	$titluurl=str_replace("~","-",$titluurl);
	$titlu=$row['titlu'];
    $marime=$row['marime'];
	if($color==1){
		echo "<tr>
<td class='file1'><img src='/imagini/file.png' alt='file' /></td>
<td class='titlu1'><a href='/" . $row['id'] . "/referat-" . $titluurl=strtolower($titluurl) . "' title='Referat " . $row['titlu'] . "'>".nume($titlu)."</a></td>
<td class='nivel1'>" . $row['nivel'] . "</td>
<td class='nivel1'>".size($marime)."</td>
<td class='nivel1'>" . $row['hits'] . "</td>
</tr>";
$color="2";
} else {
echo "<tr>
<td class='file2'><img src='/imagini/file.png' alt='file' /></td>
<td class='titlu2'><a href='/" . $row['id'] . "/referat-" . $titluurl=strtolower($titluurl) . "' title='Referat " . $row['titlu'] . "'>".nume($titlu)."</a></td>
<td class='nivel2'>" . $row['nivel'] . "</td>
<td class='nivel2'>".size($marime)."</td>
<td class='nivel2'>" . $row['hits'] . "</td>
</tr>";
$color="1";}}?>
</table>

<?php echo $paginate; ?>
si in htaccess am adaugat urmatorul cod:

Cod: Selectaţi tot

RewriteRule ^cauta/(.*)/(.*)$ cauta.php?cautare=$1&page=$1 [L]
Imi da urmatoare eroare:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/kkbe/public_html/referate/cauta.php

Scriptul de paginare merge bine e testat dar numai in categoria cauta.php adica la cautari pe site
Cred ca e ceva gresit la $_GET sau in htaccess, va rog sa-mi ziceti pe unde e greseala, sunt incepator ! :?

MarPlo Mesaje:4343
Salut
Daca scriptul de painare e bun, dupa cum spui (nu am stat sa ma uit pe el, prea mult cod), poate problema e la .htaccess.
Incearca regula de rewrite asa:

Cod: Selectaţi tot

RewriteRule ^cauta/([A-Za-z0-9_-])/([A-Za-z0-9_-])$ cauta.php?cautare=$1&page=$2 [L]

nutzu123 Mesaje:83
Din htaccess era cauza

Cod: Selectaţi tot

cauta.php?cautare=$1&page=$2 [L]
eu in loc sa pun $2 am pus tot $1 :lol: merge acum, ms mult !