Punto informatico Network
Login Esegui login | Non sei registrato? Iscriviti ora (è gratuito!)
Username: Password:
  • Annuncio Pubblicitario

[PHP] Creare un articolo multipagina

Cerchi consigli per migliorare il tuo sito? Vuoi aprire un sito in poco tempo?
Discuti con altri webmaster, chiedi chiarimenti ed opinioni in tutta libertà.
Lo spam verrà cancellato.

[PHP] Creare un articolo multipagina

Messaggioda Ginho » mer feb 22, 2012 6:46 pm

[ciao] a tutti,

eccomi di nuovo [:D]

come da titolo mi piacerebbe avere la possibilità di scrivere un articolo su più pagine, tipo in stile MegaLab.it

come procedo? Ho googlato un po' ma non sono riuscito a trovare quello che fa per me

[grazie] ancora!
App: https://play.google.com/store/apps/details?id=it.economiasprint
Avatar utente
Ginho
Silver Member
Silver Member
 
Messaggi: 1344
Iscritto il: gio lug 21, 2011 12:28 pm
Località: Ferrara

Re: [PHP] Creare un articolo multipagina

Messaggioda Andy94 » mer feb 22, 2012 8:38 pm

Devi concettualizzare il salvataggio degli articoli nel database in "pagine" anziché in "contenuti".

In questo modo salverai ogni pagina dell'articolo in una riga diversa della tabella, e le numererai progressivamente. Inoltre, ti terrai per ogni pagina un campo "id_articolo": questo ti permetterà di capire quali pagine (perché ne avrai diverse con lo stesso numero) appartengono a quale articolo.
In fase di visualizzazione dovrai estrarre tutte le pagine (e visualizzarle in ordine) aventi come id_articolo quello che ti interessa.

Per quanto riguarda l'inserimento, se hai solamente una textarea, ti conviene pensare ad un "segnalibro" che, opportunamente parsato dal meccanismo di inserimento, ti consenta di inserire il contenuto della casella di testo in più righe.

