Php non inserisce dati in db mysql

DeAndreon

Utente Attivo
9 Giu 2009
39
0
0
Ciao a tutti! Sono contento! Ho realizzato una sottospecie di sito per una completa amministrazione dei dati di un db richiesta da un esame di maturità di anni passati:fonzie: Sono riuscito a creare una pagina principale dalla quale si sceglie cosa effettuare, viene caricata la pagina scelta e poi si passa alla pagina del risultato in php dove poi è possibile tornare alla pagina principale:fonzie: L'unica cosa che non mi funziona è la modifica dei dati... riesco a farli eliminare, aggiungere, visualizzare ma non a modificarli anche se non mi da nessun errore ma i dati quando visualizzo il database sia in mysql che phpmyadmin è sempre identica la riga che modifico... ecco il listato:

<html>
<head>
<title>Pagina modifica</title>
<head>
<body>
<?php
$conn = mysql_connect("localhost","root","gt40forever");
if (! $conn)
{
echo "Errore connessione database";
}
$db = mysql_select_db("sdo");
if(!$db)
{
echo "Errore selezione database";
}
$codricovero = $_POST['c'];
$codosp= $_POST['1'];
$codpaz = $_POST['2'];
$datain = $_POST['3'];
$datadim = $_POST['4'];
$codtiporic = $_POST['5'];
$query = "UPDATE ricovero SET codosp = '$codosp', codpaz = '$codpaz', dataric ='$datain', datadim = '$datadim', codtipo = '$codtiporic' WHERE codric = 'codricovero';";

if (!$query)
{
echo "Errore inserimento query";
}
else
{
echo "Modifica effettuata al ricovero n° ".$codricovero;

}

?>

<a href = "paginiziale.html"> clicca qui per tornare alla pagina iniziale</a>

</body>
</html>

E' stata una buona esercitazione in via della prova scritta d'esame che ho venerdì... Sono veramente contento però non riesco a capire perchè non riesco a modificare i dati:confused:

Mi sapete dire dove sbaglio?
Grazie!:beer:
 

DeAndreon

Utente Attivo
9 Giu 2009
39
0
0
Ciao! Grazie sempre del tuo puntuale soccorso!:) L'ho cambiato ma non mi modifica lo stesso una riga a piacere...

Ecco il listato ora:

<html>
<head>
<title>Pagina modifica</title>
<head>
<body>
<?php
$conn = mysql_connect("localhost","root","gt40forever");
if (! $conn)
{
echo "Errore connessione database";
}
$db = mysql_select_db("sdo");
if(!$db)
{
echo "Errore selezione database";
}
$codricovero = $_POST['c'];
$codosp= $_POST['1'];
$codpaz = $_POST['2'];
$datain = $_POST['3'];
$datadim = $_POST['4'];
$codtiporic = $_POST['5'];
$query = "UPDATE ricovero SET codosp = '$codosp', codpaz = '$codpaz', dataric ='$datain', datadim = '$datadim', codtipo = '$codtiporic' WHERE codric = '$codricovero'";

if (!$query)
{
echo "Errore inserimento query";
}
else
{
echo "Modifica effettuata al ricovero n° ".$codricovero;

}

?>

<a href = "paginiziale.html"> clicca qui per tornare alla pagina iniziale</a>

</body>
</html>


Però è strano, non mi da errore... Dice che la modifica è stata effettuata con successo...
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
avevo guardato il codice in fretta e la cosa più evidente ed "essenziale" mi era sfuggita

