Cancellare record su più tabelle con PHP

alessiof86

Utente Attivo
6 Lug 2009
134
0
0
Buonasera sono un neofita del php e mysql, devo creare uno script per la cancellazione di record che sono in relazione fra loro. Le tabelle interessate sono 2:
1) mel contenente i seguenti campi id_mel - lotto_conf - quantita
2) stoc contenete i campi id_stoc - lotto_conf - data

le tabelle sono in relazione tramite lotto_conf

ora dovrei creare una query per cancellare al click dell utente la riga selezionata e i dati inerenti alla tabella stoc in relazione con la tabella mel. La pagina passa il valore id_mel, uqesto lo recupero ma non so ocme strutturare la query. Cosa mi suggerite? Grzie mille
 

alessiof86

Utente Attivo
6 Lug 2009
134
0
0
Quindi dorei scrivere

DELETE mel.*
FROM mel INNER JOIN stoc
ON mel.lotto_conf = stoc.lotto_conf
WHERE id_mel = $id_mel

il valore $id_mel la recupero prima della query. Quindi mi confermi che così facendo cancello il record selezioato della tabella mel e quello in relazione con questo della tabella stoc?

Grazie mille per l'aiuto
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
No, in teoria cancelli solo quello nella tabella mel
se devi cancellarli entrambi ti conviene fare due DELETE prima in una tabella e poi nell'altra
 

alessiof86

Utente Attivo
6 Lug 2009
134
0
0
Quindi devo prima ricavarmi il valore di lotto_con e poi creare una nuova delete che va a cancellare il record nella tabella stoc?

Sto uscendo pazzo, mi sto incartando su una cosa banale. Come lo ricavo il valore lotto_conf sapendo id_mel della tabella mel?

Grazie per la tua pazienza
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
puoi fare una semplice select
select lotto_conf form mel where id_mel = $id
e poi fai le due delete
oppure
fai la delete con la join dell'articolo e poi una delete normale sull'altra tabella
 

alessiof86

Utente Attivo
6 Lug 2009
134
0
0
puoi fare una semplice select
select lotto_conf form mel where id_mel = $id
e poi fai le due delete
oppure
fai la delete con la join dell'articolo e poi una delete normale sull'altra tabella

Quindi dovrei fare questo... puoi dirmi se può funzionare o ci sono errori di sintassi

PHP:
sql="SELECT lotto_conf FROM mel WHRE id_mel = $id";
$result=mysql_query($sql);
$row=mysql_fetch_array($result);
$lotto_conf = $row["visite"];

sql2="DELETE FROM mel WHERE id_mel = $id";
$result2=mysql_query($sql2);

sql3="DELETE FROM stoc WHERE lotto_conf = $lotto_conf";
$result3=mysql_query($sql3);

Grazie di nuovo per la tua pazienza
 

alessiof86

Utente Attivo
6 Lug 2009
134
0
0
Quindi dovrei fare questo... puoi dirmi se può funzionare o ci sono errori di sintassi

PHP:
sql="SELECT lotto_conf FROM mel WHRE id_mel = $id";
$result=mysql_query($sql);
$row=mysql_fetch_array($result);
$lotto_conf = $row["visite"];

sql2="DELETE FROM mel WHERE id_mel = $id";
$result2=mysql_query($sql2);

sql3="DELETE FROM stoc WHERE lotto_conf = $lotto_conf";
$result3=mysql_query($sql3);

Grazie di nuovo per la tua pazienza

Ciao scusate ma non finziona potreste indicare il punto dove sbaglio grazie milllleeeee
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
$lotto_conf = $row["visite"];
sicuro che il campo si chiama visite ?
sql3="DELETE FROM stoc WHERE lotto_conf = $lotto_conf";
se $lotto_conf non è numerico devi mettere anche gli apici
PHP:
sql3="DELETE FROM stoc WHERE lotto_conf = '$lotto_conf'";
 

alessiof86

Utente Attivo
6 Lug 2009
134
0
0
sicuro che il campo si chiama visite ?

se $lotto_conf non è numerico devi mettere anche gli apici
PHP:
sql3="DELETE FROM stoc WHERE lotto_conf = '$lotto_conf'";


Ho correttovisite che non si chiamava così ma ora mi restituisce questo errore
Parse error: syntax error, unexpected '=' ........

sullaprima riga di codice, quindi la prima select
 

alessiof86

Utente Attivo
6 Lug 2009
134
0
0
Il problema ora è che esegue solo la delete sulla tabella mel, mentre quella sulla tabella stoc viene ignorata, mi sai indicare il perchè e come potrei risolvere
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
usa le funzioni di mysql per trovare gli errori
PHP:
if(!$result3) {
echo "errore" . mysql_error();
}
 

alessiof86

Utente Attivo
6 Lug 2009
134
0
0
usa le funzioni di mysql per trovare gli errori
PHP:
if(!$result3) {
echo "errore" . mysql_error();
}


Ho provato ma non mi restitutisce nessun errore ti posto il codice

PHP:
$sql="SELECT lott_conf FROM melari WHRE id_mel=$id";
$result=mysql_query($sql);
$row=mysql_fetch_array($result);
$lotto_conf = $row["lott_conf"];


$result2 = mysql_query("DELETE FROM melari WHERE id_mel=$id")
or die(mysql_error());

$result3 = mysql_query("DELETE FROM stoc_conf WHERE lotto_conf='$lotto_conf'")
or die(mysql_error());

