Non inserisce dati nel db

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
metti un paio di var_dump e dimmi cosa riportano

PHP:
<?php
$dir="pinco_pallo/";//qui hai messo la tua spero
$file_excess=glob($dir."*.jpg");
$file_excess=array_merge($file_excess,glob($dir."*.JPG"));//il difetto di glob è che è casesensitive
//e se le hai gli altri tipi di immagini
$file_excess=array_merge($file_excess,glob($dir."*.png"));
$file_excess=array_merge($file_excess,glob($dir."*.gif"));
//ricavo i nomi dei file senza percorso
$file_excess=array_map("basename",$file_excess);
//questa parte poi la togli ***
echo "<pre>";
var_dump($file_excess);//dovresti vedere l'elenco dei file
echo "<pre>";
//***
//qui i dati di connessione
foreach($file_excess as $ch => $excess){
    //se c'è puo essere in uno dei 4 campi riservati alle immagini
    $excess=$dir.$excess;
	$query="SELECT * FROM prova WHERE immagine='$excess' OR img2='$excess' OR img3='$excess' OR img4='$excess'";
    $ris=mysql_query($query);
    if(mysql_num_rows($ris)==0){//se 0 il nome non è in tabella
        var_dump(unlink($dir.$excess));//meittilo in un var dump poi lo riporti come prima
    }
}
?>
 

Kirsolo

Utente Attivo
17 Gen 2013
171
0
0
ciao
metti un paio di var_dump e dimmi cosa riportano

PHP:
<?php
$dir="pinco_pallo/";//qui hai messo la tua spero
$file_excess=glob($dir."*.jpg");
$file_excess=array_merge($file_excess,glob($dir."*.JPG"));//il difetto di glob è che è casesensitive
//e se le hai gli altri tipi di immagini
$file_excess=array_merge($file_excess,glob($dir."*.png"));
$file_excess=array_merge($file_excess,glob($dir."*.gif"));
//ricavo i nomi dei file senza percorso
$file_excess=array_map("basename",$file_excess);
//questa parte poi la togli ***
echo "<pre>";
var_dump($file_excess);//dovresti vedere l'elenco dei file
echo "<pre>";
//***
//qui i dati di connessione
foreach($file_excess as $ch => $excess){
    //se c'è puo essere in uno dei 4 campi riservati alle immagini
    $excess=$dir.$excess;
	$query="SELECT * FROM prova WHERE immagine='$excess' OR img2='$excess' OR img3='$excess' OR img4='$excess'";
    $ris=mysql_query($query);
    if(mysql_num_rows($ris)==0){//se 0 il nome non è in tabella
        var_dump(unlink($dir.$excess));//meittilo in un var dump poi lo riporti come prima
    }
}
?>

con 6 immagini:

array(6) {
[0]=>
string(8) "Birr.jpg"
[1]=>
string(14) "Desgriglia.jpg"
[2]=>
string(7) "b&w.jpg"
[3]=>
string(19) "bobo_vieri_370d.jpg"
[4]=>
string(9) "prova.jpg"
[5]=>
string(10) "tetto1.jpg"
}
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
allora non entra nell'if(mysql_num_rows($ris)==0)
devo capire il perchè poi spero di saperti dire

counque intanto mettimi un vardump alla query
PHP:
<?php
//...
$query="SELECT * FROM prova WHERE immagine='$excess' OR img2='$excess' OR img3='$excess' OR img4='$excess'"; 
var_dump($query);echo "<br />";
//...
?>
se come hai detto hai caricato sei immagini dovrebbe risultarti
string(xy) "SELECT * FROM prova WHERE immagine='Birr.jpg' OR img2='Birr.jpg' OR img3='Birr.jpg' OR img4='Birr.jpg'"
string(xy) "SELECT * FROM prova WHERE immagine='Desgriglia.jpg' OR img2='Desgriglia.jpg' OR img3='Desgriglia.jpg' OR img4='Desgriglia.jpg'"
string(xy) "SELECT * FROM prova WHERE immagine='b&w.jpg' OR img2='b&w.jpg' OR img3='b&w.jpg' OR img4='b&w.jpg'"
string(xy) "SELECT * FROM prova WHERE immagine='bobo_vieri_370d.jpg' OR img2='bobo_vieri_370d.jpg' OR img3='bobo_vieri_370d.jpg' OR img4='bobo_vieri_370d.jpg'"
string(xy) "SELECT * FROM prova WHERE immagine='prova.jpg' OR img2='prova.jpg' OR img3='prova.jpg' OR img4='prova.jpg'"
string(xy) "SELECT * FROM prova WHERE immagine='tetto1.jpg' OR img2='tetto1.jpg' OR img3='tetto1.jpg' OR img4='tetto1.jpg'"

