UPDATE dinamico campo vuoto del DB

ciopin

Utente Attivo
26 Mar 2010
59
0
0
Buongiorno Ragazzi,

io avrei questa esigenza:

all'interno del mio db ho una tabella dove ci sono i campi

citta
provincia

Negli ultimi giorni, per un problema di form nn funzionante, il campo citta nn è stato popolato ed io vorrie creare uno script che in un ciclo mi fa una query e mi interroga il db e vede dove il campo provincia è VUOTO lo popola col valore del campo città......a parole tutto facile ma come potrei fare?

Mi aiutate per favore?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
se hai una tabella (es. chiamata localita) con i campi
citta
provincia

e vuoi aggiornare un'altra tabella (es. chiamata tabella) sempre con i campi citta e provincia aggiornado citta se è vuoto potresti fare così

PHP:
<?php
//...
$q_1=mysql_query"SELECT * FROM tabella");
while($riga_1=mysql_fetch_array($q_1)){
	$id_1=$riga_1['id'];
	$citta_1=$riga_1['citta'];
	$provincia_1=$riga_1['provincia'];
	if($citta_1 ==""){//se il campo citta è vuoto aggirno
		//leggo il campo citta corrispondente a provincia nella tabella localita
		$q_2=mysql_query("SELECT citta FROM localita WHERE provincia='$provincia_1'");
		$riga_2=mysql_fetch_array($q_2);
		$citta_2=$riga_2['citta'];
		//aggiorno il campo citta in tabella
		$q_3=mysql_query("UPDATE tabella SET citta=''$citta_2' WHERE id='$id_1'");
	}
}
//...
?>
se non hai la tabella localita, mo sa che devi fare "manina manina" cioè se $citta_1 =="" visualizzare un form con un campo di input citta, inputare il nome e uppare
 

ciopin

Utente Attivo
26 Mar 2010
59
0
0
Ciao io ho una sola tabella con dentro i campi citta e prov ( che chaimo city e county) ho fatto come mi hai detto

PHP:
<?php 
//... 

set_time_limit(0);
	
	error_reporting(E_ALL);
	ini_set('display_errors','On');
	
	
	$dbhost1 = "xxxx";
	$dbname1 = "xxxx";
	$dbuser1 = "xxxx";
	$dbpass1 = "xxxxx";

	$link = mysql_connect($dbhost1, $dbuser1, $dbpass1) or die("Could not connect");
	mysql_select_db($dbname1);
	
	
$q_1=mysql_query"SELECT  nometabella . city , nometabella . county , nometabella_partner . email FROM nometabella LEFT JOIN nometabella_partner ON nometabella . progr =nometabella_partner . id_user WHERE partner ='eagle' and datareg LIKE '2012-01-19%' and nometabella . email  LIKE '%[email protected]%'"); 
while($riga_1=mysql_fetch_array($q_1)){ 
    $id_1=$riga_1['county']; 
    $city_1=$riga_1['city']; 
    $county_1=$riga_1['county']; 
    if($city_1 ==""){//se il campo city è vuoto aggirno 
        //leggo il campo city corrispondente a county nella tabella localita 
        $q_2=mysql_query("SELECT city FROM localita WHERE county='$county_1'"); 
        $riga_2=mysql_fetch_array($q_2); 
        $city_2=$riga_2['city']; 
        //aggiorno il campo city in tabella 
        $q_3=mysql_query("UPDATE nometabella SET city=''$city_2' WHERE id='$id_1'"); 
    } 
} 
//... 

mysql_close();
?>

ma mi restituisce questo errore

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /opt/hoster/vhosts/miodominio.com/httpdocs/cartella_test/prova_update.php on line 19
 

ciopin