La prima delete viene eseguita mentre la seconda no.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Separa la query dalla sua esecuzione e stampala
PHP:
$query = "DELETE FROM stoc_conf WHERE lotto_conf='$lotto_conf'";
$result3 = mysql_query($query); 
echo $query;
Se ti sembra corretta eseguila direttamente su phpmyadmin e vedi cosa ti restituisce
 

alessiof86

Utente Attivo
6 Lug 2009
134
0
0
Ho eliminato la delete eseguita correttamente lasciando solo le righe necessarie per la seconda delete

PHP:
$sql="SELECT lott_conf FROM melari WHRE id_mel=$id";
$result=mysql_query($sql);
$row=mysql_fetch_array($result);
$lotto_conf = $row["lott_conf"];
$query = "DELETE FROM stoc_conf WHERE lotto_conf='$lotto_conf'";
$result3 = mysql_query($query); 
echo $query;

e mi restituisce il seguente errore

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /web/.....................on line 25
DELETE FROM stoc_conf WHERE lotto_conf=''

Non riesco a capire a questo punto il problema sta quando vado a memorizzare il valore di $row["lott_conf"] nela variabile $lotto_conf
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
il problema è abbastanza chiaro
Codice:
DELETE FROM stoc_conf WHERE lotto_conf=''
$lotto_conf non è valorizzato
il problema sta nella SELECT
fai la stampa anche di quella
 

alessiof86

Utente Attivo
6 Lug 2009
134
0
0
Ho provato solo a scirvere questo

PHP:
$sql="SELECT lott_conf FROM melari WHRE id_mel=$id";
$result=mysql_query($sql);
$row=mysql_fetch_array($result);
$lotto_conf = $row["lott_conf"];
echo $sql;

e mi restituisce il seguente risultato
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /web/htdoc...........on line 25
SELECT lott_conf FROM melari WHRE id_mel=2

Cioè nn recupera il valore.... cosa mi consigli di fare
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
nella delete scrivi
Codice:
WHERE lotto_conf
nella select
Codice:
SELECT lott_conf
o è lott o è lotto
devi stare più attento a quello che scrivi
e rileggerlo più volte
 
Discussioni simili
Autore Titolo Forum Risposte Data
ste80 [PHP] cancellare/aggiornare record DB PHP 24
M Cancellare record a tempo con formato data mktime PHP 7
novello88 [MySQL] Delete Record (cancellare una riga) MySQL 1
P Cancellare record ASP.NET 0
grottafelix Cancellare un record Classic ASP 4
Cosina Cancellare una specifica email da un elenco in un file txt PHP 3
S Cancellare una riga MYSQL PHP 1
G Con Microsoft Outlook 2016 come si possono cancellare le mail doppie? Posta Elettronica 0
Cosina [PHP] Cancellare una riga da un file di testo in base al nome PHP 2
Cosina [PHP] Cancellare una riga da un file txt in base alla data PHP 1
L conferma prima di cancellare con javascript e php PHP 16
H cancellare avatar in codice PHP PHP 2
M [PHP] Cancellare singolo file da cartella su server PHP 3
A [PHP] Cancellare riga database a scelta dell'utente PHP 2
trattorino [PHP] sql aggiungere dato in una tabella senza cancellare contenuto PHP 6
C Cancellare un elemento del DOM jQuery 4
D [PHP] CANCELLARE MAILPLAN PHP 2
Trapano [PHP] Cancellare file da una cartella.... PHP 5
K [PHP] Cancellare e Stampare tabella PHP 3
felino [PHP] Cancellare directory con file al suo interno PHP 2
A Cancellare righe vuote in mysql Database 4
L Cancellare web site Weebly CMS (Content Management System) 0
G Pagina facebook da cancellare Social Media Marketing 4
JackIlPazzo Sostituire una riga specifica in un file di testo senza cancellare il rimanente PHP 13
E cancellare immagini che non sono nel db mysql PHP 1
max_400 Cancellare le prime 3 righe di un file PHP 4
voldemort Cancellare un file con 0 byte Java 1
filippino Come cancellare dati da un database MySQL? Database 1
IImanuII Cancellare righe doppie e ciclo. PHP 2
O Cancellare dati da una tabella mysql in modo automatico PHP 2
K Help cancellare manualmente plugin WordPress 2
A cancellare TUTTI i cookies PHP 2
S aiuto non so cancellare i dati: PHP 1
D Cancellare una Stringa di testo da un file txt PHP 8
M cancellare una immagine dal database PHP 3
F 2 Div uniti, cancellare bordo. HTML e CSS 1
ivarello Cancellare parole dopo ";" PHP 4
M cancellare del testo in sql PHP 1
C cancellare un elemento in un array memorizzato in una sessione PHP 12
F Devo cancellare un sito web su Google SEO e Posizionamento 2
D Non riesco a cancellare un href >.< Javascript 6
IImanuII Cancellare una cartella piena PHP 14
valient13 aprire un alert per cancellare Javascript 1
D Come cancellare Internet Explorer 8? Windows e Software 2
M Cancellare tutti i caratteri fra due caratteri PHP 6
L Come faccio a cancellare un account di posta su Apple Mail? Posta Elettronica 1
Web Designer Come cancellare file bloccati sul desktop Windows e Software 0
L Cancellare cookie / cache / cronologia da Safari di iPhone Smartphone e tablet 1
novello88 Cancellare un elemento con JQuery jQuery 1
M Script php per cancellare file PHP 1

Discussioni simili