Riprendere da db e UPDATE

pup3770

Utente Attivo
30 Mag 2012
122
0
16
Ciao Ragazzi,
ho cercato e fatto alcune prove ma non riesco.

Avrei la necessità di inserire dei dati in un db e fin qui ok mediante
PHP:
INSERT INTO
. Avrei la necessità di modificare i dati e fin qui
PHP:
UPDATE
. Avrei la necessità di modificare i dati ma prima farli vedere. Nel senso.

Ho un db che include:

nome
cognome
sesso

all'interno mi ritrovo
nomecognomesesso
carlocontim
asiaargentof


Vorrei rendere modificabile queste righe ma dopo aver prelevato il contenuto e averlo inserito ad esempio in un campo.

Ho pensato di fare:
PHP:
$nome_ricercato = $_POST['nome_ricercato']; //prelevo il contenuto inserito dall'utente

	$query = "SELECT * FROM prova";
	$result = mysql_query($query, $connessione);
	$numrows = mysql_num_rows($result);
			

  //Avvio un ciclo for che si ripete per il numero di occorrenze trovate
	
  for($x=0; $x<$numrows; $x++){

    //Recupero il contenuto di ogni record rovato

    $resrow = mysql_fetch_row($result); 

    if($nome_ricercato ==  $nome) { //confronto tra codice "ean" inserito nel campo di ricerca ed "ean" presente nel database
    
    $nome = $resrow[0];
    
    $cognome = $resrow[1];

    $sesso = $resrow[2];
    
   //visualizzo in una riga tutte le info - ma solo di test - non serve ad altro 
	echo "Il codice ean e': " . $ean . ", il nome e': " . $nome . ", il cognome e': " . $cognome . ", il sesso e': " . $sesso . "<br>";
	
    
    } //fine if

    
    } //fine for 

    
  ?>				

			<b>nome:</b><br> <INPUT TYPE="text" NAME="nome" VALUE="<?php echo $nome ?>"><br><br>
        
  

			<b>cognome:</b><br> <INPUT TYPE="text" NAME="cognome" VALUE="<?php echo $cognome ?>"><br><br>
 
  	
			<b>sesso:</b><br> <INPUT TYPE="text" NAME="sesso" VALUE="<?php echo $sesso ?>"><br><br>
  
<?php	        
    

$query1 = "UPDATE prova SET nome='{$_POST['nome']}', cognome='{$_POST['cognome']}', sesso='{$_POST['sesso']}' ";


	if (mysql_query ($query1, $connessione))
		echo ("Modifica riuscita con successo!");     
    ?>

Qual'è il problema? Nel senso. Effettivamente nelle aree di testo mi inserisce il contenuto prelevato dal database ma quando lo modifico non mi va in aggiornamento. Praticamente non mi vede il contenuto delle nuove
HTML:
INPUT TYPE
. Io vorrei che mi dia la possibilità di scrivere quello che desidero e aggiornarmelo.. Probabilmente mi trovo a livelli differenti di visibilità e quindi per questo non me lo mostra..Effettivamente entro ed esco nel codice PHP e quindi non è visibile.

Chiedo a voi come potrei fare. Grazie in anticipo
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
scusami tanto,
ma se tu ti recassi alla biblioteca del tuo paese o città, un libretto piccolo piccolo sul db (uno qualunque o sql) da leggere, lo troveresti sicuramente e potresti evitare molto del codice inutile, che hai scritto ....
mi fermo, i puntini indicano che non ho parole
 

pup3770

Utente Attivo
30 Mag 2012
122
0
16
Non credo possa trovare quello che cerco.

L'inserimento riesco
La ricerca riesco
La selezione riesco
La modifica anche

La lettura di un campo con la visualizzazione del contenuto in un area di testo per la modifica in front-end dall'utente e il successivo aggiornamento nel db non va. Mi da un inserimento vuoto/bianco che mi sovrascrive il dato
 

pup3770

