Aiutino per query MySql

raphael_php

Nuovo Utente
20 Feb 2012
13
0
0
Ciao, avevo bisogno di un vostro consiglio, in pratica ho un file log (un file di testo) che ho creato in precedenza:

** 23 March 2012 - 5:48 pm **
../DSI/02061040412/
** note ** L'archivio ../DSI/01005880412/ esiste
../DSI/A1AA588A412/
../DSI/A217699A41A/
../DSI/CC99551C419/
../DSI/A21831AS417/
../DSI/A22SD97F412/
** note ** L'archivio ../DSI/01005880412/ esiste
** note ** Il documento ../DSI/01005880412/N.000013 data 31-01-2012.pdf è stato sostituito
** FINE **

e un database strutturato come segue

CREATE TABLE IF NOT EXISTS `dcs_users` (
`userid` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(10) NOT NULL DEFAULT '',
`password` varchar(50) NOT NULL DEFAULT '',
`email` varchar(50) NOT NULL DEFAULT '',
`fullname` varchar(50) DEFAULT NULL,
`virtualdx` varchar(50) NOT NULL DEFAULT './DS/',
`virtualdk` varchar(50) NOT NULL DEFAULT './DSI/',
`virtualdy` varchar(50) NOT NULL DEFAULT './DSP/',
PRIMARY KEY (`userid`),
KEY `userid` (`userid`)

In pratica volevo leggere dal file di testo la riga contenente la directory, quindi verificare se nel database nel campo virtualdk è presente la directory. Se la directory è presente all'interno del DB allora estraggo dal record le altre informazioni che mi servono per mandare la mail

PHP:
include ("./readline.php");

$riga = 1;
$inv = "";

while(readLine($file,$riga)!="** FINE **") {
	
$inv = readLine($file,$riga);

	if(substr($inv,0,2)!="**") {
		
		var_dump ($riga); var_dump ($inv); 
			
		$sql_check = mysql_query("SELECT * FROM dcs_users WHERE virtualdk LIKE 'inv'");
        $row = mysql_num_rows($sql_check);
		
		 $username = $row['username'];
         $email = $row['email'];
		 
		var_dump($row); var_dump($username); var_dump($email);

		
		
		$riga = $riga + 1; 	
	} else {
		$riga = $riga + 1;
	}
}

Riesco ad estrarre correttamente l'informazione che mi serve dal file di log ma poi sbaglio sicuramente qualche cosa nelle query perché non riesco a verificare se nel database c’è la directory e di conseguenza non riesco ad estrarre gli altri dati che mi servono. Potete aiutarmi a correggere il codice o suggerirmi un metodo alternativo corretto per affrontare il problema.

il var dump è il seguente:


int 2
string '../DSI/02061040412/' (length=19)
int 0
null
null
int 4
string '../DSI/A1AA588A412/' (length=19)
int 0
null
null
int 5
string '../DSI/A217699A41A/' (length=19)
int 0
null
null
int 6
.....

Ciao e grazie Luca
 
Ultima modifica:

dreamer86

Utente Attivo
15 Apr 2011
42
0
0
rafalmachalek.it
$inv è una variabile. Nella tua query utilizzi semplicemente la stringa 'inv'.
PHP:
$sql_check = mysql_query("SELECT * FROM dcs_users WHERE virtualdk LIKE '$inv'");
 

raphael_php

Nuovo Utente
20 Feb 2012
13
0
0
Ciao grazie mille Alessandro1997, ho provato a correggere il codice ma purtroppo il var_dump non è cambiato. Ho usato il LIKE al posto di = perchè nel campo virtualdk nel database la directory è inserita con un "." di meno cioè ho nel database ./DSI/02061040412/ mentre nel file log ../DSI/02061040412/ .

Ciao Luca
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
perchè non provi a fare così (se è solo un punto che manca)
PHP:
<?php
//....
$inv =".".$inv;
$sql_check = mysql_query("SELECT * FROM dcs_users WHERE virtualdk = '$inv'"); 
//...
?>
eventualmente con addslashes come ha detto alex?
 

raphael_php

Nuovo Utente
20 Feb 2012
13
0
0
Ciao borgo italia, ho provato a modificare il codice eliminando il puntino di troppo

PHP:
        $inv = substr(addslashes($inv),1); 
        var_dump ($riga); var_dump ($inv); 
            
        $sql_check = mysql_query("SELECT * FROM dcs_users WHERE virtualdk = '$inv'");
        $row = mysql_num_rows($sql_check);
        
         $username = $row['username'];
         $email = $row['email'];
         
        var_dump($row); var_dump($username); var_dump($email);

e nel var_dump si vede l'effetto ma ancora la query non funziona

int 2
string './DSI/02061040412/' (length=18)
int 0
null
null
int 4
string './DSI/A1AA588A412/' (length=18)
int 0
null
null
int 5
string './DSI/A217699A41A/' (length=18)
int 0
null
null
int 6

ho provato anche a fare una query diversa per vedere se il DB funzionava

PHP:
$result = mysql_query("SELECT * FROM dcs_users");
   while ($row = mysql_fetch_array($result)){
   var_dump($row);
}
ed il var dump riporta i dati corretti
array
0 => string '2' (length=1)
'userid' => string '2' (length=1)
1 => string 'luca' (length=4)
'username' => string 'luca' (length=4)
17 => string './DS/test1/' (length=11)
'virtualdx' => string './DS/test1/' (length=11)
18 => string './DSI/01005880412/' (length)=18
'virtualdk' => string './DSI/01005880412/' (length=18)
19 => string './DSP/' (length=5)
'virtualdy' => string './DSP/' (length=5)

Ciao Luca
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
FERMI TUTTI e palla al centro

NON
$row = mysql_num_rows($sql_check);

MA
$row = mysql_fetch_array($sql_check);

OPPURE
$row = mysql_fetch_assoc($sql_check);

stavo scrivendo quando ho visto che prova hai fatto: e da li non ti sei reso conto che non avevi messo il mysql_fetch?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
così dovrebbe funziare
PHP:
<?php
include ("./readline.php");
$riga = 1;
$inv = "";
while(readLine($file,$riga)!="** FINE **") {
	$inv = readLine($file,$riga);
    if(substr($inv,0,2)!="**") {
        $inv = substr(addslashes($inv),1);
		var_dump ($riga); var_dump ($inv); 
        $sql_check = mysql_query("SELECT * FROM dcs_users WHERE virtualdk = '$inv'");
        var_dump ($sql_check);
		$row = mysql_fetch_array($sql_check);
        $username = $row['username'];
        $email = $row['email']; 
        var_dump($row); var_dump($username); var_dump($email);
        $riga = $riga + 1;     
    } else {
        $riga = $riga + 1;
    }
} 
?>

@alex: il pelato achille ti ha dato alla testa:eek:
 

raphael_php

Nuovo Utente
20 Feb 2012
13
0
0
Ciao borgo italia, era proprio quel
PHP:
$row = mysql_num_rows($sql_check);
che doveva essere sostituito con
PHP:
$row = mysql_fetch_array($sql_check);
e ora la selezione funziona correttamente. Adesso proverò ad usare la classe phpmailer per creare le mail con il file allegato.

Ciao e grazie ancora Luca
 
Discussioni simili
Autore Titolo Forum Risposte Data
otto9due Piccolo aiutino per una query.. PHP 3
W Aiutino per compilare o eseguire un App Java Java 0
ila aiutino per tesi Discussioni Varie 0
metalgemini Aiutino per motore di ricerca SEO e Posizionamento 3
Hikari Aiutino per una novizia ^_^ Classic ASP 14
G Aiutino per combobox Classic ASP 0
D [HTML] Aiutino su costruzione tabella :) HTML e CSS 3
C [MySQL] aiutino MySQL 4
A Aiutino su PHP e MySQL [Checkbox] PHP 2
otto9due Redirect 301 con espressioni regolari piccolo aiutino Apache 3
otto9due breadcrumbs con microformat o RDF piccolo aiutino.. PHP 2
otto9due Funzione cambia attributo input value non funziona.. Un aiutino :D Javascript 14
S Aiutino con il Javascripts. Javascript 2
T [risolto] aiutino modifica form email HTML e CSS 7
G Aiutino su un calcolo javascript in tempo reale Javascript 15
P Aiutino banner PHP 2
L Aiutino su upload file PHP 1
M Aiutino con php e redirect PHP 7
S font da utilizzare su un sito web [era: un piccolo aiutino!] HTML e CSS 8
N Parse error: syntax error, unexpected T_VARIABLE Piccolo Aiutino :) PHP 0
N Presentazione e aiutino :-) HTML e CSS 3
A Aiutino? PHP 2
A Aiutino... PHP 12
V Aiutino a niubbo Classic ASP 2
N aiutino Programmazione 11
F Apertura popup [era: Aiutino] HTML e CSS 1
F aiutino ad un desperado! HTML e CSS 2
P Un Aiutino Pagine Web HTML e CSS 7
M Aiutino :P Flash 2
A Ho bisogno di un aiutino !!! PHP 2
R un aiutino, please! HTML e CSS 0
G Aiutino x posta elettronica Posta Elettronica 2
L help aiutino Discussioni Varie 5
E Aiutino! HTML e CSS 0
S aiutino Classic ASP 1
felino Lubuntu 18.04 Requisiti per applicazione console .net core 7.0 Linux e Software 0
M pulsante per aprire una maschera che contiene controllo schede MS Access 0
E Aiuto per query PHP 8
E Il punto di riferimento italiano per Trailers cavalli Discussioni Varie 0
F CERCO Servizi SEO di Qualità per Agenzie di Servizi SEO e Posizionamento 3
D Miglior modo per estrarre le occorrenze di un elemento in un set di più file xml e quindi scrivere il risultato in una tabella Excel o magari in JSON XML 0
A Cerco programmatore/sviluppatore per creare forum Offerte e Richieste di Lavoro e/o Collaborazione 2
R Plugin di base per WordPress WordPress 0
D [COMPRO/CERCO] GUEST POST o scambio link per sito di Spiritualità ed Esoterismo. Vendere e Acquistare pubblicita' online 0
L Suggerimento Pagespeed per non vedenti HTML e CSS 0
M Analisi sito per pulire codice inutile HTML e CSS 1
Paolo69 Risolto reCAPTCHA v2 per ASP Classic ASP 0
M Hosting VPS per server di gioco Minecraft Hosting 0
N Grazie per il benvenuto Presentati al Forum 0
Lino80 [Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress Offerte e Richieste di Lavoro e/o Collaborazione 0

Discussioni simili