Utente Attivo
26 Mar 2010
59
0
0
Ho corretto la ( come giustamente mi facevi notare tu ma adesso ho questo errore

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /opt/hoster/vhosts/miodominio.com/httpdocs/prova_update.php on line 27
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
dividi la query e metti i soliti var_dump, commentando le righe che interrogano il db
PHP:
<?php
//....
    //leggo il campo city corrispondente a county nella tabella localita 
        $q_2_str="SELECT city FROM localita WHERE county='$county_1'";
		var_dump($q_2_str);
		 $q_2=mysql_query($q_2_str);
		 var_dump($q_2);
        //$riga_2=mysql_fetch_array($q_2); 
        //$city_2=$riga_2['city']; 
        //aggiorno il campo city in tabella 
        //$q_3=mysql_query("UPDATE nometabella SET city=''$city_2' WHERE id='$id_1'"); 
    } 
//...
?>
guarda e posta cosa riportano
sorattutto il primo che NON risulti string(xy) "SELECT city FROM localita WHERE county=''"
 

ciopin

Utente Attivo
26 Mar 2010
59
0
0
Ho corretto un errore di sintassi nell UPDATE ($q_3) adesso nn mi da l'errore ma non mi funziona nulla..non mi updata...ho provato a mettere una costante (test) credendo che dipendesse dalla variabile ma nulla..dov'è che sbaglio?

PHP:
<?php 
//... 

set_time_limit(0);
	
	error_reporting(E_ALL);
	ini_set('display_errors','On');
	
	
	//dati connessione DB

	$link = mysql_connect($dbhost1, $dbuser1, $dbpass1) or die("Could not connect");
	mysql_select_db($dbname1);
	
	
$q_1=mysql_query("SELECT nometabella . progr , nometabella . nome , nometabella . surname , nometabella . data_nasc , nometabella . zip ,  nometabella . city , nometabella . county ,  nometabella_partner . email FROM nometabella LEFT JOIN nometabella_partner ON nometabella . progr =nometabella_partner . id_user WHERE partner ='eagle' and datareg LIKE '2012-01-19%' and nometabella . email  LIKE '%[email protected]%"); 
while($riga_1=mysql_fetch_array($q_1)){ 
    $id_1=$riga_1['county']; 
    $city_1=$riga_1['city']; 
    $county_1=$riga_1['county']; 
    if($city_1 ==""){//se il campo city è vuoto aggirno 
        //leggo il campo city corrispondente a county nella tabella localita 
        $q_2=mysql_query("SELECT city FROM nometabella  WHERE county='$county_1'"); 
        $riga_2=mysql_fetch_array($q_2); 
        $city_2=$riga_2['city']; 
        //aggiorno il campo city in tabella 
        $q_3=mysql_query("UPDATE nometabella SET city='test' WHERE id='$id_1'"); 
    } 
} 
//... 

mysql_close();
?>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
l'errore è qui (se non ce ne sono altri)

