Salve ragazzi,
ripropongo il problema sotto altra forma, forse più comprensibile. Allora, il fatto è questo. Ho costruito un'area amministrazione per il mio sito (anche grazio al fondamentale aiuto di Drugo), attraverso la quale sia possibile gestire inserimento di news e decidere quale mettere in linea (o pubblicare) in home page.
Il tutto è stato realizzato attraverso l'inserimento nella tabella "articoli" di un campo numerico denominato PUB, al quale viene appunto assegnato un nuemero. Attraverso la scelta del numero, la news viene pubblicata in home page. Se il numero è zero, allora viene tolta la news pubblicata.
Per capirci, riporto il codice php del file "scegli.php", ossia quello che permette la scelta del numero.
<?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 posto il codice della home page, ossia la pagina dove vengono pubblicate le news. Come si può vedere, le news vengono inserite in dei contenitori di testo ed immagine, ossia dei DIV Textimage:
<div id="content">
<?php
include("config.php");
mysql_connect($db_host, $db_user, $db_password, $db_name) or die ("non riesco a connettermi");
mysql_select_db("$db_name") or die ("Non riesco a selezionare il database");
$dati = mysql_query("SELECT art_id, titolo, sottotitolo, testo, immagine, date_format(data,'%d-%m-%Y %H:%i') AS dataora FROM articoli WHERE pub > 0 ORDER BY pub ASC");
$n = mysql_num_rows($dati);
if($n == 0)
{
echo "Non ci sono news al momento";
}
else
{
while($array = mysql_fetch_array($dati))
{
?>
<div class="news_content">
<div class="textimage">[img]show.php?id=<?php echo $array['art_id']; ?>[/img] </div>
<?php echo "".$array['titolo']."";
?>
<?php echo $array['sottotitolo'];
?>
<?php
$swap = explode(" ", $array['testo'], 21);
foreach($swap as $key => $val) if($key < 20) echo $val." ";
echo ".....
";
echo "<a href=\"page.php?id=".$array['art_id']."\">leggi</a>";
?>
<?php
echo "Pubblicato il ".substr($array ['dataora'],0,10)." alle ". substr($array ['dataora'],11,5);
?>
<div class="news_clear"></div>
</div>
<?php
}
}
mysql_close();
?>
Ora, il mio problema è questo. Con questo metodo mi è possibile stabilire quale news mettere in home page anche se vi fossero un numero illimitato di news. Posso scegliere si quali mettere in linea, inserendo un numero diverso da zero, ma non posso decidere in quale area della home page metterlo. Ossia, se nella pagina news.php ho innumerevoli DIV Textimage, disposte magari alcune verticalmente ed altre orizzontalmente, come posso fare per scegliere in quale di queste pubblicare le news.
Ossia, esempio semplice, come se al DIV Textimage che deve ospitare la notizia più importante, venga associate l'articolo 35 e non il 46 (ad esempio).
Avevo pensato ad una soluzione, ossia quella di inserire altri campi nella tabella, oltre a quello PUB. Ad esempio inserire un campo che sia possibile indicizzare con delle lettere (in modo che poi, nel file scegli.php, possa scegliere di inserire un numero o una lattera e quindi quale articolo) oppure cercare di associare ad ogni DIV Textarea un parametro che poi mi permetta di associarlo ad un articolo a scelta.
Insomma, è l'ultima fase dello sviluppo del mio sito. Spero di essere stato più chiaro nella spiegazione..
Qualche spiegazione in merito?