sto cercando di fare un motore di ricerca che dia i risultati due a due seguendo i tutorial di freephp.
allora... sono riuscito a fare in modo che mi presenti i risultati 2 per volta, xò dopo aver presentato i primi risultati, mi fa federe tutto quello che c'è nella tabella, sempre due alla volta. il problema è che ho fatto una query che dovrebbe contare i record. come faccio a fargli contare i risultati totali della query (contenenti i parametri immessi, ossia $parola)? posso fare una query che seleziona e conta?
questo è il codice
--------
<html>
<head>
<title>Risultati</title>
</head>
<body> <font face='verdana'>
<?
//connessione al database
include("config.inc.php");
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file config.php");
mysql_select_db($db_name, $db)
or die ("Errore nella selezione del database. Verificare i parametri nel file config.php");
//genera limiti per ordine decrescente
$start= $_GET[start];
if (!isset($start) OR $start<0) {
$start=0;
}
$step = 2;
//toglie spazi gestisce parole inserite
$keys = explode (",",$_GET[chiave]);
$query = "";
reset ($keys);
while (list(,$parola) = each ($keys))
{ $parola = trim($parola);
if (isset($parola))
$query .= "descrizione LIKE '%$parola%' OR nome LIKE '%$parola%'";
}
//determina l'ordine crescente con limiti
$query .= "ORDER BY nome ASC LIMIT $start,$step ";
$query = "SELECT nome, descrizione, apertura FROM attrazione WHERE ". $query;
//stampa tabella
echo"<table border=1 align='top' cellspacing='0' cellpadding'10'>
<tr >
<td>[b]nome</td>
<td>[b]descrizione</td>
<td>[b]apertura</td>
<td>variabile assegnata</td>
<td>num risultati</td>
</tr>";
$result = mysql_query($query, $db);
//contatore per variabili_clip e num tot record selezionati
$contatore=0;
//stampa risultati query
while ($row = mysql_fetch_array($result))
{
$varassegnata= "clip".$contatore;
$contatore++;
echo"<tr>
<td> $row[nome]</td>
<td width='300'> $row[descrizione] </td>
<td> $row[apertura] </td>
<td> $varassegnata </td>
<td> $row[tot]</td>";
}
$query2 = "SELECT count(*) AS tot FROM attrazione WHERE descrizione LIKE '%$parola%' OR nome LIKE '%$parola%' OR 0";
$result2 = mysql_query($query2, $db);
while ($row = mysql_fetch_array($result2))
{
$tot_ris = $row[tot];
echo"
<td> $tot_ris</td>
</tr>
</table>";
}
if ($start + $step < $tot_ris)
{ $start_next = $start + $step;
echo "successivi";
}
mysql_close ($db);
?>
</font>
</body>
</html>
-------------------