non hai messo mysql_query, puoi fare così
PHP:
//...........
$codtiporic = $_POST['5'];
$query = "UPDATE ricovero SET codosp = '$codosp', codpaz = '$codpaz', dataric ='$datain', datadim = '$datadim', codtipo = '$codtiporic' WHERE codric = '$codricovero'"; 
$uppa=mysql_query($query);
if (!$uppa)
{
echo "Errore inserimento query";
//..................

oppure più semplicemente

PHP:
$codtiporic = $_POST['5'];
$query = "UPDATE ricovero SET codosp = '$codosp', codpaz = '$codpaz', dataric ='$datain', datadim = '$datadim', codtipo = '$codtiporic' WHERE codric = '$codricovero'"; 
if (!mysql_query($query))
{
echo "Errore inserimento query";
//..................
 

DeAndreon

Utente Attivo
9 Giu 2009
39
0
0
Uuuuuuuuuuuuu, è vero!!!!!!!!!!!! Non c'è mysql_query dopo l'inserimento della query in $query!!!!!!!!!!!!! Che sbadato!!!!!!!! E non me ne sono accorto!:D Grazie ! Grazie ancora per il tuo aiuto!:beer:

Solo che ora è uscito l'errore dell'inserimento della query... uffffffff

Ecco il listato modificato:

<html>
<head>
<title>Pagina modifica</title>
<head>
<body>
<?php
$conn = mysql_connect("localhost","root","gt40forever");
if (! $conn)
{
echo "Errore connessione database";
}
$db = mysql_select_db("sdo");
if(!$db)
{
echo "Errore selezione database";
}
$codricovero = $_POST['c'];
$codosp= $_POST['1'];
$codpaz = $_POST['2'];
$datain = $_POST['3'];
$datadim = $_POST['4'];
$codtiporic = $_POST['5'];
$query = "UPDATE ricovero SET codosp = '$codosp', codpaz = '$codpaz', dataric ='$datain', datadim = '$datadim', codtipo = '$codtiporic' WHERE codric = '$codricovero'";
$res = mysql_query($query);
if (!$res)
{
echo "Errore inserimento query";
}
else
{
echo "Modifica effettuata al ricovero n° ".$codricovero;

}

?>

<a href = "paginiziale.html"> clicca qui per tornare alla pagina iniziale</a>

</body>
</html>


A me sembra corretta la query... Ma non servono per forza tutti i valori, vero? posso inserire solo quelli da modificare, vero?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
posso inserire solo quelli da modificare, vero?
SI

due cose
metti dop la $query il solito

PHP:
$query = "UPDATE ricovero SET codosp = '$codosp', codpaz = '$codpaz', dataric ='$datain', datadim = '$datadim', codtipo = '$codtiporic' WHERE codric = '$codricovero'"; 
var_dump($query);
$res = mysql_query($query);

e verifica che sia giusta

secondo
verifica che tra query e tabella i nomi corrispondano (anche minuscole/maiuscole) e verifica che per caso tu non abbia alcune variabili vuote e che il corrispondente campo non sua NOT NULL, se un valore è vuoto ed il campo NOT NUL non fai l'uppatura
 

DeAndreon

Utente Attivo
9 Giu 2009
39
0
0
Ecco il risultato:

string(108) "UPDATE ricovero SET codosp = '1', codpaz = '1', dataric ='', datadim = '', codtipo = '1' WHERE codric = '4';" Errore inserimento query clicca qui per tornare alla pagina iniziale


gli unici NOT NULL sono codosp, codpaz, codtipo, codric. Gli altri di default sono NULL. Corrispondono maiuscole/minuscole, i dati a quanto pare passano... Non riesco a capire perchè mi da errore:gun::incazz2:
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
Errore inserimento query clicca qui per tornare alla pagina iniziale
se i dati passano (quindi la query è giusta) come mai non vedi l'errore?
ricordati che i computer non fanno quello che vorresti che facessero, ma quello chi gli dici difare:rolleyes:

guarda bene
1. dove hai messo l'istruzione
HTML:
<a href = "paginiziale.html"> clicca qui per tornare alla pagina iniziale</a>
essendo fuori dell'if viene sempre eseguita
2. la negazione di TRUE è FALSE, quindi se la query va a buon fine $res=TRUE
ma !$res vuol dire che se NON è TRUE (cioè è FALSE) esegue il primo if e non l'else, (un po' arzigogolato ma fa parte della logica binaria)
metti if($res){....


p.s.
poi per favore NON facciamo politica
 

DeAndreon

Utente Attivo
9 Giu 2009
39
0
0
Ciao! Mi ritrovo pienamente con quello che hai detto tu. Se è false esegue il primo if mentre se è vera esegue l'else. Quindi se la query fosse andata a buon fine, eseguirebbe l'else, no?:confused:

<a href = "paginiziale.html"> clicca qui per tornare alla pagina iniziale</a>
l'ho messo apposta dopo l'if per consentirmi di ritornare alla pagina iniziale indipendentemente dal risultato.:fonzie:
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
Se è false esegue il primo if mentre se è vera esegue l'else
si è giusto
mi sono accorto di una cosa guardando il tuo var_dump

string(108) "UPDATE ricovero SET codosp = '1', codpaz = '1', dataric ='', datadim = '', codtipo = '1' WHERE codric = '4';"

c'è un ; che non dovrebbe esserci, guarda da dove ti salta fuori e toglilo
 

DeAndreon

Utente Attivo
9 Giu 2009
39
0
0
Uffyyyyyyyyyyyyyyyyyyy, ho tolto anche quello e mi da lo stesso errore!:

string(107) "UPDATE ricovero SET codosp = '1', codpaz = '1', dataric ='', datadim = '', codtipo = '1' WHERE codric = '4'" Errore inserimento query clicca qui per tornare alla pagina iniziale

Eccoti la tabella:

mysql> describe ricovero;
+---------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+----------------+
| codric | int(11) | NO | PRI | NULL | auto_increment |
| codosp | int(11) | NO | MUL | NULL | |
| codtipo | int(11) | NO | MUL | NULL | |
| dataric | varchar(20) | YES | | NULL | |
| datadim | date | YES | | NULL | |
| codpaz | int(11) | NO | MUL | NULL | |
+---------+-------------+------+-----+---------+----------------+
6 rows in set (0.03 sec)

mysql>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao,
mi è venuto "un" piccolo dubbio:
1.come fai l'insert della tabella?
2. codric è primary_key?

guardando la tabella con adminmysql risulta gia un record con codric = '4' ? perchè se non c'è non uppa.

ti chiedo questo perchè da quanto vedo non dovrebbero esserci errori e non vorrei che si perdesse la testa cercando in uppa quando l'errore è a monte
 

DeAndreon

Utente Attivo
9 Giu 2009
39
0
0
Ciao! Questo è il listato dell'inserimento di un ricovero(la pagina php) e funziona:

<html>
<head>
<title> Aggiunto ricovero </title>
</head>
<body>
<h4> Aggiunto ricoverato con i seguenti valori</h4><br><br>

<?php
$conn = mysql_connect("localhost","root","gt40forever");
if (!$conn)
{
echo "Errore connessione database";
exit();
}
$db = mysql_select_db("sdo");
if (!$db)
{
echo "Errore selezione database";
exit();
}
$codosp= $_POST['1'];
$codpaz = $_POST['2'];
$datain = $_POST['3'];
$datadim = $_POST['4'];
$codtiporic = $_POST['5'];
$query = "INSERT INTO ricovero (codosp, codtipo, dataric, datadim, codpaz) VALUES ('$codosp','$codtiporic','$datain','$datadim','$codpaz');";
$res = mysql_query($query);
if (!$res)
{
echo "Errore esecuzione query";
}
else
{
echo "Codice ospedale : ".$codosp;
echo ("<br>");
echo "Codice paziente : ".$codpaz;
echo ("<br>");
echo "Data inizio ricovero : ".$datain;
echo ("<br>");
echo "Data dimissione ricoverato :".$datadim;
echo ("<br>");
echo "Codice tipo ricovero : ".$codtiporic;
echo ("<br>");

}

?>

Per tornare alla pagina principale clicca <a href = "paginiziale.html">qui</a>

</body>
</html>


codric è primary_key. Sisi, già risulato un codric = 4. Da 3 fino a 12 ci stanno i codric.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
proviamo l'ultimo tentativo

prova a togliere

WHERE codric = 4
gli apici al 4, il mio manuale dice che se è un intero non "servirebbero" (attenzione non dice che non ci vogliono)
io normalmente li utilizzo, ma forse mi vanno sempre bene in quanto io prelevo la condizione da $_POST che restituisce una stringa per cui
$condizione=$_POST['condizione'];
WHERE codric = '$condizione'
è corretto:confused:

se non va così non so più che pesci pigliare
 

DeAndreon

Utente Attivo
9 Giu 2009
39
0
0
Ciao! Ho provato... Niente... Ma in teoria dovrebbe essere corretto il listato, vero? Se così, non fa niente:fonzie: L'importante che posso prenderlo come esempio per l'esame:fonzie: Grazie per il tuo puntuale aiuto (come sempre:D):fonzie:
 
Discussioni simili
Autore Titolo Forum Risposte Data
Monital [PHP] Insert into non inserisce tutti i dati PHP 1
G form php connesso a database ma non inserisce dati PHP 5
L tipo boolean non funzionante su mariadb (mysql). E codice php 7.4. PHP 0
P Data scraping in PHP non funziona PHP 4
L php mysql non salva solo id PHP 21
A php metodo post jquery non da mai errore jQuery 4
M Guestbook - non funziona dopo upgrade di PHP PHP 5
Valerio93 [PHP] non capisco come mai mi da la data NULL PHP 3
S [PHP] non prende la query PHP 0
WebmasterFioriniAndrea [PHP] Problema che non mi fa vedere niente PHP 2
Leshabituelles Non riesco ad aggiornare PHP PHP 0
Max 1 [PHP] Script che funziona in locale e non online PHP 16
R [PHP] pagina inclusa che non viene visualizzata PHP 2
Punix [PHP] query non valida PHP 1
M [PHP] Visualizzare un array partendo dal numero 1 e non 0 PHP 5
gandalf1959 [PHP] Inserimento di più righe non funziona come mi aspetto... PHP 2
M [PHP] Query UPDATE che non mi aggiorna campi seconda tabella PHP 3
M [PHP] header (location..) non funzionante dopo login PHP 3
B [PHP] Valore variabile non riconosciuto PHP 1
M [PHP] Selezionare immagini directory non presenti in db PHP 11
P [PHP] $_GET non preleva variabile nell’URL PHP 4
R mojave php non interpretato PHP 11
M Non corretta lettura del file php.ini della sezione CLI PHP 3
P [PHP] Input Type="date" non va correttamente con Apple PHP 2
Cosina [PHP] Preservare i campi del form solo se l'invio non ha successo PHP 5
S [PHP] Selezionare i campi non in comune con le altre colonne della tabella PHP 4
T interpretare uno script php non fatto da me... PHP 3
M PHP - Funzione non e scrive il risultato PHP 3
L [PHP] case then e campo non riconosciuto PHP 0
T [PHP] aiuto....Fatal error: Uncaught Error:non riesco a capire PHP 1
T [PHP] ...Parse error che non c'è... PHP 7
M [PHP] Non si connette PHP 7
W [PHP] Non esegue il parsing su un dato sito e negli altri si... PHP 0
A Php mail non invia due mail di seguito PHP 3
O PHP 5.6 non riesco ad abilitare TSL 1.2 PHP 1
L [PHP] Nuovo server, query non funzionano PHP 3
M [PHP] Escludere campi non valorizzati PHP 22
Tommy03 Perchè non si apre una pagina PHP PHP 4
F [PHP] if(isset($_POST['Invia'])) non mi riconosce le variabili PHP 3
D [PHP] Update non trasferisce condizione where PHP 1
V Creare tabella mysql con php non funziona PHP 1
V [PHP] Perché non funziona ? PHP 1
V [PHP] Variabile modificata in un if non mantiene quel valore PHP 5
alessandra86 [PHP] Elementi di un array non visualizzabili PHP 7
C [PHP] non trovo l'errore? PHP 3
A [PHP] Non prende variabile $provincia ma tutte le altre si PHP 6
M [css][php] codice php esterno non vede il css PHP 6
M [PHP] Non calcola l'ultimo record inserito PHP 13
M [PHP] Problema IF non riconosciuta PHP 2
webimage [PHP] Non inserimento in tabella PHP 19

Discussioni simili