Ora però mi devi levare una curiosità. Cosa intedi per soluzione più raffinata. O meglio, perchè questa la reputi una soluzione rudimentale?
Ora però mi devi levare una curiosità. Cosa intedi per soluzione più raffinata. O meglio, perchè questa la reputi una soluzione rudimentale?
Beh diciamo che questa soluzione ha dei "bugs" che pero' sono irrilevanti per te che ne conosci il funzionamento. Per un altro utente (mettiamo che lo inserisci in un CMS) sarebbe pressochè incomprensibile, o cmq non ntuitivo.
Il modo "raffinato" sarebbe quello di creare un pannello di ordinamento delle news in cui compaiono SOLO le news pubblicate e ordinabili tramite delle freccine, evitando conflitti tra i valori di pub (con la soluzione attuale tu puoi mettere tutti i pub a 1 e quindi sballare l'ordinamento).
Insomma, se è per il tuo sito personale allora è una soluzione funzionale e PER TE comprensibile, ma se fosse uno script per un pannello news da distribuire sarebbe un abominio![]()
VVoVe:
Il problema è che il sito è mio personale e sin qui nessun problema. A breve però dovrò con molta probabilità affidare l'amministrazione ad alcune persone che lavorano con me, in modo da poter gestire il sito in più persone. E questi di php non ne capiscono una mazza!!!!
Ecco che allora sorge una domanda. E' molto complicato realizzare quel pannello di controllo?![]()
Beh oddio non è difficilissma la realizzazione, ma tutto dipende dalle conoscenze di PHP / MySQL.
Avendo gia' realizzato varie volte un pannello di ordinamento potrei esserti d'aiuto ma dovrei conoscere alla perfezione la struttura del tuo DB e delle tue pagine PHP.
Beh allora appena torno a casa dal lavoro ti faccio avere il dump del database e ti spiego un pò la srtuttura del sito (molto molto semplice). Già da ora ti dico grazie per la pazienza e per l'aiuto![]()
![]()
Ciao Drugo,
ti ho mandato un messaggio in pvt. Leggi e dimmi che ne pensi
![]()
Ciao Drugo,
riprendo questo post perchè ho provato la soluzione che mi hai postato. Dopo qualche aggiustamento, ho visto che c'è un problema. Ossia, nel file che tu hai chiamato "pagina di modifica", lanciandolo non mi da problemi. Nel senso che mi apre la pagina con le varie opzioni accanto.
Ossia Modifica, elimina e "Applica" (che sarebbe il bottone da te inserito per pubblicare la news che mi interessa).
Ma quando ci clikko sopra, avendo inserito un redirect verso la pagina dove compaiono le news, non accade nulla. Ossia quella news non viene pubblicata. Inoltre la home page mi perde tutta la formattazione dovuta ai css (i fogli di stile che ho usato per costruire la pagina). Ma questo sarebbe il problema minimo.
Quel che non capisco è perchè non mi pubblica la nes che ho prescelto. Magari ho sbagliato inserendo il campo pub nel database.
L'ho inserito come campo "INT" e poi gli ho assegnato un valore predefinito di 3. Dove stò sbagliando?
Per comprenderci, ti posto anche il codice della pagina "pubblica.php", dove ho aggiunto il reindirizzamento:
<?php
include("config.php");
mysql_connect($db_host,$db_user,$db_password,$db_n ame) or die ("errore nella connessione");
mysql_select_db("$db_name") or die ("errore nella selezione del database");
$sql = "UPDATE articoli SET pub = '".$_POST['pub']."' WHERE art_id = '".$_GET['id']."'";
mysql_query($sql);
// fai un redirect a dove vuoi tu
header ("location: news.php");
?>
Attendo tue notizie![]()
Ti ho risposto al PM. Diciamo che non avendo il codice completo della pagina c'era un annidamento di TD che è saltato causando l'errata formattazione della tabella. Appena controllo bene i files ch emi ha mandato posto il codice per chi fosse interessato alla soluzione.
![]()
Ok,
allora attendo la tua risposta.
Oltre alla formattazione saltata, quel che più mi interessa è che non gira il codice. Che dipenda dal campo pub oppure c'è qualcosa di errato?
Grazie ancora![]()
Salve ragazzi,
riprendo questo post dopo un periodo di vacanza. Allora, dall'ultimo messaggio scritto, grazie al grande aiuto dell'amico Il_Drugo, sono riuscito a sistemare il problema della pubblicazione degli articoli nella home page del mio sito. Allego i tre file che permettono di far ciò. Quello più importante è il file "scegli.php", il quale permette appunto di effettuare una scelta su quale articolo pubblicare in base ad un numero da inserire nel campo PUB (Associato nella tabella in SQL di riferimento).
Ecco il codice de file scegli.php:
<?php
include("config.php");
$id = $_GET["id"];
mysql_connect($db_host,$db_user,$db_password,$db_n ame) or die ("errore nella connessione");
mysql_select_db("$db_name") or die ("errore nella selezione del database");
// esecuzione prima query
$count = mysql_query("SELECT COUNT(art_id) FROM articoli");
$res_count = mysql_fetch_row($count);
// numero totale di records
$tot_records = $res_count[0];
// risultati per pagina(secondo parametro di LIMIT)
$per_page = 5;
// numero totale di pagine
$tot_pages = ceil($tot_records / $per_page);
// pagina corrente
$current_page = (!$_GET['page']) ? 1 : (int)$_GET['page'];
// primo parametro di LIMIT
$primo = ($current_page - 1) * $per_page;
echo "<div align=\"center\">\n<table>\n";
// esecuzione seconda query con LIMIT
$query_limit = mysql_query("SELECT * FROM articoli LIMIT $primo, $per_page");
while($row = mysql_fetch_array($query_limit))
{
if($row['pub'] == 0) { $pub = ""; } else { $pub = $row['pub']; }
print("<form action='".$_SERVER['PHP_SELF']."?act=1&id=".$row['art_id']."' method='post'>");
print("<tr>");
print("<td style='border-bottom:1px solid #999;'>");
print("ord.");
print("</td>");
print("<td style='border-bottom:1px solid #999;'>");
print("<input name='ord' type='text' maxlength='1' size='1' value='".$pub."' />");
print("</td>");
print("<td style='border-bottom:1px solid #999;'>");
print(" - ".$row['titolo']);
print("</td>");
print("<td style='border-bottom:1px solid #999;'>");
print("<input type='submit' value='aggiorna' />");
print("</td>");
print("</tr>");
print("<tr>");
print("<td colspan='4'></td>");
print("</tr>");
print("</form>");
}
// includiamo uno dei files contenenti la paginazione, commentate l'altro ovviamente
include("paginazione_2.php");
//include("paginazione_1.php");
// in questa cella inseriamo la paginazione
echo " <tr>\n <td height=\"50\" valign=\"bottom\" align=\"center\">$paginazione</td>\n";
echo " </tr>\n</table>\n</div>";
mysql_close();
?>
<?php
}
else
{
if($_POST['ord'] == "") { $ord = 1; }
else { $ord = $_POST['ord']; }
include("config.php");
mysql_connect($db_host,$db_user,$db_password,$db_n ame) or die ("errore nella connessione");
mysql_select_db("$db_name") or die ("errore nella selezione del database");
mysql_query("UPDATE articoli SET pub = '".$ord."' WHERE art_id = '".$_GET['id']."'") or die(mysql_error());
header("Location: ".$_SERVER['PHP_SELF']);
}
?>
Ora, siccome le news, come detto sopra, vengono pubblicate sulla home page, ecco la struttura intera della pagine news.php (ossia la homepage appunto). Ora, espongo il mio quesito in merito. Nella pagina news.php vi sono differenti textimage (DIV Textarea appunto) all'interno delle quali inserisco testo ed immagine relativa all'articolo pubblicato.
Con la struttura esposta fino a questo momento ho si la possibilità di scegliere quale articolo pubblicare, ma non ho la possibilità, invece di decidere in quale sezione della home pubblicarla. Mi spiego meglio. Supponiamo vi siano 4 textimage (o textarea differenti) e voglio che l'articolo numero 4 sia pubblicato nella textarea numero 1 (o l'articolo numero 100 ad esempio, nel caso nel database vi siano più articoli).
Ma l'esempio può essere esteso anche alle tabelle. Pensavo infatti di inserire anche delle tabelle all'interno delle quali posizionare gli articoli. Ecco, Se ho più tabelle messe in varie posizioni nella pagina, come posso scegliere in quale pubblicare l'articolo?
Spero di essere stato chiaro. E' un problema che non riesco a risolvere e sinceramente non ho idea di quanto possa essere più o meno complicato.
Grazie a chi avrà la pazienza di rispondere e leggere il tutto.