Un Evento Unico. 5 Sale. 27 Interventi. SEO, SOCIAL, E-Commerce, Mobile, Turismo.
CLICCA QUI e SCOPRI DI PIù X Chiudi
 
Forum GT: Condividiamo idee e conoscenza Forum GT: Condividiamo idee e conoscenza


Condividi questo contenuto nei Social Network:
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito.


Vai indietro   Forum per Webmaster: Condividiamo Idee e Conoscenza > Sviluppo e Gestione siti web > Php - Mysql
Benvenuto! Forum Regole FAQ Lista utenti Calendario Segna come letti


Rispondi
 
LinkBack Strumenti di discussione
Vecchio 13-07-11, 18:32   #1 (permalink)
User
 
Data di registrazione: Jan 2007
Messaggi: 116
Mysql mostra a schermo dati sbagliati

Ciao a tutti
mi trovo di fronte a uno strano problema... ho un sito in php e mysql e una pagina che mi mostra una serie di righe di dati ricavandole da un db mysql.

In questa pagina tramite php lancio una query mysql stupidissima, del tipo:

SELECT * FROM tabella WHERE (comune='1' OR comune='2') ORDER BY comune ASC LIMIT 0,30

Premetto che stampando la query a video viene mostrata corretta e lanciandola da Phpmyadmin viene eseguita correttamente e mostra i dati corretti.

Il problema si presenta quando chiedo alla query di mostrarmi i dati all'interno del sito.

All'interno del sito la query mostra i dati dei comuni che ho richiesto più alcuni dati (che sembrano presi a caso) di altri comuni che non ho chiesto che non centrano nulla con le condizioni che ho impostato nella query.

Non riesco proprio a capire perchè si comporti cosi, a qualcuno è mai successo qualcosa di simile? Qualcuno è riuscito a venirne a capo?

Nella tabella mysql in questione sono presenti quasi 10000 righe, può essere un problema dovuto ai troppi dati? Può dipendere dagli indici o dalle impostazioni della tabella?

Un problema simile mi era già capitato con un altro sito, sempre con tabelle contenenti migliaia di dati, in quel caso una query che fino al giorno prima funzionava, di colpo decise di comportarsi in modo strano, risolsi la cosa inserendo nella prima colonna della tabella di output un contatore in php (del tipo ($numero ++; echo $numero e la query tornò a mostrare i dati corretti. Ammetto però di non aver capito perchè la cosa funzionasse, il contatore lo avevo aggiunto in fase di debug per capire se c'era una correlazione tra il numero di righe e l'errore, per poi accorgermi che con il contatore tutto funzionava.

Questa volta non vorrei dover ricorrere a trucchetti tipo il contatore, ma ci terrei a capire il perchè di questi strani comportamenti per imparar a risolverli in futuro.

Qualcuno mi può aiutare?

Ciao
Grazie
__________________
http://www.frontedelpiave.info
alebal non in linea   Rispondi citando
Vecchio 14-07-11, 18:59   #2 (permalink)
User
 
Data di registrazione: Jan 2007
Messaggi: 116
Forse si può risolvere con mysql_unbuffered_query()???

Potrebbe essere un problema di buffer dei dati? Ho molti utenti che utilizzano lo stesso file, ognuno con dati diversi, Può essere rimanga nelle memorie di mysql qualche riga di richieste effettuate precedentemente da altri utenti??
__________________
http://www.frontedelpiave.info
alebal non in linea   Rispondi citando
Vecchio 15-07-11, 01:33   #3 (permalink)
User
 
L'avatar di vnt54
 
Data di registrazione: Feb 2010
Ubicazione: Prato
Messaggi: 186
Se la tua tabella ha diversi campi,è chiaro e palese che,effettuando una
query così
Codice:
SELECT * FROM tabella WHERE (comune='1' OR comune='2') ORDER BY comune ASC LIMIT 0,30
selezioni tutti i campi presenti nella tabella,filtrandoli poi con la condizione
WHERE,quindi, la tua perplessità nella restituzione dei record con
dati che non hai richiesto non ha motivo di fondamento;forse,dovresti
mettere nella tabella in sostituzione dell' asterisco i campi che ti interessano.
__________________
Terra di paura e vampiri..la transilvania?No..la banca
vnt54 non in linea   Rispondi citando
Vecchio 15-07-11, 01:47   #4 (permalink)
User
 
Data di registrazione: Jan 2007
Messaggi: 116
Eh... ma mi servono tutti i campi della tabella... il problema è che mi mostra anche le righe dei comuni che non ho chiesto...
__________________
http://www.frontedelpiave.info
alebal non in linea   Rispondi citando
Vecchio 15-07-11, 09:25   #5 (permalink)
User
 
L'avatar di vnt54
 
Data di registrazione: Feb 2010
Ubicazione: Prato
Messaggi: 186
Posta i campi della tabella e diamo una controllata.
__________________
Terra di paura e vampiri..la transilvania?No..la banca
vnt54 non in linea   Rispondi citando
Vecchio 15-07-11, 18:54   #6 (permalink)
User
 
Data di registrazione: Jan 2007
Messaggi: 116
Questa è la tabella

CREATE TABLE IF NOT EXISTS `preferenze_acquirenti` (
`id_preferenze` int(11) NOT NULL auto_increment,
`uid` int(11) NOT NULL,
`categoria` varchar(255) NOT NULL,
`contratto` varchar(255) NOT NULL default 'vendita',
`comune` varchar(255) NOT NULL,
`comune2` varchar(255) NOT NULL,
`comune3` varchar(255) NOT NULL,
`provincia` varchar(255) NOT NULL,
`ins_da` varchar(255) NOT NULL,
PRIMARY KEY (`id_preferenze`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=9711 ;

però vorrei ricordare che query e database sembrano funzionare, se lancio la stessa query in phpmyadmin vedo tutto correttamente, il problema si presenta solo nell'output html.

Ho anche provato a far un file con solo la query che genera la tabella (si sa mai derivi da qualche altra variabile del portale) ma nulla da fare, mostra sempre risultati in più, con 2 schermi affiancati, su phpmyadmin ho i risultati corretti, sulla pagina html sbagliati...
__________________
http://www.frontedelpiave.info
alebal non in linea   Rispondi citando
Vecchio 15-07-11, 19:28   #7 (permalink)
ModSenior
 
L'avatar di Thedarkita
 
Data di registrazione: Aug 2006
Ubicazione: Messina
Messaggi: 6,439
Invia un messaggio tramite Skype a Thedarkita
Sicuramente non è la query il problema, posta il codice php che elabora la query in maniera da poter vedere cosa fai esattamente.
Thedarkita ora è in linea   Rispondi citando
Rispondi
Tags:



Strumenti di discussione

Regole di scrittura
Non puoi postare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi allegare file
Non puoi editare i tuoi post

BB code is Attivo
smilies è Attivo
[IMG] il codice è Attivo
Il codice HTML è Disattivato
Trackbacks are Attivo
Pingbacks are Attivo
Refbacks are Disattivato
Vai al forum



Tutti gli orari sono GMT +3. Attualmente sono le 15:34.




Forum GT - © 2004-2009 GT idea S.r.l P.iva 02418200800 - Privacy/Disclaimer

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.