Utente Attivo
30 Mag 2012
122
0
16
scusami tanto,
ma se tu ti recassi alla biblioteca del tuo paese o città, un libretto piccolo piccolo sul db (uno qualunque o sql) da leggere, lo troveresti sicuramente e potresti evitare molto del codice inutile, che hai scritto ....
mi fermo, i puntini indicano che non ho parole

Guarda io veramente sto cercando ovunque. Non trovo nulla che possa essermi utile. Quindi o non so cercare o non è così tanto semplice. La tua risposta non mi ha aiutato tanto. Se magari puoi aiutarmi è ben gradito.

Semplifico il mio problema.

A me interessa inserire mediante un'area di input il mio nome (esempio "pippo"), successivamente leggerlo e modificarlo. Vorrei quindi prendere il contenuto del campo il mio nome. Per esempio "pippo" e modificarlo in "pluto". Il tutto sarebbe più carino mediante un area di testo in cui viene inserito il nome letto "pippo" e basta cancellare e mettere il nuovo nome e successivamente salvarlo.
 

zorro

Utente Attivo
20 Ott 2014
322
21
28
ROMA
Ciao pup3770,
se ho ben capiìto quello che intendi fare, tornando al tuo primo esempio, tu ha un record, ad es. conti, carlo, m, memorizzato in un DB; tramite ad es. un pulsante puoi chiederne la modifica; a questo punto appaiono tre campi di input, rispettivamente per cognome, nome e sesso, riportanti i dati da modificare, che tu puoi cancellare e inserire
i nuovi dati. Il tutto poi andrà modificato anche sul DB. Ho capiito bene? Scusa ma non mi è molto chiaro quellio che intendi fare. Un'altra cosa che non capisco è perché hai usato il cioclo FOR nel codice. Comunque faccio qualche prova e ti faccio sapere.
Ciao


Zorro:byebye::byebye:
 

pup3770

Utente Attivo
30 Mag 2012
122
0
16
Ciao pup3770,
se ho ben capiìto quello che intendi fare, tornando al tuo primo esempio, tu ha un record, ad es. conti, carlo, m, memorizzato in un DB; tramite ad es. un pulsante puoi chiederne la modifica; a questo punto appaiono tre campi di input, rispettivamente per cognome, nome e sesso, riportanti i dati da modificare, che tu puoi cancellare e inserire
i nuovi dati. Il tutto poi andrà modificato anche sul DB. Ho capiito bene? Scusa ma non mi è molto chiaro quellio che intendi fare. Un'altra cosa che non capisco è perché hai usato il cioclo FOR nel codice. Comunque faccio qualche prova e ti faccio sapere.
Ciao


Zorro:byebye::byebye:

Si hai proprio centrato il mio problema. Che il ciclo for mi serve per leggere i dati nel db ed inserirli nelle variabili
PHP:
$cognome, $nome, $sesso

Ok grazie mille..mi saresri di aiuto..ma cmq molti siti implementano questa opzione..boh strano che non sia riuscito e che non ho trovato nulla..

Il problema è che visualizzarlo sei a livello di visibilità delle variabili diversi e il codice per far vedere è un "echo" da mettere in "values" di html..quindi uscendo da php e rientrando non le vede più
 

zorro

Utente Attivo
20 Ott 2014
322
21
28
ROMA
Il problema è che visualizzarlo sei a livello di visibilità delle variabili diversi e il codice per far vedere è un "echo" da mettere in "values" di html..quindi uscendo da php e rientrando non le vede più

Ma infatti, quando vuoi valotizzare una variabile in un form HTML tramite value, dovresti trasformare il tutto in un file PHP, racchiudendo il codice HTML in atrettanti echo :


PHP:
echo '<form name="pippo">';
....
.......
......
echo '</form>';


Poi ti posto il codice.Ciao


Zòrro
 

pup3770

Utente Attivo
30 Mag 2012
122
0
16
Ma infatti, quando vuoi valotizzare una variabile in un form HTML tramite value, dovresti trasformare il tutto in un file PHP, racchiudendo il codice HTML in atrettanti echo :


