Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    selezionare una parte di un campo... da mysql

    Ciao, ho un db MySQL con una campo Text contenente molto testo per ogni singolo record. Ho l'esigenza di stampare a video una parte (la parte iniziale) di questo campo testo e dato che ho tantissimi records, vorrei non appesantire troppo il recordset e quindi selezionare subito in partenza, che so... solo i primi 100 caratteri, direttamente da MySQL, di quel campo
    Come deve essere formulata questa SELECT?!

  2. #2
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    think simple think ringo

  3. #3
    Ho guardato il link e non ho capito ugualmente come fare.
    Se io adotto questa soluzione:
    SELECT id, titolo, data, SUBSTRING(descrizione,1,300), disponibile FROM discografia WHERE serie !='Distribuzione' ORDER BY data DESC
    Non ho niente nel campo descrizione, nel recordset risultante. Perchè?
    Anche così non ottengo niente:
    SELECT id, titolo, data, SUBSTRING('descrizione',1,5), disponibile FROM discografia WHERE serie !='Distribuzione' ORDER BY data DESC
    Non ho niente nel campo descrizione, nel recordset risultante. Perchè?

    Mentre con
    SELECT * FROM discografia WHERE serie !='Distribuzione' ORDER BY data DESC
    ho nei singoli records estratti da php il campo descrizione con il contenuto corretto.

    HELP!

  4. #4
    codice:
    SELECT id, titolo, data, 
    SUBSTRING(descrizione,1,300) AS descrizione, disponibile 
    FROM discografia 
    WHERE serie !='Distribuzione' 
    ORDER BY data DESC

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Continua a non funzionare!
    Scusate ma o sono rincitrullito io oppure è sbagliata la formulazione della SELECT.
    Anche questa non va:
    $query = "SELECT id, titolo, artista, serie, catalogo, data, prezzo, disponibile, cop_piccola, SUBSTRING(descrizione,1,300) AS descrizione FROM discografia WHERE serie !='Distribuzione' ORDER BY data DESC";

    Cioè seleziona tutto il richiesto (normalmente), escluso il campo "descrizione".
    Non è che questo tipo di funzione non è compatibile con le SELECT da PHP verso MySQL o sto dicendo cazzate?!

    RIHELP!!!

  6. #6
    La select e' una cosa, la visualizzazione un'altra.

    Quello che non ti funziona e' la visualizzazione. Posta le righe di script inerenti la visalizzazione. Sempreche' tu non riceva una segnalazione di errore che non viene visualizzata.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    Grazie per il tuo interessamento, spiego meglio il problema.
    Io ho questo:
    $query = "SELECT * FROM discografia WHERE serie !='Distribuzione' ORDER BY data DESC";
    $result = mysql_query($query, $db);

    while ($rows=mysql_fetch_array($result)) {
    $descrizione = substr($rows[descrizione], 0, 300);

    ... lo script poi continua (e funziona) mostrando a video il richiesto.

    Come vedi ho usato la funzione PHP substr, per prendere solo la prima parte del contenuto del campo descrizione.
    Ho letto da qualche parte che è meglio non appesantire troppo il recordset e dato che in questo campo ci sono molti record che hanno tantissimo testo, volevo trovare un comando direttamente nella SELECT che permettesse di prendere solo la parte interessata del campo in modo da non appensantire il recordset con contenuto che comunque non servirebbe.

    Sapresti aiutarmi?

  8. #8
    Utente di HTML.it L'avatar di deleted_id_48586
    Registrato dal
    Nov 2002
    Messaggi
    1,732
    la query mi pare giusta credo che piero.mac abbia centrato il problema ovvero dovrebbe essere solo un problema di visualizzazione.

  9. #9
    Cioè?
    Mi sembra di capire, quindi, che una cosa come voglio fare io non si può fare direttamente nella SELECT.
    Cioè non è possibile selezionare solo una parte di un campo testo direttamente dalla SELECT?! Mi sembra strano...
    Forse non abbiamo trovato la sintassi giusta.
    Che dite?!

  10. #10
    [supersaibal]Originariamente inviato da cemsal
    Cioè?
    Mi sembra di capire, quindi, che una cosa come voglio fare io non si può fare direttamente nella SELECT.
    Cioè non è possibile selezionare solo una parte di un campo testo direttamente dalla SELECT?! Mi sembra strano...
    Forse non abbiamo trovato la sintassi giusta.
    Che dite?! [/supersaibal]
    No. la sintassi e' corretta.

    si puo' fare tranquillamente. Il risultato lo trovi nell'alias:
    codice:
    SELECT *, 
    SUBSTRING(descrizione,1,300) AS descrizione
    FROM discografia 
    WHERE serie !='Distribuzione' 
    ORDER BY data DESC
    formalmente e' corretto. Il problema e' nella "VISUALIZZAZIONE"...


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.