[risolto] insert into if select non presente

Monital

Utente Attivo
15 Apr 2009
778
2
18
Salve a tutti,

ho un problema che non so bene come risolvere.

Per evitare macchinose ricerche e script pensavo di poter fare un insert into direttamente verificando una select.

Ad esempio ho una serie di dati in un array e devo fargli fare l'insert se i dati all'interno non sono presenti in tabella.

Perciò una cosa del genere

PHP:
INSERT INTO tabella VALUES('','".$campo1."','".$campo2."','".$campo3."') WHERE

e qua inserirgli una condizione del tipo

PHP:
NOT (SELECT id from tabella where campo1=$campo1 AND campo2='$campo2'......etc.

come si costruisce un insert cosi?

Grazie
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
insert into if select non presente

Separa la query in 2 query diverse:
1) controlla se esiste già
2) (se non esiste) inserisci
 

Monital

Utente Attivo
15 Apr 2009
778
2
18
e longo ho già provato cosi ma la query è inserita in un ciclo.

quindi ad esempio mi fa 5 query e magari in una trova i dati inseriti e non passa all'insert e quindi non mi inserisce le altre 4
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Fai il controllo prima di ogni query di inserimento così come dovresti fare anche se le query fossero unite.
 

Monital

Utente Attivo
15 Apr 2009
778
2
18
scusa longo ma forse non mi sono spiegato bene.

la query di controllo io l'avevo prevista ma questa è all'interno di un foreach che scorre un multiarray. Se gli elementi sono 5 e ne trova uno solo per mysql la query è comunque piena pertanto nonr iesco a far inserire i dati delle altre 4.


questo il codice
PHP:
foreach($array as $KEY=>$part){
foreach($part as $key=>$part1){
$sqlquery = "SELECT * FROM tabella  WHERE campo1='".$KEY."' AND campo2='".$key."' AND campo3='".$part1['campo3']."'";
$result = mysql_query($sqlquery);
while ($linea = mysql_fetch_array($result)) {
$xxx=$linea['Id'];
}

if(!$xxx){
$sqlquery = "INSERT INTO tabella  VALUES('','".$key."','".$part1['campo3']."','".$KEY."','".$part1['campo4']."','".$part1['campo5']."','','0','')";
$result = mysql_query($sqlquery);
}
}
}

questa funziona finchè il contenuto dell'array è completamente assente nella tabella ma se trova un elmento non funge più.

magari sbaglio l'if o mi sto incasinando.

ma in mysql non è ppossibile fare una cosa del genere come ho descritto sopra?

mi eliminerebbe sto problema e cmq faciliterei il controllo.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
secondo me, evitando anche un while, i sistema migliore è
PHP:
<?php
foreach($array as $KEY=>$part){
	foreach($part as $key=>$part1){
		$sqlquery = "SELECT * FROM tabella  WHERE campo1='".$KEY."' AND campo2='".$key."' AND campo3='".$part1['campo3']."'";
		$esiste = mysql_num_rows(mysql_query($sqlquery));
		if($esiste==0){
			$sqlquery = "INSERT INTO tabella  VALUES('','".$key."','".$part1['campo3']."','".$KEY."','".$part1['campo4']."','".$part1['campo5']."','','0','')";
			$result = mysql_query($sqlquery);
		}
	}
}  
?>
questo se non ho capito male quello che vuoi fare

non avevo visto il post di longa, penso meglio ancora
 
Ultima modifica:

Monital

Utente Attivo
15 Apr 2009
778
2
18
Grazie ad entrambi. preferisco al soluzione di borgo solo perchè le due query sono un pò complesse e quindi il codice di borgo è + semplcie per la modifica.

però..........

sono stato uno stupido a non pensare a mysql_num_rows

grazie
 
