Newsgroup: it.comp.www.php
Titolo: Aiuto !!

Salve mi chiamo massimo.
Sono alle prime armi con il PHP e devo dire che quel poco che riesco a  fare
è grazie alle soddisfacienti consigli che ho trovato in quest Ng
Vorrei chiedervi un parere in merito alla compilazione di un suo script che
permette di suddividere in pagine i risultati di una interrogazione ad un DB
mysql. Il problema è che ho provato a modificarlo per adattarlo ad un form
di ricerca. Purtroppo al momento in cui vado a visualizzare le pagine
seguenti tramite i link sul fondo della pagina  non riesco a ricavare i
dati.
Dov'è che sbaglio?
Vi sarei molto grato se mi poteste aiutare
Massimo
file "form.html"
----------------------------------------------------------------------------
-
<html>
<head>
        <title>Ricerca nella tabella smarrimeni</title>
</head>
<body>
<h2>Dove vuoi cercare cosa?</h2>
<form method=post  action=ricerca.php>
  <div align="center">
    <select size="1" name="regione">
      <option selected>Seleziona Una regione</option>
      <option value="Abruzzo">Abruzzo</option>
      <option value="Basilicata">Basilicata</option>
      <option value="Calabria">Calabria</option>
      <option value="Campania">Campania</option>
      <option value="Emilia Romagna">Emilia Romagna</option>
      <option value="Friuli Venezia Giulia">Friuli Venezia Giulia</option>
      <option value="Lazio">Lazio</option>
      <option value="Liguria">Liguria</option>
      <option value="Lombardia">Lombardia</option>
      <option value="Marche">Marche</option>
      <option value="Molise">Molise</option>
      <option value="Piemonte">Piemonte</option>
      <option value="Puglia">Puglia</option>
      <option value="Sardegna">Sardegna</option>
      <option value="Sicilia">Sicilia</option>
      <option value="Toscana">Toscana</option>
      <option value="Trentino Alto Adige">Trentino Alto Adige</option>
      <option value="Umbria">Umbria</option>
      <option value="Valle d'Aosta">Valle d'Aosta</option>
      <option value="Veneto">Veneto</option>
    </select>
    <input type="submit" value="invia">
  </div>
</form>
</body>
</html>
----------------------------------------------------------------------------
---------------------------------
file "ricerca.php"
----------------------------------------------------------------------------
---------------------------------
<?
$nome_server = "localhost";// Nome Server
$nome_utente = "";// Nome utente del MySQL
$password = "";//Password
$nome_db = "annunci";//Nome Database
// connessione
$connessione = @mysql_connect(
                $nome_server,
                $nome_utente,
                $password
                )
               or die
               (" Errore: connessione non riuscita la database!!!");
// seleziona il database dal server
$db = @mysql_select_db($nome_db,$connessione);
$tabella = "smarrimenti"; // nome della tabella
$rec_pagina = 5;
if (!isset($start)) $start = 0; // setta a 0 il punto di partenza della
selezione, se questo non è già presente
$sql = "select * from $tabella WHERE regione='$regione'order by id asc limit
$start,$rec_pagina"; // il comando SQL da eseguire
$query = @mysql_query ($sql, $connessione); // la query
$query_totale = mysql_query("select * from $tabella WHERE
regione='$regione'",$connessione); // query per selezionare il totale dei
righi in tutta la tabella
$num_totale = @mysql_numrows ($query_totale); // numero dei righi della
tabella
// dù parole...
echo "<center>
      <font color=000000 face=verdana size=2>
      <b>Risultato della ricerca nella categoria $tabella</b><br></font>";
      echo "<font color=000000 face=verdana size=1>Annunci trovati nella
categoria $tabella: $num_totale<br>";
      echo "Visualizzazione scelta: $rec_pagina records per
pagina<br><br><br>";
      //arrotonda al numero intero + alto riferito al risultato della
divisione
      //per calcolare il numero totale delle pagine da visualizzare
      $numero_pagine = ceil($num_totale/$rec_pagina);
      // calcola il numero della pagina corrente
      $pagina_corrente= ceil(($start/$rec_pagina)+1);
      echo "Pagina $pagina_corrente di $numero_pagine<bR>
      </center>
       ";
// stampo l'inizio della tabella che mostrerà il tutto
echo "
<table width=550 border=0 cellspacing=5 cellpadding=5 align=center
bordercolor=>
  <tr bgcolor= bordercolor=></tr>";
while ($rigo=@mysql_fetch_array ($query)){ // classico cicletto per
"estrarre" i records
$nome = $rigo ["nome"];
$email = $rigo ["email"];
$regione = $rigo ["regione"];
$annuncio = $rigo ["annuncio"];
echo "
  <tr bgcolor=#efefef>
    <td width=550><font face=Arial, Helvetica, sans-serif size=2
color=#000000><left><b>Nome:</b> $nome<br><br><b>E-mail</b>
$email<br><br><b>Regione:</b> $regione<br><br><b>Annuncio:</b>
$annuncio<br><br></left></font></A></td>
    </tr>
";
} // fine loop
echo "</table>";// chiusura tabella
echo "<center>";
if ($numero_pagine > 1) { //inizio della condizione per creare l'elenco
delle pagine
  for ($pagina = 1; $pagina <= $numero_pagine; $pagina++) {
    echo "[&nbsp<a href=?";
    echo "start=".(($pagina-1)*$rec_pagina).
    " title=\"Vai a pagina $pagina\">".$pagina."</a>&nbsp]&nbsp";
  }
  } // fine "elenco"
  echo "</center>";
echo "
</body>
</html>
";
// chiusura connessione
@mysql_close ($connessione);
?>
-- 
Posted from  [62.98.151.133] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Dov'č che sbaglio?
Beh, invece di leggere tutto il tuo codice ti faccio varie proposte:
- aggiungi a tutte le mysql_query un
or die("Errore in php: riga ".__LINE__.": ".mysql_error());
cosi potresti magari anche vedere eventuali errori delle query.
- Inoltre togliere i @ davanti: proprio per vedere errori...
- visto che hai selezionato il db non c'e' bisogno di passare a mysql_query
l'ID ($connessione).
- Il valore di ritorno per mysql_select_db e un bool... perche' lo chiami
$db (che poi non lo usi neanche).
J.