PHP:
echo '<form name="pippo">';
....
.......
......
echo '</form>';


Poi ti posto il codice.Ciao


Zòrro

Grazie per la risposta "zorro". Non ho capito bene o meglio è forse quello che ho fatto io..

Nel senso.. Io prelevo i dati

PHP:
for($x=0; $x<$numrows; $x++){

    //Recupero il contenuto di ogni record rovato

    $resrow = mysql_fetch_row($result); //mysql_fetch_row() recupera il contenuto dei record trovati. Più precisamente restituisce un array contenente i valori di ogni campo riscontrati nel recordset
        

    if($nome ==  $resrow[0]) { //confronto tra codice "ean" inserito nel campo di ricerca ed "ean" presente nel database
        
    $nome = $resrow[0];

    $cognome = $resrow[1];

    $sesso = $resrow[2];


echo "nome: " . "<tr><td><input type='text' name='nome2' value='".$nome."'></td><br>";

echo "cognome: " . "<tr><td><input type='text' name='cognome2' value='".$cognome."'></td><br>";

echo "sesso: " . "<tr><td><input type='text' name='sesso2' value='".$sesso."'></td><br>";
	
//nel "echo" sottostante mi aspetterei che lui mi stampasse il contenuto delle nuove aree di testo
echo "<br><br>- invece: " . "il codice ean e' : " . $_POST['ean2'] . ", il nome e': " . $_POST['nome2'] . ", il cognome e': " . $_POST['cognome2'] . ", il sesso e': " . $_POST['sesso2'] . "<br><br>";
	
} //fine if
 
    } //fine for

Quindi cosa faccio, mi scorro tutta la tabella e di volta in volta metto nelle variabili il contenuto delle righe per ogni differente colonna.

Come scritto nel commento mi aspetterei che prelevando il nuovo contenuto dei campi, mediante
Codice:
$_POST['']
mi possa prelevare il contenuto..ed invece non lo preleva.

Dove sbaglio?
 

zorro

Utente Attivo
20 Ott 2014
322
21
28
ROMA
Ciao pup3770,
ti posto il codice. Ho creato una tabella di prova contenente 4 record con 4 campi: id_cli, cognome, nome e sesso. Ho letto il tuo codice, ma c'è parecchia confusione e, soprattutto, parecchio codice inutile, soprattutto per la lettura del DB. Quelli che ti posto sono tre file PHP: LEGGITAB.PHP che, come dice il nome, legge e visualizza a video la tabella, permettendone la modifica; uno MODIFY.PHP che permette la modifica del record; e uno SCRIVIMODI.PHP che registra le modifiche in tabella.


LEGGITAB.PHP

PHP:
<?php
//connessione al server DB
$link_connessione=mysql_connect("localhost","............","..........") or die ("Connessione impossibile");

