Visualizzazione risultati 1 fino 11 di 11

Discussione: Recupero solo un certo numero di caratteri da Mysql

  1. #1
    adminreluca non è connesso Utente
    Data registrazione
    06-03-2006
    Messaggi
    112

    Predefinito Recupero solo un certo numero di caratteri da Mysql

    Ciao Ragazzi!
    Sono di nuovo qui a rompere...

    Allora praticamente per il mio shop genero una lista li prodotti come dal codice seguente, il problema è che io vorrei recuperare ad esempio solo 250 caratteri dalla $row["descrizione_prodotto"].

    Come si fa? E' possibile vero?
    Comunque il campo della descrizione è in formato TEXT.



    Codice PHP:
    $rs = mysql_query("SELECT * FROM shop_prodotti WHERE categoria='$ref_cat' ORDER BY id ");
    $nr = mysql_num_rows($rs);
    if (
    $nr != 0){
    for(
    $x = 0; $x < $nr; $x++){
    $row = mysql_fetch_assoc($rs);
    echo
    "<form action='?inviodati=ok' method='POST'>";
    echo
    "<table width=\"650\" border=\"0\">";
    echo
    " <tr>";
    echo
    " <td width=\"123\" rowspan=\"4\"><a href=\"shop_mostra_scheda_prodotto.php?ref_id=".$row["id"]."\"><img src=\"".$row["img_1"]."\" width=\"120\"></a></td>";
    echo
    " <td colspan=\"4\"><a href=\"shop_mostra_scheda_prodotto.php?ref_id=".$row["id"]."\">".$row["nome_prodotto"]."</a></td>";
    echo
    " </tr>";
    echo
    " <tr>";
    echo
    " <td width=\"232\">Prezzo: ".$row["prezzo_unitario"]." euro</td>";
    echo
    " <td colspan=\"3\">Codice riferimento: ".$row["id"]."</td>";
    echo
    " </tr>";
    echo
    " <tr>";
    echo
    " <td colspan=\"4\">".$row["descrizione_prodotto"]."</td>";
    echo
    " </tr>";
    echo
    " <tr>";
    echo
    " <td colspan=\"4\"><div align=\"right\">Quantit&agrave;*";
    echo
    " <label>";
    echo
    " <input name=\"quantita\" type=\"text\" id=\"quantita\" value=\"1\" size=\"6\" maxlength=\"3\">";
    echo
    " <input type=\"submit\" name=\"button\" id=\"button\" value=\"Aggiungi al carrello\">";
    echo
    " </label></div></td>";
    echo
    " </tr>";
    echo
    " <tr>";
    echo
    " <td colspan=\"5\"><hr size=\"1\"></td>";
    echo
    " </tr>";
    echo
    "</table>";
    echo
    "</form>";
    }
    }else{
    echo
    "Nessun prodotto inserito.";
    }

    ?>

  2. #2
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,247

    Predefinito

    Potresti usare LIMIT.
    Ovvero aggiungere alla query "LIMIT 250".

    EDIT:
    Scusa, ho letto male la richiesta.
    Comunque, puoi usare la substr() per limitare il numero di caratteri. Esempio:
    Codice PHP:
    $descrizione = substr($row["descrizione_prodotto"],0,250);
    Ciao!
    Ultima modifica di alemoppo : 10-04-2012 alle ore 22.05.12

  3. #3
    adminreluca non è connesso Utente
    Data registrazione
    06-03-2006
    Messaggi
    112

    Predefinito

    oh grazie, adesso la provo, ma direi che non dovrei avere problemi

  4. #4
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,269

    Predefinito

    Oddio quanti echo. Perché non scrivi così?

    Codice PHP:
    <?php

    // ...

    if ($nr != 0)
    {
    for(
    $x = 0; $x < $nr; $x++)
    {
    $row = mysql_fetch_assoc($rs);
    ?>

    <form action='?inviodati=ok' method='POST'>
    <table width="650" border="0">
    <tr>
    <td width="123" rowspan="4"><a href="shop_mostra_scheda_prodotto.php?ref_id="<?= $row['id'] ?>"><img src="<?= $row['img_1'] ?>" width="120"></a></td>
    <td colspan="4"><a href="shop_mostra_scheda_prodotto.php?ref_id=<?= $row['id'] ?>"><?= $row['nome_prodotto'] ?></a></td>
    </tr>
    <tr>
    <td width="232">Prezzo: <?= $row['prezzo_unitario'] ?> euro</td>
    <td colspan="3">Codice riferimento: <?= $row['id'] ?></td>
    </tr>
    <tr>
    <td colspan="4"><?= $row['descrizione_prodotto'] ?></td>
    </tr>
    <tr>
    <td colspan="4"><div align="right">Quantit&agrave;*
    <label>
    <input name="quantita" type="text" id="quantita" value="1" size="6" maxlength="3">
    <input type="submit" name="button" id="button" value="Aggiungi al carrello">
    </label></div></td>
    </tr>
    <tr>
    <td colspan="5"><hr size="1"></td>
    </tr>
    </table>
    </form>

    <?
    }
    } else {
    echo
    "Nessun prodotto inserito.";
    }

  5. #5
    adminreluca non è connesso Utente
    Data registrazione
    06-03-2006
    Messaggi
    112

    Predefinito

    ma cosi se ho tre prodotti ad esempio da mostrare nella stessa pagina, non mi crea tre tabelle diverse. o sbaglio?

  6. #6
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,269

    Predefinito

    Non ho idea di cosa faccia il codice, e non ne ho modificato il funzionamento.

    Ho solo fatto copia e incolla del tuo, e sostituito i mille echo con un paio di tag ?> ... <?. Il risultato è lo stesso identico output, ma il codice è più facile da leggere, non devi preoccuparti delle virgolette, ed inserire variabili è questione di aggiungere un <?= ... ?>.

    Per spezzoni di html così grossi, di solito conviene.

  7. #7
    adminreluca non è connesso Utente
    Data registrazione
    06-03-2006
    Messaggi
    112

    Predefinito

    no no, hai ragione, l'ho provato ora per una pagina ed è molto piu comodo. grazie mille!

  8. #8
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,269

    Predefinito

    Il passo successivo, anche se un po' più delicato, è usare extract(). La funzione prende un array associativo (come il tuo $row) e crea le variabili php corrispondenti agli elementi dell'array.

    Ad esempio:
    Codice PHP:
    <?php

    // ...

    extract($row);
    ?>

    <tr>
    <td width="232">Prezzo: <?= $prezzo_unitario ?> euro</td>
    <td colspan="3">Codice riferimento: <?= $id ?></td>
    </tr>
    <tr>
    <td colspan="4"><?= $descrizione_prodotto ?></td>

    <?

    // etc...
    A seconda dei casi, anche questo può essere utile.

  9. #9
    adminreluca non è connesso Utente
    Data registrazione
    06-03-2006
    Messaggi
    112

    Predefinito

    ma con extract() posso ad esempio scrivere $prezzo = $prezzo_unitario?
    dopo mi prende un solo prezzo unitario o tutti quelli dell'array?

  10. #10
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,269

    Predefinito

    La variabile $prezzo_unitario conterrà solo un valore, quello dell'ultima $row che hai "estratto".

  11. #11
    adminreluca non è connesso Utente
    Data registrazione
    06-03-2006
    Messaggi
    112

    Predefinito

    ho capito! beh ti ringrazio molto, perche sto iniziando ad usare il primo suggerimento che mi hai dato ed è molto più comodo che stare li ad inserire gli echo, \, ", ecc.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •