Elenco link con ciclo for

LucaB

Nuovo Utente
24 Ago 2009
12
0
0
Ciao a tutti :byebye:
Premetto che sono un principiante di php... Ho letto la vostra guida PHP e diversi tutorial nella rispettiva sezione del sito. Curiosando un po' qua e là sono riuscito a tirare giù qualche riga di codice che sembra addirittura funzionare :elvis: Ora che credo di volgere verso la fine del lavoro mi sono bloccato su un ostacolo... Per questo chiedo il vostro aiuto.
Espongo in pratica quanto devo fare, in modo da essere il più chiaro possibile. Ho una tabella con tante news... E devo stamparle su pagina web, preferibilmente un tot per pagina. In merito a questo ho letto il tutorial per l'utilizzo della funzione LIMIT(). Nel tutorial stesso https://www.mrw.it/php/articoli/paginazione-dati-estratti-db-mysql_455.html viene utilizzato un for che stampa a video un elenco composto da un tot righe prese dalla tabella nel database. Fino qui tutto ok. Il mio problema è che, siccome devo elencare delle news, vorrei stampare soltanto il titolo e far sì che si possa cliccarci sopra e così aprire la news intera composta di titolo e testo. Mi sono scervellato un po', ma non riesco a trovare un metodo un po' solido per ottenere questo risultato. Per ogni elemento dell'elenco posso mettere qualcosa tipo echo "<td>" . <a href="">titolo news</a> . "</td>";. Il mio dubbio è proprio cosa mettere tra le virgolette in <a href" ">... Cioè come recuperare quella singola news e poterla stampare in un'altra pagina.
Spero di essere riuscito a spiegarmi un po'... :crying:
Grazie per l'attenzione
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
immagino che tu abbia una tabella per le news cosi composta
id data titolo testo
se è così potresti fare:

echo "<td><a href=\"pag_news_completa.php?id=$id\" target=\"_blank\">$titolo_news</a></td>";

nella pagina pag_news_completa.php prelevi la query

$id=htmlspecialchars($_GET['id']);

//fai dei controlli sull'idi ricevuto ed esegui la query

$query="SELECT * FROM mie_news WHERE id='$id'";
$result=mysql_query($query);
$riga=mysql_fetch_array($result);

echo "data $riga['data'] <br>";
echo "titolo $riga['titolo'] <br>";
echo "testo $riga['testo'] <br>";

a te la formattazione della pagina e testi

prova, al massimo non funzia
 

LucaB

Nuovo Utente
24 Ago 2009
12
0
0
ciao
immagino che tu abbia una tabella per le news cosi composta
id data titolo testo
se è così potresti fare:

echo "<td><a href=\"pag_news_completa.php?id=$id\" target=\"_blank\">$titolo_news</a></td>";

nella pagina pag_news_completa.php prelevi la query

$id=htmlspecialchars($_GET['id']);

//fai dei controlli sull'idi ricevuto ed esegui la query

$query="SELECT * FROM mie_news WHERE id='$id'";
$result=mysql_query($query);
$riga=mysql_fetch_array($result);

echo "data $riga['data'] <br>";
echo "titolo $riga['titolo'] <br>";
echo "testo $riga['testo'] <br>";

a te la formattazione della pagina e testi

prova, al massimo non funzia

Grazie mille per la tempestiva e chiara risposta :beer:
Questa sera che ho un po' di tempo proverò senz'altro e ti farò sapere.
Grazie ancora :fonzie:
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
ricordiamoci sempre di effetture un controllo sui dati inviati per querystring:
PHP:
if(isset($_GET['id']))
{
$id=htmlspecialchars($_GET['id']);
}
 

LucaB

Nuovo Utente
24 Ago 2009
12
0
0
Ciao, grazie ancora per le risposte. Ho tardato un paio di giorni :dormo: Ma finalmente sono riuscito a provare il codice. Ne ho capito, almeno credo, la logica.
Mi restituisce però un errore:

Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in C:\Program Files\EasyPHP3.1\www\news.php on line 41


Sapete dirmi dove sbaglio?
Vi posto anche la parte di codice soggetta all'errore:


