Visualizzazione risultati 1 fino 18 di 18

Discussione: Ancora Problemi con PHP, graditissime le correzzioni!

  1. #1
    L'avatar di fpmbyfox
    fpmbyfox non è connesso Utente giovane
    Data registrazione
    25-08-2004
    Messaggi
    86

    Arrow Ancora Problemi con PHP, graditissime le correzioni!

    Salve gente,

    grazie ancora per avermi aiutato con il mio precedente problema.. Tutta colpa di uno stupidissimo "%" dimenticato... Ma vabbè...

    Ora sussiste un'altro problema. Ho il solito database in cui sono raccolte delle Frasi, e sto creando una pagina per visualizzarle secondo dei criteri.

    Questa spece di pagina "cerca" è strutturata con 4 (quattro) RadioButton (o OptionButton per i programmatori di VB), ognuno dei quali si riferisce ad una categoria di Frasi. Infatti le categorie cono quattro, Films, Poesie, Canzoni e Libri.

    I quattro RadioButton si chiamano rispettivamente "OPTcategoria" e il loro valore contiene il nome della gategoria (Es. value = "Films").

    Per ogni Radio Button ci sono 4 (quattro) Slect o Casella a discesa che dir si voglia (ComboBox per VB), nelle quali il contenuto è identico, ovvero, in alto "ALL" e in seguito tutte le lettere dell'alfabeto. Ciò al fine di cercare per ogni categoria una frase il cui titolo comincia per quella lettera. (Es. Seleziono "Frasi", seleziona la lettera "G" e mi vengono visualizzate le frasi di film che cominciano con la lettera "G" come ad esempio il "Gladiatore"; selezionando "ALL" mi dovrebbero essere visualizzate tutte le Frasi della categoria Films senza altre preferenze).

    Le combo si chiamano CMBlettera + la categoria, quindi:
    CMBletteraFilms
    CMBletteraPoesie
    CMBletteraCanzoni
    CMBletteraLibri

    Ho creato in PHP un if con due query che ora vi mostro ...

    Codice PHP:
    $VARCMBlettera = "CMBlettera" + $_POST['OPTcategoria'];

    if (
    $VARCMBlettera == "All")
    {
    $query = "SELECT * FROM ".$tablename." WHERE categoria='".$_POST['OPTcategoria']."' LIMIT ".$limit1.",".$limit2;
    }
    else
    {
    $query = "SELECT * FROM ".$tablename." WHERE categoria='".$_POST['OPTcategoria']."' and Titolo = LIKE '".$_POST[$VARCMBlettera]."%' LIMIT ".$limit1.",".$limit2;
    }
    Il risultato di questo if dovrebbe essere:

    Se nella combo interessata è selezionato "ALL" allora
    esegui questa query che mi visualizza tutta la categoria
    altrimenti
    esegui quest'altra query che mi visulizza, dalla categoria, solo le frasi il cui titolo comincia per la lettera selezionata

    Questo è quanto.

    Chiedo scusa per essemi dilungato, ma, credo di aver reso le cose di alquanto semplice comprensione.

    Confido nella vostra ennesima collaborazione.

    Vi ringrazio anticipatamente,
    Francesco
    Ultima modifica di fpmbyfox : 28-08-2005 alle ore 23.16.21

  2. #2
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Non ho capito cosa non funziona.

    P.S.: se gradisci correzioni, comincia a scriverlo con una "z" sola.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  3. #3
    Guest

    Predefinito

    la spiegazione è chiarissima ma nn hai detto che errore da, ne tanto meno se da errori:P

    cmq già a occhio posso dirti che nella secona query c'è un errore, e + precisamente qui:
    Codice:
    ...and Titolo = LIKE ...
    togli l'= se usi il LIKE ^_^

  4. #4
    L'avatar di fpmbyfox
    fpmbyfox non è connesso Utente giovane
    Data registrazione
    25-08-2004
    Messaggi
    86

    Arrow Come siamo pignoli!!

    Come siamo pignoli!!

    quando sono nervoso parlo anche in turco, e tu ti lamenti per un "Z" di troppo?

    E' Rafforzativa!

    Comunque, scherzi a parte il problema è questo;

    Ho un form dal quale effettuo una "ricerca" nel database:

    Ecco la pagina

    Nella parte superiore (perchè in quella pagina ci sono tre form per tre tipi di ricerca), nel form ~ Frasi tratte da : ~ , ci sono degli radiobutton per selezionare la categoria (Es. Films) e una select con le lettere dell'alfabeto più "ALL" (Es. Seleziono "All" per visualizzare tutta la categoria, seleziono la lettera se cerco le frasi un un film il cui titolo comincia per quella lettera).

    Il problema? Seleziono la lettera, mi escono le frasi, di quella categoria il cui titolo comincia per quella lettera, seleziono ALL e invece di mostare tutte quelle della categoria non mostra nulla...

    Ho apportato delle piccole modifiche che mi hanno consigliato amici di AV su Messenger, risultato fa l'esatto contrario di prima, cioè le mostrata tutte e non con la preferenza della lettera...

    Insomma, una vera bestia nera..

    Vabbè, signori, siete stati gentili e vi ringrazio,
    se trovate un soluzione o crederte di potermi aiutare fatemi sapere,
    altrimenti stravolgerò tutta la pagina organizzandola in modo differente.

    I miei ossequi,
    Francesco

  5. #5
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    $VARCMBlettera non potrà mai essere uguale a "All" perché gli aggiungi all'inizio dello script "CMBlettera".
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  6. #6
    L'avatar di fpmbyfox
    fpmbyfox non è connesso Utente giovane
    Data registrazione
    25-08-2004
    Messaggi
    86

    Arrow CMBlettera

    Ciao Funcool,

    grazie per aver risposto... Comunque sia, il problema non è proprio quello...

    Ti spiego:

    $VARCMBlettera è una variabile che ho creato per ottenere il nome della Select (o combo) che m'interessa.

    Mi spiego meglio, come già detto all'inizio, le select sono 4 (quattro) e si chiamano CMBletteraFilms, CMBletteraPoesie, CMBletteraLibri, CMBletteraCanzoni.

    Come puoi notare, sono nomi difersi, ma in comune hanno l'inizio del nome, ovvero CMBlettera.

    Quindi, se io seleziono il radio button della categoria "Films" di conseguenza devo prendere in considerazione la Select che si chiama CMBletteraFilms...

    Qui entra in ballo la $VARCMBlettera che deve contenere il nome della select interessata, in questo caso CMBletteraFilms...

    Come ottenerla?

    Sommo il testo "CMBlettera" (che è uguale per le 4 slect) e poi ci sommo il valore del radiobutton, in questo caso "Films".

    In teoria dovrei ottenere CMBletteraFilms...

    Capito?

    Quindi dov'è che sbaglio?

  7. #7
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Ma non potrà mai comunque essere uguale ad "All" e quindi non eseguirà la prima query ma cercherà tutti i titoli che contengono "All".
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  8. #8
    L'avatar di fpmbyfox
    fpmbyfox non è connesso Utente giovane
    Data registrazione
    25-08-2004
    Messaggi
    86

    Arrow

    Premettento che a me serve sapere se l'utente ha messo all o una lettere, come devo fare?

    mi serve saperlo perchè diventa la condizione dell'if

    if ($VARCMBlettera == "All")

    a meno chè non crei un mega if (perchè non so se in php esiste la "selct case" come in vb), facendo questo ragionamento...

    se la caregoria è

    Films allora la select da considerare è CMBletteraFilms

    se la caregoria è

    Poesie allora la select da considerare è CMBletteraPoesie

    se la caregoria è

    Canzoni allora la select da considerare è CMBletteraCanzoni

    altrimenti la select da considerare è CMBletteraLibri

    insomma... questo...

    cosi sa quale combo utilizzare...

    Ma ora non sai prei ne se potrebbe funzionare, ne se si potesse fare...

  9. #9
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Rileggendo il primo messaggio ho capito (forse):

    Codice PHP:
    $VARCMBlettera = "CMBlettera" + $_POST['OPTcategoria'];

    if (
    $_POST[$VARCMBlettera] == "All")
    {
    $query = "SELECT * FROM ".$tablename." WHERE categoria='".$_POST['OPTcategoria']."' LIMIT ".$limit1.",".$limit2;
    }
    else
    {
    $query = "SELECT * FROM ".$tablename." WHERE categoria='".$_POST['OPTcategoria']."' and Titolo = LIKE '".$_POST[$VARCMBlettera]."%' LIMIT ".$limit1.",".$limit2;
    }
    Prova...
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  10. #10
    L'avatar di fpmbyfox
    fpmbyfox non è connesso Utente giovane
    Data registrazione
    25-08-2004
    Messaggi
    86

    Predefinito

    Ciao, scusa se rispondo solo ora, ma ho appena letto il tuo messaggio...
    ho provato adesso proprio...
    putroppo niente...

    grazie per averci provato...

  11. #11
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Ho guardato il codice HTML di questa pagina, i tag <option> dovresti modificarli con <option value="A">A</option> e così via, se non fai così non passi nessun parametro.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  12. #12
    L'avatar di webscript
    webscript non è connesso Utente attivo
    Data registrazione
    28-11-2004
    Messaggi
    320

    Predefinito

    funcool :p

    <option>a</option>
    passa il parametro a

    <option value="b">a</option>
    passa il parametro b

    Non mettendo l'attributo value al tag option, il parametro che viene passato è quello tra i tag option.

    WebScript

  13. #13
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Citazione Originalmente inviato da webscript
    funcool :p

    <option>a</option>
    passa il parametro a

    <option value="b">a</option>
    passa il parametro b

    Non mettendo l'attributo value al tag option, il parametro che viene passato è quello tra i tag option.

    WebScript
    Non si finisce mai di imparare...
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  14. #14
    L'avatar di fpmbyfox
    fpmbyfox non è connesso Utente giovane
    Data registrazione
    25-08-2004
    Messaggi
    86

    Predefinito

    Ciao funcool...
    scusa se rispondo ora, ma mi sono reso conto solo adesso della tua graditissima risposta...
    Purtroppo ho provato e di funzionare non se ne parla...
    mi poresti controllare il codice della pagina php?
    Non so come inviare allegati sul forum... e non mi sembra il caso di postare quel paginone nel topic..
    Attendo una risposta...
    ciao ciao

  15. #15
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Inviamelo via e-mail, l'indirizzo lo trovi sul mio sito.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  16. #16
    L'avatar di fpmbyfox
    fpmbyfox non è connesso Utente giovane
    Data registrazione
    25-08-2004
    Messaggi
    86

    Talking Riscrittura del codice

    Salve gente...

    Ciao funcool... ho provato a fare quanto mi hai detto, ma niente...

    Cosi ho provato a rendere più "snello" e ottimizzato il codice...

    L'ho riscritto in questo modo...

    Ma ancora niente... Però cosi dovrebbe essere più facile da capire...

    Attendo vostri interventi...

    Grazie


    Codice PHP:
    //Nuovo Tentativo Creato da Francesco della FPM
    //Per ovviare ai problemi precedenti, adopero questo sistema sotto illustrato...

    //Identifico la categoria stabilita dall'utente...
    $VARcategoria = $_POST['OPTcategoria'];

    //Faccio un mega If per scegliere la lettera da considerare, in base alla categoria desiderata...
    if ($VARcategoria = "Films")
    {
    $VARlettera = $_POST['CMBletteraFilms'];
    }
    elseif (
    $VARcategoria = "Poesie")
    {
    $VARlettera = $_POST['CMBletteraPoesie'];
    }
    elseif (
    $VARcategoria = "Libri")
    {
    $VARlettera = $_POST['CMBletteraLibri'];
    }
    elseif (
    $VARcategoria = "Canzoni")
    {
    $VARlettera = $_POST['CMBletteraCanzoni'];
    }

    //Ora controllo se si tratta di una lettera o di tutta la categoria e quindi ho due query...
    if ($VARlettera = "All")
    {
    $query = "SELECT * FROM ".$tablename." WHERE categoria = $VARcategoria LIMIT ".$limit1.",".$limit2;
    }
    else
    {
    $query = "SELECT * FROM ".$tablename." WHERE categoria = $VARcategoria and Titolo LIKE $VARlettera LIMIT ".$limit1.",".$limit2;
    }

  17. #17
    L'avatar di fpmbyfox
    fpmbyfox non è connesso Utente giovane
    Data registrazione
    25-08-2004
    Messaggi
    86

    Talking Chi fa da se... fa per 3*3^2/2*425x+bzy^2*4... insomma, meglio, tanto meglio...

    Ci sono riuscito da solo!!!!!!

    Chi fa da se... fa per 3*3^2/2*425x+bzy^2*4... insomma, meglio, tanto meglio...

    Codice PHP:
    //Nuovo Tentativo Creato da Francesco della FPM
    //Per ovviare ai problemi precedenti, adopero questo sistema sotto illustrato...

    //Identifico la categoria stabilita dall'utente...
    $VARcategoria = $_POST['OPTcategoria'];

    //Faccio un mega If per scegliere la lettera da considerare, in base alla categoria desiderata...
    if ($VARcategoria = "Films")
    {
    $VARlettera = $_POST['CMBletteraFilms'];
    }
    elseif (
    $VARcategoria = "Poesie")
    {
    $VARlettera = $_POST['CMBletteraPoesie'];
    }
    elseif (
    $VARcategoria = "Libri")
    {
    $VARlettera = $_POST['CMBletteraLibri'];
    }
    elseif (
    $VARcategoria = "Canzoni")
    {
    $VARlettera = $_POST['CMBletteraCanzoni'];
    }

    //Ora controllo se si tratta di una lettera o di tutta la categoria e quindi ho due query...
    if ($VARlettera == "All")
    {
    $query = "SELECT * FROM ".$tablename." WHERE categoria = '$VARcategoria' LIMIT ".$limit1.",".$limit2;
    }
    else
    {
    $query = "SELECT * FROM ".$tablename." WHERE categoria = '$VARcategoria' and Titolo LIKE '$VARlettera%' LIMIT ".$limit1.",".$limit2;
    }

  18. #18
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Solo per l'uguale?
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

Regole di scrittura

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