e per prova.jpg e tetto1.jpg dovrebbe darti mysql_num_rows($ris)==0
 

Kirsolo

Utente Attivo
17 Gen 2013
171
0
0
ciao
allora non entra nell'if(mysql_num_rows($ris)==0)
devo capire il perchè poi spero di saperti dire

counque intanto mettimi un vardump alla query
PHP:
<?php
//...
$query="SELECT * FROM prova WHERE immagine='$excess' OR img2='$excess' OR img3='$excess' OR img4='$excess'"; 
var_dump($query);echo "<br />";
//...
?>
se come hai detto hai caricato sei immagini dovrebbe risultarti


e per prova.jpg e tetto1.jpg dovrebbe darti mysql_num_rows($ris)==0

forse l'ordine delle immagini non è come il precendente ma lo capisci:
Codice:
array(6) {
  [0]=>
  string(8) "Birr.jpg"
  [1]=>
  string(14) "Desgriglia.jpg"
  [2]=>
  string(19) "bobo_vieri_370d.jpg"
  [3]=>
  string(9) "prova.jpg"
  [4]=>
  string(10) "tetto1.jpg"
  [5]=>
  string(13) "Immagine1.png"
}
string(102) "SELECT * FROM prova WHERE immagine='Birr.jpg' OR img2='Birr.jpg' OR img3='Birr.jpg' OR img4='Birr.jpg'"

string(126) "SELECT * FROM prova WHERE immagine='Desgriglia.jpg' OR img2='Desgriglia.jpg' OR img3='Desgriglia.jpg' OR img4='Desgriglia.jpg'"

string(146) "SELECT * FROM prova WHERE immagine='bobo_vieri_370d.jpg' OR img2='bobo_vieri_370d.jpg' OR img3='bobo_vieri_370d.jpg' OR img4='bobo_vieri_370d.jpg'"

string(106) "SELECT * FROM prova WHERE immagine='prova.jpg' OR img2='prova.jpg' OR img3='prova.jpg' OR img4='prova.jpg'"

string(110) "SELECT * FROM prova WHERE immagine='tetto1.jpg' OR img2='tetto1.jpg' OR img3='tetto1.jpg' OR img4='tetto1.jpg'"

string(122) "SELECT * FROM prova WHERE immagine='Immagine1.png' OR img2='Immagine1.png' OR img3='Immagine1.png' OR img4='Immagine1.png'"
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
sto cercando di capire perche non risulta 0 il numero visto che le query sono giuste, metti un altro var_dump
PHP:
<?php
//.....
//qui i dati di connessione
foreach($file_excess as $ch => $excess){
    //se c'è puo essere in uno dei 4 campi riservati alle immagini
    $excess=$dir.$excess;
    $query="SELECT * FROM prova WHERE immagine='$excess' OR img2='$excess' OR img3='$excess' OR img4='$excess'";
	var_dump($query);//allora QUI OK
    $ris=mysql_query($query);
	var_dump(mysql_num_rows($ris)); echo "<br />";//vediamo qui
    if(mysql_num_rows($ris)==0){//se 0 il nome non è in tabella
        var_dump(unlink($dir.$excess));//meittilo in un var dump poi lo riporti come prima
    }
}
?>
fai anche un'altra cosa con phpmyadmin verifica se per caso esistono i record che non ci dovrebbero essere in tal caso bisogna andare a rivedere l'inserimento
 

Kirsolo

