Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    443

    Select MYSQL - valore di default

    Quale valore devo dare alla variabile GET "id_galleriatemi", in una select box, per ottenere tutti i record dalla seguente query?


    SELECT galleria_foto.id_galleria_foto, galleria_foto.id_galleriatemi
    FROM (
    galleria_foto
    LEFT JOIN galleria_temi ON galleria_temi.id_galleria_temi = galleria_foto.id_galleriatemi
    )
    WHERE galleria_foto.visualizzare = 'Y'
    AND galleria_temi.visualizzare = 'Y'
    AND galleria_foto.id_galleriatemi = ".$HTTP_GET_VARS["id_galleriatemi"]."
    ORDER BY galleria_foto.data_evento DESC

    Grazie per l'aiuto

  2. #2
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    AND galleria_foto.id_galleriatemi = ".$HTTP_GET_VARS["id_galleriatemi"]."

    Devi togliere questo pezzo dalla query

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    443
    Grazie,

    io fatto così, ma non riesco a rendermi conto se ho imboccato la strada giusta, anche se funziona:

    if (($HTTP_GET_VARS['id_galleriatemi']) == "tutte_le_immagini") {
    SELECT galleria_foto.id_galleria_foto, galleria_foto.id_galleriatemi
    FROM (
    galleria_foto
    LEFT JOIN galleria_temi ON galleria_temi.id_galleria_temi = galleria_foto.id_galleriatemi
    )
    WHERE galleria_foto.visualizzare = 'Y'
    AND galleria_temi.visualizzare = 'Y'
    ORDER BY galleria_foto.data_evento DESC}

    else {

    SELECT galleria_foto.id_galleria_foto, galleria_foto.id_galleriatemi
    FROM (
    galleria_foto
    LEFT JOIN galleria_temi ON galleria_temi.id_galleria_temi = galleria_foto.id_galleriatemi
    )
    WHERE galleria_foto.visualizzare = 'Y'
    AND galleria_temi.visualizzare = 'Y'
    AND galleria_foto.id_galleriatemi = ".$HTTP_GET_VARS["id_galleriatemi"]."
    ORDER BY galleria_foto.data_evento DESC }

    Mi diresti se si può risolvere così o se esiste un modo più semplice?

    Grazie

  4. #4
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    codice:
    if (($HTTP_GET_VARS['id_galleriatemi']) == "tutte_le_immagini") {
       $condSupp = '';
    } else {
       $condSupp = "AND galleria_foto.id_galleriatemi = '".$HTTP_GET_VARS["id_galleriatemi"] . "'";
    }
    
    $query = <<<EOD
    SELECT galleria_foto.id_galleria_foto, galleria_foto.id_galleriatemi
    FROM (
    galleria_foto
    LEFT JOIN galleria_temi ON galleria_temi.id_galleria_temi = galleria_foto.id_galleriatemi
    )
    WHERE galleria_foto.visualizzare = 'Y'
    AND galleria_temi.visualizzare = 'Y'
    $condSupp
    ORDER BY galleria_foto.data_evento DESC 
    <<<EOD;
    A parte questo, un po' di controlli sul valore ricevuto in input non farebbe schifo....

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    443
    Grazie 1000, sei stato disponibilissimo,

    Ti posso chiedere che cosa intendi per

    "A parte questo, un po' di controlli sul valore ricevuto in input non farebbe schifo...."

  6. #6
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Significa che passi alla query il valore ricevuto in $_GET senza fare controlli, che non è una mai una grande idea.
    Non so se l'hai notato, ma nel mio codice ho aggiunto gli apici dentro la query intorno al valore dell'id_galleria.
    Già questo può evitare problemi di tipo sql injection, ma se, come suppongo, quello deve essere un valore numerico, faresti bene ad accertarti che lo sia davvero, prima di darlo in pasto al database.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    443
    Grazie del tuo prezioso suggerimento

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.