- Home
- Categorie
- Coding e Sistemistica
- PHP
- Problema Query
-
Problema Query
Salve 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:
"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.