Non appena hai preso famigliarità con le funzioni explode (per esplodere il testo della casella secondo il segnapagina che sceglierai) e la sintassi delle query (nonché quella di PHP per la visualizzazione e l'ottenimento delle variabili globali) capirai che è molto più facile a farsi che a dirsi.

[ciao]
Avatar utente
Andy94
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 9998
Iscritto il: lun apr 09, 2007 8:39 pm

Re: [PHP] Creare un articolo multipagina

Messaggioda Ginho » gio feb 23, 2012 8:28 pm

Grazie per la risposta! [^] In questi giorni non ho molto tempo e quindi ci guarderò più avanti [acc2]
App: https://play.google.com/store/apps/details?id=it.economiasprint
Avatar utente
Ginho
Silver Member
Silver Member
 
Messaggi: 1344
Iscritto il: gio lug 21, 2011 12:28 pm
Località: Ferrara


Re: [PHP] Creare un articolo multipagina

Messaggioda Ginho » ven feb 24, 2012 8:26 pm

Andy94 ha scritto:In questo modo salverai ogni pagina dell'articolo in una riga diversa della tabella, e le numererai progressivamente.


Quindi al DB inserisco intArticoloID, con valore auto_increment.
Questo è il codice per aggiungere l'articolo al DB:

Codice: Seleziona tutto
$strSQL = "INSERT INTO articolo ("
. " spotlight,"
. " intSezioneID,"
. " intAutoreID,"
. " strTitolo,"
. " strIntroduzione,"
. " strArticolo,"
. " dtmPubblicazione) VALUES("
. " '$image',"
. " '$intSezioneID',"
. " '$intAutoreID',"
. " '$strTitolo',"
. " '$strIntroduzione)', "
. " '$strArticolo', "
. " $dtmPubblicazione)";


Poi inserisco un nuovo campo
Codice: Seleziona tutto
."'$intArticoloID',"


E questo è a posto?

Andy94 ha scritto:In fase di visualizzazione dovrai estrarre tutte le pagine (e visualizzarle in ordine) aventi come id_articolo quello che ti interessa.


Correggimi se sbaglio:
Codice: Seleziona tutto
$strSQL .= " ORDER BY dtmPubblicazione, intArticoloID DESC LIMIT $start, $news_per_page";
O solo intArticoloID, e la dtmPubblicazione (data di pubblicazione dell'articolo) la tolgo?

Andy94 ha scritto:Per quanto riguarda l'inserimento, se hai solamente una textarea, ti conviene pensare ad un "segnalibro" che, opportunamente parsato dal meccanismo di inserimento, ti consenta di inserire il contenuto della casella di testo in più righe.


Non ho capito molto bene... che vuol dire parsato?

[grazie]
App: https://play.google.com/store/apps/details?id=it.economiasprint
Avatar utente
Ginho
Silver Member
Silver Member
 
Messaggi: 1344
Iscritto il: gio lug 21, 2011 12:28 pm
Località: Ferrara

Re: [PHP] Creare un articolo multipagina

Messaggioda Andy94 » ven feb 24, 2012 8:48 pm

No, non ci siamo capiti.

La tabella articoli va rivista, ti serve qualcosa di questo tipo:
Codice: Seleziona tutto
- id_articolo
- spotlight
- id_sezione
- id_autore
- titolo
- introduzione


Poi ti serve una tabella "pagine", dove inserisci i corpi di tutte le pagine degli articoli, fatta più o meno così:
Codice: Seleziona tutto
- id_pagina
- id_articolo_correlato
- numero_pagina
- corpo_pagina


In fase di estrazione, quando ti servono le pagine di un articolo specifico, farai così:
Codice: Seleziona tutto
SELECT * FROM pagine WHERE id_articolo_correlato='id_dell_articolo' ORDER BY numero_pagina ASC


In questo modo avrai a disposizione i corpi delle pagine che compongono un articolo specifico.

Non ho capito molto bene... che vuol dire parsato?

Dall'inglese "to parse", volgarmente italianizzato. [;)]
Avatar utente
Andy94
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 9998
Iscritto il: lun apr 09, 2007 8:39 pm

Re: [PHP] Creare un articolo multipagina

Messaggioda Ginho » ven feb 24, 2012 8:59 pm

Andy94 ha scritto:Poi ti serve una tabella "pagine", dove inserisci i corpi di tutte le pagine degli articoli, fatta più o meno così:
CODICE: SELEZIONA TUTTO
- id_pagina
- id_articolo_correlato
- numero_pagina
- corpo_pagina


OK. ID_Pagina, ID_Articolo con auto_increment, vero?

Lunedì ci provo. Grazie ancora!
App: https://play.google.com/store/apps/details?id=it.economiasprint
Avatar utente
Ginho
Silver Member
Silver Member
 
Messaggi: 1344
Iscritto il: gio lug 21, 2011 12:28 pm
Località: Ferrara

Re: [PHP] Creare un articolo multipagina

Messaggioda Andy94 » ven feb 24, 2012 9:13 pm

- id_articolo_correlato

Questo NON deve avere auto_increment, deve essere uguale all'ID dell'articolo al quale vuoi aggiungere le pagine.
Gli unici che devono avere auto_increment sono:
- id_articolo (tabella "articoli")
- id_pagina (tabella "pagine")

Gli altri sono tutti dati di cui devi essere a conoscenza.
Avatar utente
Andy94
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 9998
Iscritto il: lun apr 09, 2007 8:39 pm

Re: [PHP] Creare un articolo multipagina

Messaggioda Ginho » sab feb 25, 2012 7:23 pm

Data di pubblicazione la metto nella tabella articolo? è indifferente?

Ho esportato il DB, cosi da rimediare in caso di errori
App: https://play.google.com/store/apps/details?id=it.economiasprint
Avatar utente
Ginho
Silver Member
Silver Member
 
Messaggi: 1344
Iscritto il: gio lug 21, 2011 12:28 pm
Località: Ferrara

Re: [PHP] Creare un articolo multipagina

Messaggioda Andy94 » sab feb 25, 2012 8:20 pm

Ah sì, dimenticavo.
Non è assolutamente indifferente: va nella tabella articoli. [^]
Avatar utente
Andy94
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 9998
Iscritto il: lun apr 09, 2007 8:39 pm

Re: [PHP] Creare un articolo multipagina

Messaggioda Ginho » dom feb 26, 2012 10:17 am

Immagine

Immagine

Va bene come configurazione?
App: https://play.google.com/store/apps/details?id=it.economiasprint
Avatar utente
Ginho
Silver Member
Silver Member
 
Messaggi: 1344
Iscritto il: gio lug 21, 2011 12:28 pm
Località: Ferrara

Re: [PHP] Creare un articolo multipagina

Messaggioda Andy94 » dom feb 26, 2012 11:39 am

Direi di sì. [^]
Avatar utente
Andy94
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 9998
Iscritto il: lun apr 09, 2007 8:39 pm

Re: [PHP] Creare un articolo multipagina

Messaggioda Ginho » dom feb 26, 2012 11:55 am

Ma questo codice

Andy94 ha scritto:SELECT * FROM pagine WHERE id_articolo_correlato='id_dell_articolo' ORDER BY numero_pagina ASC


in teoria lo devo inserire nell'articolo completo, non nell'anteprima, vero?
App: https://play.google.com/store/apps/details?id=it.economiasprint
Avatar utente
Ginho
Silver Member
Silver Member
 
Messaggi: 1344
Iscritto il: gio lug 21, 2011 12:28 pm
Località: Ferrara

Re: [PHP] Creare un articolo multipagina

Messaggioda Andy94 » dom feb 26, 2012 12:08 pm

Dipende come è strutturato il CMS: cos'è "l'articolo completo" e cos'è "l'anteprima"? In ogni caso, dopo riadatterai la mia spiegazione al tuo MVC, puoi fare:
HOME
- Selezione di tutti gli articoli (dalla tabella articoli) per mostrarne titolo, introduzione, spotlight e tutti i dati che ti interessano

VISUALIZZAZIONE DI UN ARTICOLO
- Estrazione delle pagine lui correlate (dalla tabella pagine, in base all'id dell'articolo visualizzato in quel momento)
- Quando hai le pagine, a meno che il link non preveda già la seconda pagina (nella querystring), visualizzazione della pagina (dalla tabella pagine, sapendo l'id dell'articolo visualizzato e il numero della pagina).

Ecco tutto.
Avatar utente
Andy94
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 9998
Iscritto il: lun apr 09, 2007 8:39 pm

Re: [PHP] Creare un articolo multipagina

Messaggioda Ginho » dom feb 26, 2012 12:11 pm

Perfetto mi metto all'opera [applauso+] [ciao]
App: https://play.google.com/store/apps/details?id=it.economiasprint
Avatar utente
Ginho
Silver Member
Silver Member
 
Messaggi: 1344
Iscritto il: gio lug 21, 2011 12:28 pm
Località: Ferrara

Re: [PHP] Creare un articolo multipagina

Messaggioda Ginho » dom feb 26, 2012 1:28 pm

Non ho capito molto bene a che serve la funzione parse, come dovrei utilizzarla? Ho letto la documentazione, ma non so dove devo applicarla.

Grazie
App: https://play.google.com/store/apps/details?id=it.economiasprint
Avatar utente
Ginho
Silver Member
Silver Member
 
Messaggi: 1344
Iscritto il: gio lug 21, 2011 12:28 pm
Località: Ferrara

Re: [PHP] Creare un articolo multipagina

Messaggioda Andy94 » dom feb 26, 2012 2:06 pm

Parse non è una funzione, è un verbo in inglese. [;)]
Avatar utente
Andy94
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 9998
Iscritto il: lun apr 09, 2007 8:39 pm

Re: [PHP] Creare un articolo multipagina

Messaggioda Ginho » sab mar 10, 2012 11:52 am

Ci sto riprovando e riprovando... ma non riesco a far salvare le pagine nel DB.

Ecco il vecchio codice (nel backend) con cui estraggo di dati
Codice: Seleziona tutto
//recupero dati...
$intArticoloSezioneID = addslashes(stripslashes($row['intSezioneID']));
$intArticoloAutoreID = addslashes(stripslashes($row['intAutoreID']));
$strTitolo = addslashes(stripslashes($row['strTitolo']));
$strIntroduzione = addslashes(stripslashes($row['strIntroduzione']));
$strArticolo = addslashes(stripslashes($row['strArticolo']));


e questo per salvare:

Codice: Seleziona tutto
if($action == "aggiungi_2"){
                     //Recupero tutti dati
                     $image = $_POST['spotlight'];
                     $intArticoloID = $_POST['intArticoloID'];
                     $intSezioneID = $_POST['intSezioneID'];
                     $intAutoreID = $_POST['intAutoreID'];
                     $strTitolo = addslashes(stripslashes($_POST['strTitolo']));
                     $strIntroduzione = addslashes(stripslashes($_POST['strIntroduzione']));
                     $strArticolo = addslashes(stripslashes($_POST['strArticolo']));
                     $dtmPubblicazione = $_POST['dtmPubblicazione'];
                     
                        if(strlen($intArticoloID) == 0){ //Aggiungo l'articolo
                           $strSQL = "INSERT INTO articolo ("
                              . " spotlight,"
                              . " intSezioneID,"
                              . " intAutoreID,"
                              . " strTitolo,"
                              . " strIntroduzione,"
                              . " strArticolo,"
                              . " dtmPubblicazione) VALUES("
                              . " '$image',"
                              . " $intSezioneID,"
                              . " $intAutoreID,"
                              . " '$strTitolo',"
                              . " '$strIntroduzione', "
                              . " '$strArticolo', "
                              . " $dtmPubblicazione)";
                           
                           }else{ //Modifico l'articolo
                              $strSQL = "UPDATE articolo SET"
                                 . " spotlight = '$image',"
                                 . " intSezioneID = $intSezioneID,"
                                 . " intAutoreID = $intAutoreID, "
                                 . " strTitolo = '$strTitolo', "
                                 . " strIntroduzione = '$strIntroduzione', "
                                 . " strArticolo = '$strArticolo'"
                                 . " WHERE intArticoloID = $intArticoloID";
                           }


Però come mi hai detto, è tutto da risistemare..
ma non ci riesco! Grazie ancora
App: https://play.google.com/store/apps/details?id=it.economiasprint
Avatar utente
Ginho
Silver Member
Silver Member
 
Messaggi: 1344
Iscritto il: gio lug 21, 2011 12:28 pm
Località: Ferrara

Re: [PHP] Creare un articolo multipagina

Messaggioda Andy94 » sab mar 10, 2012 2:18 pm

Tutta questa parte della query è sbagliata: non vedi che ci sono troppi apici dove non vanno?
Codice: Seleziona tutto
                              . " '$image',"
                              . " $intSezioneID,"
                              . " $intAutoreID,"
                              . " '$strTitolo',"
                              . " '$strIntroduzione', "
                              . " '$strArticolo', "
                              . " $dtmPubblicazione)";


Inoltre, mi auguro che da qualche parte ci sia un mysql_query($strSQL);. [;)]
Avatar utente
Andy94
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 9998
Iscritto il: lun apr 09, 2007 8:39 pm

Re: [PHP] Creare un articolo multipagina

Messaggioda Ginho » sab mar 10, 2012 2:24 pm

Andy94 ha scritto:Inoltre, mi auguro che da qualche parte ci sia un mysql_query($strSQL);. [;)]


