Query restituisce sempre 0 valori

Antonio102

Utente Attivo
12 Set 2014
36
0
6
Ciao a tutti, ho un problema con una query. La tabella 'vocabolario' su cui sto eseguendo la query e' composta da 2 colonne, 'id' (primary, ai) e 'vocabolo' (varchar, max 100), mentre la query in questione e' la seguente

Codice:
SELECT 'id' FROM `vocabolario` WHERE vocabolo='abate'

dove sta l'errore? Perche' ritorna sempre 0 righe?
 

felino

Utente Attivo
12 Dic 2013
929
10
18
Aci Catena (Catania)
La query è corretta, prova:
1) ad eseguirla direttamente nel tuo database tramite phpmyadmin
2) esistono record che soddisfano la tua query? Sei sicuro? Sempre tramite phpmyadmin, posizionati nella tabella desiderata e utilizzando la funziona "cerca", cerca il vacobolo "ABATE".
 

Antonio102

Utente Attivo
12 Set 2014
36
0
6
La query è corretta, prova:
1) ad eseguirla direttamente nel tuo database tramite phpmyadmin
2) esistono record che soddisfano la tua query? Sei sicuro? Sempre tramite phpmyadmin, posizionati nella tabella desiderata e utilizzando la funziona "cerca", cerca il vacobolo "ABATE".

1) provata sempre direttamente da phpmyadmin
2) restituisce sempre 0 righe, ti allego uno screen del database

db.jpg
 

Antonio102

Utente Attivo
12 Set 2014
36
0
6
Scusami, ma colonna ID dov'è?

ho ricreato il database senza la colonna id, tanto non era necessaria, era solamente un prova. Il mio scopo e' quello di verificare se una parola che io passo tramite script php e' presente nel database. Avevo inserito la colonna id per verificare se mi veniva restituita una riga come risultato
 

marino51

Utente Attivo
28 Feb 2013
3.070
195
63
Lombardia
giusto per evitare che degli spazi possano influenzare la ricerca,
prova ad eseguire le 2 query sottostanti,

Codice:
SELECT * FROM vocabolario WHERE vocabolo like '%abate%'

SELECT * FROM vocabolario WHERE vocabolo='abate'
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Caio, aggiungo ...
riprendendo la prima query postata, quando esisteva ancora la colonna id ,
gli apici sul nome del campo non ci vanno.
Codice:
SELECT id FROM `vocabolario` WHERE vocabolo='abate'
 

Antonio102

Utente Attivo
12 Set 2014
36
0
6
giusto per evitare che degli spazi possano influenzare la ricerca,
prova ad eseguire le 2 query sottostanti,

Codice:
SELECT * FROM vocabolario WHERE vocabolo like '%abate%'

SELECT * FROM vocabolario WHERE vocabolo='abate'

la prima query funziona ma non fa al caso mio, ho bisogno che venga ricercata la parola esatta. La seconda fuori restituisce 0 righe, e continuo a non capirne il perche'
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
così a naso, se la prima query funziona, cioè cerca il/i record un cui il campo vocabolo contenga abate, mentre la seconda no
sei sicuro che nel campo ci sia scritto esattamente abate? che non ci siano caratteri, es spazi prima e/o dopo, che diano fastidio?
 

marino51

Utente Attivo
28 Feb 2013
3.070
195
63
Lombardia
ora per favore esegui la query sottostante e fai sapere il risultato
ciao
Marino
Codice:
SELECT * FROM vocabolario WHERE TRIM(vocabolo)='abate'
 

Antonio102

Utente Attivo
12 Set 2014
36
0
6
ciao
così a naso, se la prima query funziona, cioè cerca il/i record un cui il campo vocabolo contenga abate, mentre la seconda no
sei sicuro che nel campo ci sia scritto esattamente abate? che non ci siano caratteri, es spazi prima e/o dopo, che diano fastidio?

nessuno spazio e/o carattere. I vocaboli in origine erano dentro un file .txt, una parola per ogni riga, che ho inserito nel database con questo script

PHP:
$words = file('parole.txt');

$conn= mysqli_connect('127.0.0.1','root','','esame') or die("Connection failed: " . $conn->connect_error);

foreach ($words as $wor)
{
$word = mysqli_real_escape_string($conn,$wor);
$insert = mysqli_query($conn,"INSERT INTO vocabolario (vocabolo) VALUES ('$word')");
}
if ($insert === TRUE)
echo 'Vocabolario inserito con successo'.'<br>';
else
echo mysqli_error($conn);

$conn->close();

ora per favore esegui la query sottostante e fai sapere il risultato
ciao
Marino
Codice:
SELECT * FROM vocabolario WHERE TRIM(vocabolo)='abate'

niente sempre 0 righe
 

marino51

Utente Attivo
28 Feb 2013
3.070
195
63
Lombardia
PHP:
<?php
$words = file('parole.txt'); 

foreach ($words as $wor) 
{ 
var_dump($wor);
} 
?>

risultato :
string(9) "parola1 " string(9) "parola2 " string(9) "parola3 " string(9) "parola4 " string(9) "parola5 " string(9) "parola6 " string(9) "parola7 "
si trascina lf-cr (Windows)
ciao
Marino
 

marino51

Utente Attivo
28 Feb 2013
3.070
195
63
Lombardia
PHP:
<?php
$words = file('parole.txt'); 