Utente Attivo
17 Gen 2013
171
0
0
ciao
sto cercando di capire perche non risulta 0 il numero visto che le query sono giuste, metti un altro var_dump
PHP:
<?php
//.....
//qui i dati di connessione
foreach($file_excess as $ch => $excess){
    //se c'è puo essere in uno dei 4 campi riservati alle immagini
    $excess=$dir.$excess;
    $query="SELECT * FROM prova WHERE immagine='$excess' OR img2='$excess' OR img3='$excess' OR img4='$excess'";
	var_dump($query);//allora QUI OK
    $ris=mysql_query($query);
	var_dump(mysql_num_rows($ris)); echo "<br />";//vediamo qui
    if(mysql_num_rows($ris)==0){//se 0 il nome non è in tabella
        var_dump(unlink($dir.$excess));//meittilo in un var dump poi lo riporti come prima
    }
}
?>
fai anche un'altra cosa con phpmyadmin verifica se per caso esistono i record che non ci dovrebbero essere in tal caso bisogna andare a rivedere l'inserimento

con
PHP:
..
$file_excess=array_map("basename",$file_excess); 
//
echo "<pre>"; 
var_dump($file_excess);//dovresti vedere l'elenco dei file 
echo "<pre>"; 
//qui i dati di connessione
$sql = mysql_connect("localhost","root","");
			mysql_selectdb("my_luca",$sql); 