No problem [:D]

Codice: Seleziona tutto
                                                        //Eseguo la query SQL
                     if(mysql_query($strSQL)){
                        echo "Articolo aggiunto/modificato con successo !<br>";
                        echo "<a href=\"index.php?page=articolo\">Torna alla gestione articoli</a>";
                     }else{
                        echo "Mi dispiace Giovanni, ma c'è un errore:<br>";
                        echo "Errore: ".mysql_error();
                     }


Andy94 ha scritto:Tutta questa parte della query è sbagliata: non vedi che ci sono troppi apici dove non vanno?


[uhm] Fino ad adesso non mi ha creato problemi, e ho immaginato che fosse tutto a posto [uhm]
App: https://play.google.com/store/apps/details?id=it.economiasprint
Avatar utente
Ginho
Silver Member
Silver Member
 
Messaggi: 1344
Iscritto il: gio lug 21, 2011 12:28 pm
Località: Ferrara

Re: [PHP] Creare un articolo multipagina

Messaggioda Andy94 » sab mar 10, 2012 2:26 pm

Chiarisci questo concetto "ma non riesco a far salvare le pagine nel DB." e vediamo cosa si può fare.

Eventualmente fatti stampare la query compilata da PHP ed eseguila direttamente nel database, in modo da capire se ci sono errori SQL di qualche tipo.

Usi un editor che ti evidenzia gli errori di sintassi? In caso negativo ti consiglio fortemente di adottarne uno...
Avatar utente
Andy94
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 9998
Iscritto il: lun apr 09, 2007 8:39 pm

Prossimo

Torna a Sviluppo Web

Chi c’è in linea

Visitano il forum: Nessuno e 8 ospiti

Powered by phpBB © 2002, 2005, 2007, 2008 phpBB Group
Traduzione Italiana phpBB.it

megalab.it: testata telematica quotidiana registrata al Tribunale di Cosenza n. 22/09 del 13.08.2009, editore Master New Media S.r.l.; © Copyright 2008 Master New Media S.r.l. a socio unico - P.I. 02947530784. GRUPPO EDIZIONI MASTER Spa Tutti i diritti sono riservati. Per la pubblicità: Master Advertising