PHP:
while($riga_1=mysql_fetch_array($q_1)){  
    $id_1=$riga_1['county'];  //!!!!!!
non deve essere county ma
PHP:
$id_1=$riga_1['id'];  //l'id del record che devo uppare - metti il nome del tuo campo id

penso di aver fatto un errore di copy/paste
 

ciopin

Utente Attivo
26 Mar 2010
59
0
0
Ciao ho modificato l'id come mi hai detto ma ancora nulla.....nessun errore ma pagina bianca e nn aggiorna il db

PHP:
<?php 
//... 

set_time_limit(0);
	
	error_reporting(E_ALL);
	ini_set('display_errors','On');
	
	$link = mysql_connect($dbhost1, $dbuser1, $dbpass1) or die("Could not connect");
	mysql_select_db($dbname1);
	
	
	//connessione al db
  $q_1=mysql_query("SELECT nometabella . progr , nometabella . nome , nometabella . surname , nometabella . data_nasc , nometabella . zip ,  nometabella . city , nometabella . county ,  nometabella_partner . email FROM nometabella LEFT JOIN nometabella_partner ON nometabella . progr =nometabella_partner . id_user WHERE partner ='eagle' and datareg LIKE '2012-01-19%' and nometabella . email  LIKE '%[email protected]%'"); 
while($riga_1=mysql_fetch_array($q_1)){ 
    $id_1=$riga_1['progr']; 
    $city_1=$riga_1['city']; 
    $county_1=$riga_1['county']; 
    if($city_1 ==""){//se il campo city è vuoto aggirno 
        //leggo il campo city corrispondente a county nella tabella localita 
        $q_2=mysql_query("SELECT city FROM nometabella WHERE county='$county_1'"); 
        $riga_2=mysql_fetch_array($q_2); 
        $city_2=$riga_2['city']; 
        //aggiorno il campo city in tabella 
        $q_3=mysql_query("UPDATE nometabella SET city='test' WHERE id='$id_1'"); 
    } 
} 
//... 

mysql_close();
?>
 
Ultima modifica di un moderatore:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
la sintassi mi sembra giusta, quindi
verifica corrispondenza nomi campi
e metti i var_dump alle variabili per vedere cosa ti retituiscono
 
Discussioni simili
Autore Titolo Forum Risposte Data
elpirata Update dinamico informazioni scritte in una pagina php jQuery 11
K Problema form update PHP 2
M query update e delete PHP 0
N MAX() + ADD_DATE - per update su Mysql MySQL 0
felino Windows 7: errore 80072EFE su Windows Update Windows e Software 1
A pulsante di update campo mysql con javascript Javascript 2
MarcoGrazia ON DUPLICATE KEY ma in realtà non UPDATE mai PHP 17
R Errore UPDATE tabella mysql PHP 1
M Update con condizione SQL PHP 7
M Problema su update di 3 tabelle PHP 1
G Problema update di un database PHP 0
L update tabelle in php mysql [risolto] PHP 6
P update records PHP 2
B [MySQL] Problemino con UPDATE MySQL 10
M [PHP] Query UPDATE che non mi aggiorna campi seconda tabella PHP 3
felino [Windows 8.1] Windows Update non funziona correttamente Windows e Software 3
P [PHP] INSERT e UPDATE PHP 1
elpirata [MYSQL] Schedulare evento per update del campo data su tabella MySQL 0
D [ASP] Mysql insert e update Classic ASP 2
M UPDATE non aggiorna db se lo inserisco in un ciclo Database 1
Monital [PHP] query update e select insieme ma frazionando l'arrray PHP 12
D [PHP] Update non trasferisce condizione where PHP 1
L [PHP] Errore UPDATE su tabella DB PHP 22
giancadeejay [PHP] istruzione UPDATE SQL PHP 2
giancadeejay [PHP] UPDATE DATO , SE ESISTE IN DB .. PHP 14
C What is Latest update on SEO SEO e Posizionamento 1
K Non trovo l'errore! PDO MYSQL UPDATE PHP 2
marini91 Update record in mysqli PHP 1
R [MySQL] SQL UPDATE INNER JOIN MySQL 5
giancadeejay [PHP] Update tabella da file csv PHP 3
webmachine [PHP] SELECT, UPDATE VERIFICARNE IL RISULTATO PHP 2
cris8380 [PHP] Update in search. PHP 16
filippino Google Update fine Aprile 2016: Bruschi cambiamenti SERP SEO e Posizionamento 3
pup3770 Riprendere da db e UPDATE PHP 9
N Problema funzione UPDATE PHP 9
C Problema con update di un file PHP 6
L Upload immagine e update dati DB PHP 2
K Problema con update di un database in un ciclo Classic ASP 1
C Problema con Update di una tabella di un db PHP 3
L update MySQL 2
G Update file con javascript per controllo estensioni Javascript 5
P Problemi UPDATE PHP 1
MarcoGrazia [PDO][MySQL] L'update non avviene PHP 1
R Update PHP dalla 5.3.3 alla 5.3.4 PHP 0
S Insert into....on duplicate key update MySQL 2
1 Errore UPDATE, DELETE MS Access 16
Z Google Update del 7 Agosto 2014 SEO e Posizionamento 1
M Messaggio di errore su pulsante update PHP 0
L DML: utente con permessi di UPDATE con WHERE ha bisogno di privilegi di SELECT? PHP 1
I Update multiple PHP 3

Discussioni simili