$rs = mysql_query("SELECT * FROM news LIMIT $first, $x_pag");
$nr = mysql_num_rows($rs);
if ($nr != 0){
for($x = 0; $x < $nr; $x++){
$row = mysql_fetch_array($rs);
echo "<table><tr>";
echo "<td><a href=\"pag_news_completa.php?id_news=$row['id_news']\" target=\"_blank\">$row['titolo']</a></td>";
echo "</tr></table>";
}


La linea 41 citata dall'errore è quella contenente il link del titolo, presente nel codice che vi ho postato.
Sapreste aiutarmi?
Grazie mille ancora per l'aiuto
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
prova a scrivere la riga in questa maniera (delle volte gli apici all'interno delgli array danno fastidio)

PHP:
echo "<td><a href=\"pag_news_completa.php?id_news=".$row['id_news']."\" target=\"_blank\">".$row['titolo']."</a></td>";
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao, scusa ma mi sono accorto di una cosa, hai messo un ciclo for per leggere le news è meglio un ciclo while
prova a correggere così

PHP:
$rs = mysql_query("SELECT * FROM news LIMIT $first, $x_pag");
$nr = mysql_num_rows($rs);
if ($nr != 0){
	echo "<table>";
	while($row= mysql_fetch_array($rs)){
		echo "<tr>";
		echo "<td><a href=\"pag_news_completa.php?id_news=".$row['id_news']."\" target=\"_blank\">".$row['titolo']."</a></td>";  
		echo "</tr>";
	}//fine while
	echo "</table>";
}//fine if != 0
 

LucaB

Nuovo Utente
24 Ago 2009
12
0
0
Ah grazie mille!! Ti stavo giusto rispondendo relativamente all'altro messaggio. Ho provato a sostituire quella parte di codice e ora funziona! Ora sistituirò tutto con il while allora, grazie sei gentilissimo.

Mentre gioco con queste cose mi è venuta un'idea... Mi chiedo se sia fattibile... Mi piacerebbe stampare a video sotto al titolo anche un pezzetto del testo, seguito dai "tre puntini" (...). Ci vuole una funzione per le stringhe che riesca a prelevare i primi tot caratteri e li stampi... Giusto? Si potrebbe fare una cosa del tipo:

if(num_caratteri>tot)
{
stampa primi tot caratteri;
stampa i tre puntini (...);
}
else
{
stampa tutto;
}

Potrebbe avere senso secondo voi?
Non vi chiedo di postare il codice, non posso farvi perdere tempo così, chiedo solo se l'idea è giusta :fonzie:
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
subito dopo il while inserisci
$max_car=10;
$testo=substr($row['testo'],0,$max_car)."..."

prelevi i primi $max_car e aggiunge i puntini

nella riga del link inserisci

.........\"_blank\">".$row['titolo']."</a><br>$testo</td>";

un piccolo consiglio
quando inserisci le news nel db su tutti i campi di testo metti
...addslashes(testo) (non ho scritto il codice preciso)
e quando li leggi
...stripslshes(testo)

perchè es. testo="ho bello l'aree meo"
viene interpretato come due stringhe da cui errore
addslshes trasforma in
="ho bello l\'aree meo"

e stripslashe toglie lo \ che in lettura è molto brutto
 

LucaB

Nuovo Utente
24 Ago 2009
12
0
0
Ho sostituito il for col while, poi ho inserito quell'accorgimento per i tre puntini (...) e ho anche utilizzato le funzioni che mi hai suggerito per evitare errori con gli apici nelle stringhe :book:
Qualche errorino qua e là subito l'ho seminato, ma nulla che non sia riuscito a mettere a posto :beer:
Ma sembrava troppo bello per essere vero: la pagina mi restituisce ancora un errore e una, diciamo, anomalia :crying:

Relativamente a questo codice:

// Recupero il numero di pagina corrente.
// Generalmente si utilizza una querystring
$pag = $_GET['pag']; (linea 13)

// Controllo se $pag è valorizzato...
// ...in caso contrario gli assegno valore 1
if (!$pag) $pag = 1;


Mi restituisce questo errore:

Notice: Undefined index: pag in C:\Program Files\EasyPHP3.1\www\news.php on line 13

Mentre invece relativamente a questo codice:

if ($all_pages > $pag){
echo "<a href=\"" . $_SERVER['PHP_SELF'] . "?pag=" . $pag + 1 . "\">";
echo "Pagina Avanti</a>";
}


Mi stampa a video soltanto:

1">Pagina Avanti (nemmeno come link).

Si tratta di erroracci per voi evidenti? :eek:

PS Quei due pezzetti di codice servono entrambi per distribuire in più pagine i dati presi dal db, come ben spiegato nel tutorial per la funzione limit().
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
guarda qui

PHP:
/*
devi controllare il $_GET non $pag
la prima volta che chiami la pagina $_GET è nullo
quando usi $_GET e $_SERVER è meglio mettere sempre htmlspecialchars
per motivi di sicurezza
*/
if(!isset($_GET['pag'])){
	 $pag=1;
}else{
	$pag=htmlspecialchars($_GET['pag']);
}
//da qui a P righe per prova
$all_pages=5;
echo " pagine totali $all_pages<br>";
echo "sono a pagina $pag<br>";
// P
if ($all_pages > $pag){
	/*chiudi tra parentesi $pag + 1 
	altrimenti eco non capsce se deve fare la somma del valore
	di <a href....?$pag e quello con con 1."\"......Pagina avanti<\a>
	*/
	echo "<a href=\"" . htmlspecialchars($_SERVER['PHP_SELF']) . "?pag=" . ($pag + 1). "\">Pagina Avanti</a>&nbsp;&nbsp;";
}

if($pag >1){
	echo "<a href=\"" . htmlspecialchars($_SERVER['PHP_SELF']) . "?pag=" . ($pag - 1). "\">Pagina Indietro</a>";
}
 

LucaB

Nuovo Utente
24 Ago 2009
12
0
0
Ho provato e funziona tutto alla perfezione :beer:
Grazie mille sei stato gentilissimo mi hai dato un grosso aiuto! :fonzie:
 
Discussioni simili
Autore Titolo Forum Risposte Data
M Mappa immagine con elenco di link reciproci Javascript 0
W Elenco dei link del file presenti in una cartella PHP 2
emanuelevt link tramite elenco HTML e CSS 2
F Script java elenco alfabetico non funziona Javascript 3
F Script non funzionante. Devo elencare in ordine alfabetico un elenco di nominativi, ma lo script non Javascript 2
N Script elenco file HTML HTML e CSS 5
Cosina Cancellare una specifica email da un elenco in un file txt PHP 3
M [PHP] Elenco con "classifica" delle informazioni nel db PHP 3
M [PHP] Selezione record da elenco PHP 24
D [phpBB] [HTML] Problema pagina elenco argomenti (di forum) phpBB 9
U elenco paesi black list... Leggi, Normative e Fisco 1
S [PHP] estrarre le email da un elenco di url PHP 21
P [PHP] Creare un elenco completo con tabella PHP 3
asevenx [Javascript] [AngularJS] contare opzioni selezionate di una select in un elenco ng-repeat Javascript 0
D Elenco File cartella solo HTML HTML e CSS 7
T [PHP] elenco delle parole presenti in un campo (senza doppioni) PHP 25
giancadeejay accumulare in elenco con php PHP 11
A [Javascript] [CSS] elenco affiancato per evitare scorrimento pagina Javascript 4
P [PHP] Creare elenco immagini PHP 2
V [PHP] Form con elenco a tendina con dati DB PHP 20
asevenx Selezionare elementi da un elenco in modo dinamico e inviarli al database PHP 0
Monital elenco variabili solo con suffisso PHP 2
L elenco file immagini con checkbox di selezione PHP 1
filippino creare un elenco in un articolo su WordPress WordPress 2
A Windows 7 personalizzare vista elenco con icone più grandi Windows e Software 0
S problemi con elenco dei prodotti PHP 2
andrea.peo PHP forzare option value di elenco select database Mysql PHP 2
N Form elenco + query PHP 4
F Elenco di novità in rotazione Javascript 1
M Funzione elenco file e file in sottodirectory PHP 2
L elenco anagrafe degli utenti PHP 5
E Leggere Elenco Contatti da Account Gmail PHP 0
F Problema elenco puntato firefox HTML e CSS 0
C Esercizio: Inserire elenco numeri e controllare che siano di tupi numerico Javascript 2
L Paginazione elenco File da una cartella PHP 11
novello88 Elenco PTC e PTR per guadagnare con Internet Guadagnare col Sito 1
braccobaldo Pubblicità tooltip: come funziona ed elenco siti che offrono spot contestuali Guadagnare col Sito 3
I elenco files di una directory su una pagina del mio sito web HTML e CSS 9
M elenco automatico delle cartelle PHP 11
G elenco dinamico con php e mysql PHP 0
M elenco pagine con affianco delle miniature Database 2
R Cerco elenco aggiornato di free directory per inserire il mio sito SEO e Posizionamento 3
A HTML personalizzare i valori di rientro di un elenco HTML e CSS 12
P Upload di un elenco di file PHP 1
S JS o Ajax per Data Mining Email su elenco indirizzi. Javascript 5
M elenco files in una cartella e sotto-cartelle PHP 1
D Visualizzare i file in un elenco per estensione PHP 1
lamiadirectory Elenco directory (+250) gratis e utile Presenta il tuo Sito 0
D Elenco di date Classic ASP 1
P Creaiamo un elenco di siti utili ? Discussioni Varie 2

Discussioni simili