- Home
- Categorie
- Coding e Sistemistica
- Coding
- Problema Query
- 
							
							
							
							
							
Problema QuerySalve a tutti  ho dei problemi relativi ad una query..ho un database con due tabelle docdigi e sottolivelli; sottolivelli è legata a docdigi dal numero del documento in comune (infatti elenca i sottolivelli di alcuni documenti, sempre che ce ne siano) e io voglio che un utente tramite un form in cui inserisce una parola chiave possa fare una query in entrambe le tabelle. Ho provato di tutto, ma o non mi visualizza alcun risultato (pur non segnalandomi alcun errore) o sennò mi visualizza i record corrispondenti alla ricerca di una delle due tabelle. Vi scrivo il mio ultimo tentativo, spero che qualcuno possa aiutarmi  :bho: :bho: "SELECT docdigi., sottolivelli. " . 
 "FROM docdigi " .
 "JOIN sottolivelli " ."ON docdigi_docnum = sottolivelli_docnum " . "WHERE sottolivelli_nome LIKE '$keywordstre%'" . "AND docdigi_desc LIKE '%$keywordstre%'";** $keywords tre è il nome del campo del form dove l'utente digita la parola chiave. 
 
- 
							
							
							
							
							
prova questa: "SELECT docdigi., sottolivelli. 
 FROM docdigi
 JOIN sottolivelli
 ON docdigi_docnum = sottolivelli_docnum
 WHERE sottolivelli_nome LIKE '$keywordstre%'
 or docdigi_desc LIKE '%$keywordstre%'";p.s. non serve concatenare le stringhe, php termina l'istruzione quando trova il ; 
 
- 
							
							
							
							
							
@Tymba said: prova questa: "SELECT docdigi., sottolivelli. 
 FROM docdigi
 JOIN sottolivelli
 ON docdigi_docnum = sottolivelli_docnum
 WHERE sottolivelli_nome LIKE '$keywordstre%'
 or docdigi_desc LIKE '%$keywordstre%'";p.s. non serve concatenare le stringhe, php termina l'istruzione quando trova il ; Nulla, non dà errori ma non trova niente, io non riesco proprio a capire x' faccia così  
 
- 
							
							
							
							
							
prova a dirci com'è la struttura della tabella che vediamo di trovare la soluzione  
 
- 
							
							
							
							
							
allora questa è la struttura: $query = "CREATE TABLE docdigi ( 
 docdigi_docnum INT (6) NOT NULL AUTO_INCREMENT,
 docdigi_nome VARCHAR (20) NOT NULL,
 docdigi_consistenza CHAR (7) NOT NULL,
 docdigi_livelli TEXT NOT NULL,
 docdigi_cron VARCHAR (40) NOT NULL,
 docdigi_desc TEXT NOT NULL,
 docdigi_bibl TEXT NOT NULL,
 PRIMARY KEY (docdigi_docnum))";$query3 = "CREATE TABLE sottolivelli ( 
 sottolivelli_docnum INT (6) NOT NULL,
 sottolivelli_nome VARCHAR (20) NOT NULL,
 sottolivelli_cron VARCHAR (40) NOT NULL,
 sottolivelli_consistenza VARCHAR (40) NOT NULL,
 KEY (sottolivelli_docnum))";
 
- 
							
							
							
							
							$keywords è una variabile php? Se sì è normale... lo hai messo tra gli apici. Prova così: 
 "SELECT docdigi., sottolivelli.
 FROM docdigi
 JOIN sottolivelli
 ON docdigi_docnum = sottolivelli_docnum
 WHERE sottolivelli_nome LIKE '%".$keywordstre".%'
 or docdigi_desc LIKE '%".$keywordstre."%';";ed attento al fatto che scrivere query così è pericolosetto. 
 Controlla che tipo di dati passi con quelle variabili, controlla che non possa mettere commenti e così via. 
 
- 
							
							
							
							
							
Si è una variabile, grazie così va!          @massy said: $keywords è una variabile php? Se sì è normale... lo hai messo tra gli apici. Prova così: 
 "SELECT docdigi., sottolivelli.
 FROM docdigi
 JOIN sottolivelli
 ON docdigi_docnum = sottolivelli_docnum
 WHERE sottolivelli_nome LIKE '%".$keywordstre".%'
 or docdigi_desc LIKE '%".$keywordstre."%';";ed attento al fatto che scrivere query così è pericolosetto. 
 Controlla che tipo di dati passi con quelle variabili, controlla che non possa mettere commenti e così via.