foreach($file_excess as $ch => $excess){ 
	//se c'è puo essere in uno dei 4 campi riservati alle immagini 
	$excess=$dir.$excess; 
    $query="SELECT * FROM prova WHERE immagine='$excess' OR img2='$excess' OR img3='$excess' OR img4='$excess'"; 
    var_dump($query); 
	$ris= mysql_query($query); 
	var_dump(mysql_num_rows($ris)); echo "<br />";//
    if(mysql_num_rows($ris)==0){//se 0 il nome non è in tabella 
		var_dump(unlink($dir.$excess));//quindi lo cancello 
....

Codice:
array(6) {
  [0]=>
  string(8) "Birr.jpg"
  [1]=>
  string(14) "Desgriglia.jpg"
  [2]=>
  string(19) "bobo_vieri_370d.jpg"
  [3]=>
  string(9) "prova.jpg"
  [4]=>
  string(10) "tetto1.jpg"
  [5]=>
  string(13) "Immagine1.png"
}
string(126) "SELECT * FROM prova WHERE immagine='Fotop/Birr.jpg' OR img2='Fotop/Birr.jpg' OR img3='Fotop/Birr.jpg' OR img4='Fotop/Birr.jpg'"
int(1)

string(150) "SELECT * FROM prova WHERE immagine='Fotop/Desgriglia.jpg' OR img2='Fotop/Desgriglia.jpg' OR img3='Fotop/Desgriglia.jpg' OR img4='Fotop/Desgriglia.jpg'"
int(1)

string(170) "SELECT * FROM prova WHERE immagine='Fotop/bobo_vieri_370d.jpg' OR img2='Fotop/bobo_vieri_370d.jpg' OR img3='Fotop/bobo_vieri_370d.jpg' OR img4='Fotop/bobo_vieri_370d.jpg'"
int(1)

string(130) "SELECT * FROM prova WHERE immagine='Fotop/prova.jpg' OR img2='Fotop/prova.jpg' OR img3='Fotop/prova.jpg' OR img4='Fotop/prova.jpg'"
int(1)

string(134) "SELECT * FROM prova WHERE immagine='Fotop/tetto1.jpg' OR img2='Fotop/tetto1.jpg' OR img3='Fotop/tetto1.jpg' OR img4='Fotop/tetto1.jpg'"
int(1)

string(146) "SELECT * FROM prova WHERE immagine='Fotop/Immagine1.png' OR img2='Fotop/Immagine1.png' OR img3='Fotop/Immagine1.png' OR img4='Fotop/Immagine1.png'"
int(1)

nella cartella sempre 6 immagini

nella tabella sql ho 4 record per l'immagine, e ne inserisce solo 4, in quest'ordine:
Fotop/Birr.jpg
Fotop/bobo_vieri_370d.jpg
Fotop/Desgriglia.jpg
Fotop/Immagine1.png
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
fai una prova con un file a parte con un nome che di sicuro NON hai nella tabella

<?php
// dati di connessione
$query="SELECT * FROM prova WHERE immagine='Fotop/pinco_pallo.jpg' OR img2='Fotop/pinco_pallo.jpg' OR img3='Fotop/pinco_pallo.jpg' OR img4='Fotop/pinco_pallo.jpg'";
$ris=mysql($query);
var_dump(mysql_num_rows($ris));
?>
poi prova a mettere il nome di un file che hai in cartella ma sempre NON in tabella
in questi due casi il var dump dovrebbe darti 0
prova poi col nome di un file caricato e che sia in tabella
in questo caso dovrebbe darti 1

oppure prova direttamente le query in phpmyadmin
 
Discussioni simili
Autore Titolo Forum Risposte Data
Monital [PHP] Insert into non inserisce tutti i dati PHP 1
M Menu a tendina che non inserisce dati nel db PHP 8
I non inserisce i dati nel db PHP 28
G form php connesso a database ma non inserisce dati PHP 5
DeAndreon Php non inserisce dati in db mysql PHP 37
MarcoGrazia [PDO] insert che non inserisce e non da errori PHP 1
Shyson Non inserisce datane Database PHP 1
Shyson Non inserisce nel db Database 1
felino Mac OS e Client Mail: Stato non in linea Mac e Software 2
I nome utente non esiste nel database PHP 1
M Drag and Drop non capisco le sequenze... Javascript 1
L Suggerimento Pagespeed per non vedenti HTML e CSS 0
F comando di inclusione file audio in I-Pad non funziona HTML e CSS 1
M Immagini non usate WordPress 0
B Non riesco a trovare i cognomi con i caratteri speciali in Access (Microsoft 365) MS Access 0
G Numero zero null non deve visualizzare nulla PHP 0
F Paypal _xclick IPN non risponde PHP 1
R Variabile non risconosciuta dentro una funzione PHP 1
C ACCESS Aprire maschera se valore non presente in una combo MS Access 7
E Alert non viene mostrato PHP 1
felino Hardisk WD SATA 1TB 3.5" non si avvia! Hardware 4
K Scrip non funzionante Javascript 1
R jquery che cambia css di un elemento non mi funziona sulla pagina caricata da ajax Ajax 5
zorro CREATE TABLE non funziona PHP 6
L tipo boolean non funzionante su mariadb (mysql). E codice php 7.4. PHP 0
Sevenjeak Php8 non carica estenzioni PHP 0
R query DELETE non cancella i record PHP 1
otto9due Input text: accetta solo numeri e non può essere vuoto. Javascript 9
G Non vedo frecce su forme Photoshop 2
G Il mio sito dopo aver abilitato l'ssl non visualizza le immagini con indirizzi senza ssl HTML e CSS 0
P jquery refresh div non funziona Javascript 0
N Problema SEO "L'URL non si trova su Google" SEO e Posizionamento 4
S Certificato SSL non funzionante Domini 0
zorro modulo di registrazione: funziona ma non sempre PHP 2
D Form contatti non funzionante HTML e CSS 0
MarcoGrazia Trovare record nel database partendo da id non sequenziali PHP 6
M Non ho rinnovato il mio sito su Aruba... Domini 1
T IP INFO NON FUNZIONA PHP 0
Shyson Google search non trova il mio sito SEO e Posizionamento 1
E Estrarre dati da doppia tabella, banale ma non sempre PHP 1
P Data scraping in PHP non funziona PHP 4
otto9due $_FILE non passa i dati dal form PHP 1
keyascii Non è mai troppo tardi Presentati al Forum 0
N dati tabella non presi PHP 1
P Pagina modifica record che non funziona PHP 0
Shyson AUTO_INCREMENT non si aggiorna MySQL 2
Shyson Codice wp-login non funziona PHP 2
S WORDPRESS NON FA INSTALLARE PIU NULLA WordPress 9
Shyson Non mi fa accedere al sito WordPress 12
N Non Autorizzato. Dovresti rimuovere il parametro customize_messenger_channel per visualizzare l'anteprima in frontend. WordPress 1

Discussioni simili