Visualizzazione dei risultati da 1 a 6 su 6

Discussione: problema con una JOIN

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    118

    problema con una JOIN

    Ciao ragazzi,

    ho dei problemi con una JOIN e non so dove sbaglio...

    non sono molto brava

    codice:
    TABELLA DATI
    
    CREATE TABLE  `dati` (
      `id` int(11) NOT NULL auto_increment,
      `regione_id` int(11) default NULL,
      `categoria` varchar(45) default NULL,
      `descrizione` text,
      `img_artecultura` varchar(15) default NULL,
      PRIMARY KEY  (`id`),
      KEY `regione_id` (`regione_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
    
    TABELLA REGIONE
    
    CREATE TABLE  `REGIONE` (
      `id` int(11) NOT NULL auto_increment,
      `nomeregione` varchar(45) default NULL,
      `codreg` varchar(3) default NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;
    Devo recuperare dei dati tramite una query usando della variabili che arrivano dall'url:

    Codice PHP:
    pagina.php?codreg=cal&categoria=arte 
    quindi recuperando le variabili

    Codice PHP:
    $codreg $_GET['codreg'];
    $categoria $_GET['categoria'];

    creo la query

    $query 
    "SELECT * 
              FROM dati
              INNER JOIN regione ON dati.id = dati.regione_id
              WHERE REGIONE.codreg = 
    $codreg";
    ....
    ecc... 

    mi dice: Unknown column 'cal' in 'where clause'

    (cal è il valore della variabile $codreg che passo nell'url)

    non capisco come deve essere

    praticamente io passo queste due variabili (qui ne ho solo usato una)

    la variabile $codreg ha dei valori presenti nella tabella REGIONE, tutto questo per recuperare, in questo caso, il nomeregione nella tabella REGIONE e altri dati nella tabella DATI

  2. #2
    e' una stringa, servono le apici:

    WHERE REGIONE.codreg = '$codreg'

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

  3. #3
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Codice PHP:
    $query "SELECT *
              FROM dati
              INNER JOIN regione ON dati.id = dati.regione_id
              WHERE REGIONE.codreg = '
    $codreg'"
    Ma attenzione, così lo script è apertissimo per un SQL injection.

    codice:
    pagina.php?codreg=cal';TRUNCATE%20TABLE%20dati%20--&categoria=arte

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    118
    ciao ragazzi, grazie.

    Neroux come lo proteggo in maniera semplice?

  5. #5
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Originariamente inviato da lorymacri
    ciao ragazzi, grazie.

    Neroux come lo proteggo in maniera semplice?
    Quella più semplice sarebbe

    Codice PHP:
    $codreg mysql_real_escape_string($_GET['codreg']); 

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    118
    ok grazie
    lory

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.