//Selezione del database
$db=mysql_select_db(....................", $link_connessione) or die ("Database inesistente!");

//Visualizzazione dei record di una tabella
$query="SELECT * FROM CLIENTI";
$tabella=mysql_query($query, $link_connessione) or die ("Attenzione: errore nella query");

echo '<table border="0">';
echo '<tr>';
echo '    <td width="40" height="50">ID</td>';
echo '    <td width="140">COGNOME</td>';
echo '    <td width="140">NOME</td>';
echo '    <td width="100">SESSO</td>';
echo '    <td width="150">&nbsp;</td>';

//Esecuzione della query
while ($riga=mysql_fetch_array($tabella)) {
       $id=$riga['ID_CLI'];    
       $cognome=$riga['COGNOME'];
       $nome=$riga['NOME'];
       $sesso=$riga['SESSO'];        
            
       echo '<tr>';
       echo '    <td>'.$id.'</td>';
       echo '    <td>'.$cognome.'</td>';
       echo '    <td>'.$nome.'</td>';
       echo '    <td>'.$sesso.'</td>';
       echo '    <td><a  href="modify.php?id='.$id.'&cognome='.$cognome.'&nome='.$nome.'&sex='.$sesso.'">Modifica</a></td>';
       echo '</tr>';
}
echo '</table>';
?>

Questo codice legge la tabella e la stampa a video, ponendo a fianco ad ogni record un link che ne permette la modifica.

MODIFY.PHP

PHP:
<?php
$id = $_GET['id'];
$cognome = $_GET['cognome'];
$nome = $_GET['nome'];
$sex = $_GET['sex'];

session_start();
$_SESSION['ID'] = $id;

echo '<table border="0">';
echo '<tr>';
echo '    <td width="240">COGNOME</td>';
echo '    <td width="240">NOME</td>';
echo '    <td width="200">SESSO</td>';
echo '</tr>';
echo '</table>';

echo '<br><br>';
echo '<form methot="get" action="scrivitab.php">';
echo '<table border="0">';
echo '<tr>';
echo '    <td width="240"><input type="text" name="cognome" value="'.$cognome.'"></td>';
echo '    <td width="240"><input type="text" name="nome" value="'.$nome.'"></td>';
echo '    <td width="200"><input type="text" name="sex" value="'.$sex.'"></td>';
echo '</tr>';
echo '<tr>';
echo '    <td height="150" colspan="3"><input type="submit" name="invia" value="registra modifiche"></td>';
echo '</tr>';
echo '</table>';
echo '</form>';

?>


Questo memorizza in altrettante variaili il contenuto dei campi del record da modificare, memorizzando anche
l'id_cli in una variabile di sessione (per non perderne ll contenuto pasando da un fle all'altro), dopodiché ti presenta 3 ccampi di input, rispett. per cognme, nome e sesso, che puoi lasciare cosi' o modificare. Cliccando poi REEGISTRA MODIFICHE verrà richiamato

SCRIVITAB.PHP

PHP:
<?php
session_start();
$id = $_SESSION['ID'];

$cogno = $_GET['cognome'];
$nom = $_GET['nome'];
$sesso = $_GET['sex'];


//connessione al server DB
$link_connessione=mysql_connect("localhost",".............","") or die ("Connessione impossibile");

//Selezione del database
$db=mysql_select_db("....................", $link_connessione) or die ("Database inesistente!");

//Esecuzione della query
$query="UPDATE `CLIENTI` SET `COGNOME` = '".$cogno."',`NOME` = '".$nom."',`SESSO` = '".$sesso."' WHERE ID_CLI = '".$id."'";

if (mysql_query($query, $link_connessione)) {
	echo 'il record è stato modificato';
} else {    
	echo 'Attenzione: errore nella query';
}    
?>


che registrerà le modifiche nella tabella. Puoi vedere il link

Spero di essertio stato d'aiuto.:byebye::byebye:


Zorro
 

pup3770

Utente Attivo
30 Mag 2012
122
0
16
Ciao pup3770,
ti posto il codice. Ho creato una tabella di prova contenente 4 record con 4 campi: id_cli, cognome, nome e sesso. Ho letto il tuo codice, ma c'è parecchia confusione e, soprattutto, parecchio codice inutile, soprattutto per la lettura del DB. Quelli che ti posto sono tre file PHP: LEGGITAB.PHP che, come dice il nome, legge e visualizza a video la tabella, permettendone la modifica; uno MODIFY.PHP che permette la modifica del record; e uno SCRIVIMODI.PHP che registra le modifiche in tabella.


LEGGITAB.PHP

PHP:
<?php
//connessione al server DB
$link_connessione=mysql_connect("localhost","............","..........") or die ("Connessione impossibile");

