Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    114

    Spezzare un record troopo lungo

    CIAO,
    forse il titolo non è molto "tecnico" ....comunque,ho questo problema.
    Devo inserire 3 valori ricavati da un database in 3 celle su una stessa riga.Il problema è che mi si sfasa la tabella...Come spiegato in un precedente messaggio, credevo che il problema fosse la formattazione della tabella o delle celle....in realtà ho riscontrato che inserendo del testo (anche molto lungo) al posto delle variabili,tutto funziona bene e quando la larghezza del testo supera quella della cella in questione, va a capo all'interno della cella stessa (perfetto!!).
    Quando però al posto del testo vado ad inserire un record(contenente sempre testo),se questo occupa più spazio della larghezza della cella..anzicchè andare a capo all'interno della cella, la sfasa...sfasando di conseguenza tutta la tabella e la pagina.

    La parte di codice che adopero è questa e il record in questione è ".$results['messaggio']." :

    echo"<div align=\"center\">
    <table border=\"0\" width=\"757\" cellspacing=\"0\" cellpadding=\"0\" height=\"410\" style=\"border-left:1px solid #C0C0C0; border-right:1px solid #C0C0C0; border-top-width: 1px; border-bottom-width: 1px; border-top-color:#C0C0C0; border-bottom-color:#C0C0C0\">";

    while($results = mysql_fetch_array($query_limit)) {

    echo "<tr valign=\"top\">
    <td width=\"157\" valign=\"top\" height=\"50\">
    <p align=\"center\">".$results['nome'] ."</td><td valign=\"top\" width=\"300\" height=\"50\">
    <p align=\"left\">".$results['messaggio'] ."</td>
    <td valign=\"top\" width=\"300\" height=\"50\"><font size=\"2\">
    <p align=\"left\">inserito".$results['data'] ." alle".$results['ora'] ."</font></td>
    </tr>";
    echo "</table></div>";

    Non so proprio come risolvere....Magari si potrebbe spezzare ".$results['messaggio'] ." a un numero definito di caratteri e poi farlo andare a capo nella cella stessa...ma non so nè se si può,nè come,nè tantomeno come e dove inserire un'eventuale porzione di codice in questo contesto.
    Potreste darmi una mano???
    GRAZIE MILLE

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    114
    ciao,
    ho provato la funzione wordrap
    il problema è che non riesco ad inseirla nel mio codice....
    se faccio così:

    //posto solo la parte in questione(quella relativa al ciclo while)

    while($results = mysql_fetch_array($query_limit)) {
    echo "<tr valign=\"top\">
    <td width=\"157\" valign=\"top\" height=\"50\">
    <p align=\"center\">".$results['nome'] ."</td><td valign=\"top\" width=\"300\" height=\"50\"><p align=\"left\">"wordwrap($results['messaggio'], 15, "
    \n")"</td>
    <td valign=\"top\" width=\"300\" height=\"50\"><font size=\"2\">
    <p align=\"left\">inserito".$results['data'] ." alle".$results['ora'] ."</font></td>
    </tr>";

    }

    Mi restituisce errore (ho provato anche senza virgolette...)
    Se invece definisco (prima del ciclo while) una variabile del tipo :
    $mess = wordwrap($results['messaggio'], 15, "
    \n");
    e vado poi ad inserire questa $mess nella cella in questione , il risultato è che stampa correttamente a video tutto il resto ma le celle che dovrebbero contenere questi benedetti messaggi risultano vuote...quindi non legge $mess.

    Scusate se il codice è un pò incasinato (ma almeno è piuttosto breve).
    Potreste darmi una mano per favore??
    Grazie davvero tanto!

  3. #3
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    non hai messoi punti prima e dopo la funzione wordwrap.
    che editor usi? io ho zend e mi segnala l'errore della sintassi appunto...
    Se vuoi altri consigli scrivi

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.