PDA

View Full Version : [php]sito editroiale con limite a caretteri


MasterDany
30-03-2008, 13:22
ciao a tutti ho quasi completato il mio sito editorial con newsletter ect. Mi maanca solo uno script.Infatti ho deciso di utilizzare una layout fisso!Ed ho un problema quando scrivo gli articoli più lungi il testo ovviamente va fuori dal div perciò dovrei fare uno script che stoppa i caratteri della pagina e ne crea altri ecco lo script della pagina:



<?php

$mysql = new mysqli('localhost', 'root', '', 'html_it_articles');
if(!$mysql)
{
die("Errore di connessione al database, impossibile procedere");
}

if(!isset($_GET['id']))
{
header('Location: index.php');
}

$article = $mysql->query("
SELECT
AR.id AS id,
AR.title AS title,
AR.article AS content,
CONCAT(AU.surname, ' ', AU.name) AS author
FROM
articles AR,
authors AU
WHERE
AR.author_id = AU.id AND
AR.id = ".$_GET['id'])->fetch_assoc();
?>
<html>
<head>
<title>Articolo (<?php echo $article['id']; ?>)</title>
</head>
<body>


<h3><?php echo $article['title']; ?></h3>
<i><?php echo $article['author']; ?></i>
<p>
<?php echo $article['content']; ?>
</p>
</body>
</html>

avevo pensato di fare una cosa:
dichiarare una variabile di caratteri

$limit=200;


mettre questo nella select:

LIMIT ".(($page - 1) * $limit).",".$limit);

mettere quest oalla fine del div:

<p>Pagina <?php echo $page; ?> di <?php echo $totals_pages; ?> <br />
<?php
if($page - 1 > 0)
{
echo '<a href="?p='.($page - 1).'">&lt; prev</a> | ';
}else
{
echo '&lt; prev | ';
}
if($page + 1 <= $totals_pages)
{
echo '<a href="?p='.($page + 1).'">next &gt;</a>';
}else
{
echo 'next &gt;';
}
?>
</p>

M anaturalemnete non funziona...qualcuno sa dirmi come posso fare?

wizard1993
30-03-2008, 13:41
in javascript assegni tutto il testo a una stringa e da li testi la lunghezza della variabile, semplice e veloce

MasterDany
30-03-2008, 13:42
se l'utente tiene il javascript disattivato?

wizard1993
30-03-2008, 14:46
questo è il problema, il javascript disattivato
altrimenti se sfrutti un un database per memorizzare gli articoli imposti il campo alla dimensione massima e il reso viene semplicemente ignorato,
non conosco il php, quindi ti posso dare esempi di come farei in altri linguaggi

MasterDany
30-03-2008, 14:47
si ma se devo fare un articolo più lungo?:mc:

dad_89
30-03-2008, 18:43
Ma scusa non fai prima a farti una funzioncina dove passi la stringa dell'articolo (cioè la query) e la confronti con il limite massimo i caratteri che tu hai prefissato, se è minore o uguale allora ritorni la query normale passata, altrimenti la tronchi con substr() (http://www.php.net/substr), tipo così:

function text($t, $limit = 200){
if(strlen($t)) <= $limit) return $t;
else return $t = substr($t, 0, $limit);
}

MasterDany
31-03-2008, 17:00
potresti scrivermi tutto?:cool:

dad_89
01-04-2008, 01:00
Eh scusami più di quello che vuoi che ti scriva? ...