Discussioni simili
Autore Titolo Forum Risposte Data
A [PHP] Problema query insert [RISOLTO] PHP 14
elpirata [RISOLTO][Mysql] Problema insert valori apostrofati MySQL 1
H [RISOLTO]Problema connessione + insert mysqli PHP 10
L (risolto) MySQL 0
B getElementById su piu id(Risolto) Javascript 6
L Esercitarsi con Js [RISOLTO] Javascript 4
C [RISOLTO]Inserimento variabile php in input html PHP 20
L risolto visualizzazione e ordinamento dati PHP 1
moustache [RISOLTO] SQL PHP IIS PHP 8
Sergio Unia Ricezione email con destinatari multipli [Risolto] PHP 2
L update tabelle in php mysql [risolto] PHP 6
M Semplice visualizzatore di immagini [risolto con plugin wp] PHP 7
L [RISOLTO] Stampa a video risultato count in html PHP 13
L [RISOLTO] Eliminare una discussione creata PHP 3
tomorc [HTML] Problema con scroll bar (risolto) HTML e CSS 0
B [PHP] recuperare IP dei server in load balancing [RISOLTO] PHP 3
K [RISOLTO] Problema Griglia Php+Mysql PHP 13
S [RISOLTO] aggiorna tabella da select option asp classic Classic ASP 7
elpirata [RISOLTO][Javascript] Datapicker e autocompletamento campo input Javascript 2
elpirata [RISOLTO][Mysql] Contare le occorrenze in un campo tipo varchar MySQL 2
G [MS Access] Gestione biglietti [RISOLTO] MS Access 2
G [MS Access] Casella combinata & Query [RISOLTO] MS Access 4
G [MS Access] Query mese corrente con conteggio [RISOLTO] MS Access 2
M [RISOLTO]Windows media player non mi funziona più su win 10 pro 64 bit Windows e Software 2
C [RISOLTO][PHP] Errore di sintassi PHP 8
IT9-Gpp [RISOLTO] Leggere variabile restituita da success Ajax 3
Kolop [RISOLTO][PHP] Problema Pagination PHP 2
C [RISOLTO][PHP] Funzione ONclick PHP 14
C [RISOLTO][PHP] Conteggio righe di una tabella PHP 4
N [PHP] Utilizzo variabili di sessione [Risolto] PHP 13
Tommy03 [RISOLTO][PHP] Webserver o devserver? PHP 2
Sergio Unia Recupero dati da una vecchia versione MySql [Risolto] MySQL 4
spider81man [PHP] Problemi cancellazione dato su DB [RISOLTO] PHP 1
A [RISOLTO]Inserimento Immagini da pc a MySql PHP 15
A [PHP] RISOLTO Invio Mail con Tabella PHP 2
felino Risolto - [Wordpress][WooCommerce] PayPal Checkout e campi di fatturazione WordPress 2
elpirata [PHP][RISOLTO] Sommare gli importi estratti da un ciclo while PHP 3
elpirata [PHP][RISOLTO] Effettuare la somma dei tempi di lavorazione PHP 3
elpirata [PHP] [RISOLTO]Sovrascrivere testo in una tabella PHP 2
A [RISOLTO]Recuperare dati inviati con json tramite php PHP 4
C [RISOLTO][PHP] Passaggio variabili senza refresh di pagina PHP 7
elpirata [PHP][RISOLTO] Errore di tipo Notice: Undefined index - Come risolvere quando si hanno tante var PHP 10
S Problema in PHP per invio file XML - RISOLTO- PHP 8
A [Javascript] [RISOLTO] Doppio "submit", in uno stesso "Form" , che puntino ad "action" diversi Javascript 1
marino51 [Risolto]videochat di messenger ha smesso di funzionare sul telefonino Smartphone e tablet 1
A [Javascript] [HTML] RISOLTO...Allungare un box all'apertura della pagina No Mouse over Javascript 9
ken_korn [Javascript][Risolto] browser.tab.Tabs.favIconUrl non funziona Javascript 5
A [RISOLTO] HighChart e PHP PHP 4
A [RISOLTO] PHP Selezionare tutti i file con stessa estensione PHP 2
A [RISOLTO] Table elaborata da codice PHP con dati da DB non visualizzata in IFRAME PHP 15

Discussioni simili