foreach ($words as $wor) 
{ 
$word = substr($wor, 0, strlen($wor) - 2);
var_dump($word);
} 
?>

risultato :
string(7) "parola1" string(7) "parola2" string(7) "parola3" string(7) "parola4" string(7) "parola5" string(7) "parola6" string(7) "parola7"
 

Antonio102

Utente Attivo
12 Set 2014
36
0
6
PHP:
<?php
$words = file('parole.txt'); 

foreach ($words as $wor) 
{ 
$word = substr($wor, 0, strlen($wor) - 2);
var_dump($word);
} 
?>

risultato :
string(7) "parola1" string(7) "parola2" string(7) "parola3" string(7) "parola4" string(7) "parola5" string(7) "parola6" string(7) "parola7"

come potrei risolvere?
 

marino51

Utente Attivo
28 Feb 2013
3.070
195
63
Lombardia
se lavori con windows hai 2 caratteri in più, con altri probabilmente hai solo 1 carattere in più
puoi provare con lo script ridotto che ti ho postato io

per risolvere, io rifarei l'inserimento nel database (dopo aver svuotato la tabella) in modo da avere il db pulito
nel tuo script devi inserire la "substr" che elimina i caratteri non voluti

ciao
Marino
 

Antonio102

Utente Attivo
12 Set 2014
36
0
6
credo di aver risolto cosi

PHP:
$words = file('parole.txt');

$conn= mysqli_connect('127.0.0.1','root','','esame') or die("Connection failed: " . $conn->connect_error);

$h = fopen('parole.txt','r'); 

while (!feof($h)) // Loop til end of file.
{
$wor = fgets($h);
$words = str_replace (array("\n", "\r\n", "\r"),"",$wor);
$word = mysqli_real_escape_string($conn,$words);
$insert = mysqli_query($conn,"INSERT INTO vocabolario (vocabolo) VALUES ('$word')");
}
if ($insert === TRUE)
echo 'Vocabolario inserito con successo'.'<br>';
else
echo mysqli_error($conn);

$conn->close();

ne approfitto per un altra domanda, come eseguo una query case insensitive? se nel mio database ho abate scritto tutto minuscolo voglio che la query restituisca il risultato sia che cerchi ABATE o Abate
 
Ultima modifica:

WmbertSea

Utente Attivo
28 Nov 2014
211
33
28
Ciao, prova ad eliminare gli apici da id e vocabolario.
Codice:
SELECT id FROM vocabolario WHERE vocabolo='abate'
In particolare per vocabolario hai usato il carattere di accento e non l'apice. Il problema potrebbe dipendere da questo.
 

marino51

Utente Attivo
28 Feb 2013
3.070
195
63
Lombardia
puoi usare
PHP:
$word = "ABATE"
$word = strtolower($word)
$word = mysqli_real_escape_string($conn,$word);
non dimenticare quest'ultima visto che l'hai usata per caricare il db
ciao
Marino
 
Discussioni simili
Autore Titolo Forum Risposte Data
C PHP restituisce il risultato di una query errato PHP 8
C bottone query MySQL 0
T Query su due tabelle con totali Database 4
G AVVISO QUERY IN ESECUZIONE PHP 1
M Riportare in tabella HTML dati estratti con query SQL MySQL 0
S Selezionare ultimo record di una sotto query MySQL 26
G Menù a tendina di ricerca con query PHP 1
V Query per una somma PHP 2
F stampare a video i risultati della query PHP 1
L problema con query select PHP 2
D Query sum Database 1
A form PHP prenotazione tramite query PHP 2
R Problema query con ricerca id numerico PHP 2
G Casella combinata in una query MS Access 4
R Aiuto con le query MS Access 2
Y query di DELETE PHP 4
V Query Oracle Oracle 0
L query somma PHP 8
W Query SQL Classic ASP 2
M Problemi con query a più tabelle PHP 3
Alex_70 Conteggio nella query PHP 0
elpirata Query per leggere dati da una tabella mysql e mostrarli a video in base a parametri passati tramite GET PHP 5
A nome file che contiene punto passato come parametro a query PHP 31
F query e form con select multipla PHP 17
M Problema su query JOIN in tre tabelle PHP 0
M Ordinare una query join PHP 2
Alex_70 Query ORDER BY PHP 18
G Problema ------- con Query PHP 1
G Problema con Query PHP 1
Alex_70 foreach explode query PHP 3
O query con date in formato stringa PHP 3
Tommy03 Unione query di 4 tabelle MySQL 1
Alex_70 Query group actor e film PHP 26
TpD Incolonnare risultati query (mysql_result deprecato...) PHP 3
Tommy03 Query tra 3 tabelle MySQL 2
P Query di ricerca profonda MySQL 0
T Query per ricerca ritardo evento MS Access 7
max1974 2 query not work MySQL 3
M Ottimizzazione Query PHP 8
strambotto Query di aggiornamento MS Access 0
I Aiuto query MySQL 8
J [PHP] Visualizzare risultato query stessa pagina PHP 3
S [PHP] non prende la query PHP 0
D [PHP] Query che aggiorna tabella PHP 4
A [PHP] Problema query insert [RISOLTO] PHP 14
M [PHP] Ottimizzazione query PHP 13
S [PHP] la query fallisce PHP 2
Alex_70 actor film query per php PHP 1
Tommy03 [PHP] Media valori presi da una query PHP 3
Punix [PHP] query non valida PHP 1

Discussioni simili