//Selezione del database
$db=mysql_select_db(....................", $link_connessione) or die ("Database inesistente!");

//Visualizzazione dei record di una tabella
$query="SELECT * FROM CLIENTI";
$tabella=mysql_query($query, $link_connessione) or die ("Attenzione: errore nella query");

echo '<table border="0">';
echo '<tr>';
echo '    <td width="40" height="50">ID</td>';
echo '    <td width="140">COGNOME</td>';
echo '    <td width="140">NOME</td>';
echo '    <td width="100">SESSO</td>';
echo '    <td width="150">&nbsp;</td>';

//Esecuzione della query
while ($riga=mysql_fetch_array($tabella)) {
       $id=$riga['ID_CLI'];    
       $cognome=$riga['COGNOME'];
       $nome=$riga['NOME'];
       $sesso=$riga['SESSO'];        
            
       echo '<tr>';
       echo '    <td>'.$id.'</td>';
       echo '    <td>'.$cognome.'</td>';
       echo '    <td>'.$nome.'</td>';
       echo '    <td>'.$sesso.'</td>';
       echo '    <td><a  href="modify.php?id='.$id.'&cognome='.$cognome.'&nome='.$nome.'&sex='.$sesso.'">Modifica</a></td>';
       echo '</tr>';
}
echo '</table>';
?>

Questo codice legge la tabella e la stampa a video, ponendo a fianco ad ogni record un link che ne permette la modifica.

MODIFY.PHP

PHP:
<?php
$id = $_GET['id'];
$cognome = $_GET['cognome'];
$nome = $_GET['nome'];
$sex = $_GET['sex'];

session_start();
$_SESSION['ID'] = $id;

echo '<table border="0">';
echo '<tr>';
echo '    <td width="240">COGNOME</td>';
echo '    <td width="240">NOME</td>';
echo '    <td width="200">SESSO</td>';
echo '</tr>';
echo '</table>';

echo '<br><br>';
echo '<form methot="get" action="scrivitab.php">';
echo '<table border="0">';
echo '<tr>';
echo '    <td width="240"><input type="text" name="cognome" value="'.$cognome.'"></td>';
echo '    <td width="240"><input type="text" name="nome" value="'.$nome.'"></td>';
echo '    <td width="200"><input type="text" name="sex" value="'.$sex.'"></td>';
echo '</tr>';
echo '<tr>';
echo '    <td height="150" colspan="3"><input type="submit" name="invia" value="registra modifiche"></td>';
echo '</tr>';
echo '</table>';
echo '</form>';

?>


Questo memorizza in altrettante variaili il contenuto dei campi del record da modificare, memorizzando anche
l'id_cli in una variabile di sessione (per non perderne ll contenuto pasando da un fle all'altro), dopodiché ti presenta 3 ccampi di input, rispett. per cognme, nome e sesso, che puoi lasciare cosi' o modificare. Cliccando poi REEGISTRA MODIFICHE verrà richiamato

SCRIVITAB.PHP

PHP:
<?php
session_start();
$id = $_SESSION['ID'];

$cogno = $_GET['cognome'];
$nom = $_GET['nome'];
$sesso = $_GET['sex'];


//connessione al server DB
$link_connessione=mysql_connect("localhost",".............","") or die ("Connessione impossibile");

//Selezione del database
$db=mysql_select_db("....................", $link_connessione) or die ("Database inesistente!");

//Esecuzione della query
$query="UPDATE `CLIENTI` SET `COGNOME` = '".$cogno."',`NOME` = '".$nom."',`SESSO` = '".$sesso."' WHERE ID_CLI = '".$id."'";

if (mysql_query($query, $link_connessione)) {
	echo 'il record è stato modificato';
} else {    
	echo 'Attenzione: errore nella query';
}    
?>


che registrerà le modifiche nella tabella. Puoi vedere il link

Spero di essertio stato d'aiuto.:byebye::byebye:


Zorro

Grazie di cuore. Proverò con il mio codice personalizzando il tutto.

Sei stato davvero utile. A presto
 
Discussioni simili
Autore Titolo Forum Risposte Data
MarcoGrazia Riprendere una sessione interrotta PHP 0
T Fermare setInterval e riprendere al passaggio del mouse. Javascript 2
nuovecode interrompere e riprendere un foreach PHP 1
N Riprendere una cartella HTML e CSS 1
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
elpirata Update dinamico informazioni scritte in una pagina php jQuery 11
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
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

Discussioni simili