Ragazzi ho un problema con le guide, inizialmente ho letto la guida Base, nel mettere in pratica gli esempi ho trovato degli errori che volevo segnalare ma la guida è sparita appunto per essere aggiornata come ho scoperto qui.
Capisco che la stiate aggiornando ma non capisco perchè rimuovere la vecchia guida dato che come inizio la stavo prendendo come riferimento e ora sono in difficoltà.
Sono passato avanti e più precisamente alla Guida PHP/MySql pratica, molto interessante ma ho enormi difficoltà perchè non mi girano gli script e non riesco a capire il perchè, alcuni problemi li ho risolti e ve li espongo, altri no.
L'esempio proposto è la gestione di un Archivio Articoli, vengo al punto: dopo aver creato nel file insert.php il form per inserire Autore, Titolo, Data, Testo e Password questi dati vengono passati al file save.php che si occiperà di inserire il tutto nel DB. Qui subito il primo problema perchè il tutto non funziona, dopo varie prove ho capito che i dati passati dal form non andavano in ingresso al file save.php per cui mi sono attivato in numerose ricerche ed ho scoperto che bisogna richiamare le variabili tramite l'espressione:
Codice PHP:
$variabile=$_POST['variabile'];
Ora immagino che per voi sia una stupidaggine ma per uno che si affida ad una guida per imparare non lo è.
Con la consapevolezza che il tutto non è dovuto ad un errore nella guida ma al fatto che la guida è datata e che ci sono differenze con le vecchie versioni di PHP, sono andato avanti.
L'altro scoglio l'ho trovato subito, in pratica dopo aver inserito nel DB vari articoli creiamo uno script index.php per richiamare gli ultimi 5 articoli e fin qui tutto ok, ad ogni titolo elencato si associa un link che rimandi al relativo testo nel file view.php, ecco qui ho avuto l'altro blocco:
Codice PHP:
while ($row = mysql_fetch_array($result))
{ echo "<a href=\"view.php?id=$row[id]\">" . date("j/n/y", $row['data']) . " - $row[titolo]</a>
"; }
Non capivo a cosa servisse quel punto di domanda in view.php?id=$row[id], dopo le ulteriori ricerche però mi era chiaro che passavo al file view.php il valore della chiave primaria degli articoli su cui cliccavo per visualizzarne il contenuto. Dopo svariate ricerche scopro che devo usare il:
Codice PHP:
$id=$_GET['id'];
Ripeto, sono sicuro che per voi sono stupidaggini ma il mio intento è mostrarvi quali sono le difficoltà che un niubbo come me può trovare nonostante stia seguendo delle guida di base che servono proprio ad imparare e non a creare difficoltà. Spero che in futuro questo 3D serva a sistemare le guide o ad aiutar efuturi niubbi con gli stessi problemi.
Fin qui direi che ho risolto tutto ma veniamo al dunque, ora sono ad un punto fermo.
Sempre seguendo la guida ho creato un file all.php dove voglio elencare tutti gli articoli immessi mostrandone 20 per volta e quindi distribuendoli su più pagine. Sotto gli articoli elencati ho una tabella con 3 celle su una riga con all'interno rispettivamente:
-un link alla pagina (e agli articoli) precedente;
-i numeri di pagina che mi linkino direttamente alla relativa lista di 20 articoli;
-un link alla pagina (e agli articoli) successiva;
Questo lo faccio passando la variabile $start ricorsivamente allo stesso script all.php, il valore di $start in LIMIT $start,$step varia in funzione del link che seguo in tabella, su "precedenti" arretra di vent articoli e va alla pagina precedente, sui numeri di pagina salta di un valore pari al numero di pagina moltiplicato * 20 e su "successivi" salta avanti di 20 articoli.
Il problema è che pur avendo riempito 3 pagine:
- non mi esce la scritta "precedenti" nel primo campo della tabella
- se clicco sui numeri di pagina dall'URL vedo che effettivamente il valore di start cambia di 20 in 20 ma l'elenco articoli non varia, mi restituisce sempre gli ultimi immessi, lo stesso se clicco su successivi.
Ora non credo sia un problema riguardante il passaggio delle variabili come prima appunto perchè nell'URL compaiono i valori giusti di $start, il file mi sembra corretto così come l'ho copiato dalla guida ma davvero non so dov'è l'errore, potreste aiutarmi perfavore?
Ecco lo script:
Codice PHP:
<?
include("top_foot.inc.php");
include("config.inc.php");
top();
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
mysql_select_db($db_name, $db)
or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
if (!isset($start) OR $start<0)
$start=0;
$step = 5;
$query = "SELECT id,data,titolo FROM news ORDER BY data DESC LIMIT $start,$step";
$result = mysql_query($query, $db);
while ($row = mysql_fetch_array($result))
{ echo "<a href=\"view.php?id=$row[id]\">" . date("j/n/y", $row['data']) . " - $row[titolo]</a>
"; }
?>
<table width=90% border=0><tr>
<td width=20% align=left>
<?
if ($start>0)
{ $start_back = $start - $step;
echo "<a href=all.php?start=$start_back>precedenti</a>";
}
?>
</td>
<?
$query = "SELECT count(*) AS tot FROM news";
$result = mysql_query($query, $db);
$row = mysql_fetch_array($result);
$pages = intval(($row['tot']-1) / $step)+1;
?>
<td width=60% align=center>
<?
for ($i=0; $i<$pages AND $i<10; $i++)
{ $start_page = $i * $step;
echo "<a href=all.php?start=$start_page>" . ($i+1) . "</a> ";
}
?>
</td>
<td width=20%>
<?
if ($start + $step < $row['tot'])
{ $start_next = $start + $step;
echo "<a href=all.php?start=$start_next>successivi</a>";
}
?>
</td>
</tr></table>
<?
echo "<a href=search.php>Cerca negli articoli</a>";
foot();
?>