un'altra cosa...
in che modo potrei impostare il rilevamento di un campo duplicato... se per esempio il codice prodotto è gia stato inserito?
If....
un'altra cosa...
in che modo potrei impostare il rilevamento di un campo duplicato... se per esempio il codice prodotto è gia stato inserito?
If....
La query INSERT la puoi fare in tre modi.Originariamente inviato da lory2
Tutto fatto, ok ora FUNZIONA!!!
una domanda:
Posso inserire anche i valori di una parte di campi o devono essere comunque tutti presenti nella query?
devono essere elencati nel modo in cui sono presenti nella tabella?
senza segnare alcun campo. In questo caso i valori dei campi devono essere TUTTI presenti (anche se vuoti o null) e nell'ordine che si presentano nella tabella.
assegnando solo i campi e valori interessati. Puoi mettere qualsiasi ordine i campi e ovviamente con la stessa logica i valori.
assegnando campo = valore. Questa e' una eccezione di mysql. Puoi mettere i campi=valori parzialmente e in qualsiasi ordine.
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
se codice prodotto è la chiave della tabella te lo dice lui che non puoi inserirlo.
se non lo è devi fare una select sulla tabella per verificare che non esista
Ciro Marotta - Programmatore JAVA - PHP
Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.
Anche qui puoi usare diversi metodi. Usare un indice UNIQUE che pero' ti torna un errore che dovra' essere gestito.Originariamente inviato da lory2
un'altra cosa...
in che modo potrei impostare il rilevamento di un campo duplicato... se per esempio il codice prodotto è gia stato inserito?
If....
insert into ..... ON DUPLICATE KEY UPDATE ... invece dell'insert ti fara' un update
replace into .... se trova il campo id / unique esistente cancella il record vecchio e scrive il nuovo ma "cambiando l'id" e se devi essere relazionato ad altra tabella questo dovra' essere gestito.
il piu' banale e' una select count(*) ... where campo = $codice.
se rende 1 esiste, 0 non esiste, > 1 ne hai piu' di uno.
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
infatti nella tabella ho usato questo parametro...dovrei perciò gestire questo errore...Anche qui puoi usare diversi metodi. Usare un indice UNIQUE che pero' ti torna un errore che dovra' essere gestito.
Posso in qualche modo servirmi della funzionema non so come dirgli che se l'errore è Duplicate entry '789789' for key 'CodiceProdotto' deve avvisare con un messaggio tipo: attenzione, il codice è gia stato inserito...Codice PHP:function errore_server()
{
echo "
[b]Il database sembra
non rispondere...[/b]
MySql
dice:
<font color=red>";
echo mysql_error();
echo "</font>
pregasi
<a href=\"mailto:lory22@alchimiaweb.net\">
segnalare</a> il problema";
}
visto che ti piacciono le funzioncine per queste routine fanne una che controlli "a monte" che non ci sia gia' il valore inserito. Ognuno la pensa come vuole ma personalmente penso che se "qualcosa" mi ritorna un errore e' meglio gestirlo a priori prevenendo l'errore stesso.Originariamente inviato da lory2
infatti nella tabella ho usato questo parametro...dovrei perciò gestire questo errore...
Posso in qualche modo servirmi della funzionema non so come dirgli che se l'errore è Duplicate entry '789789' for key 'CodiceProdotto' deve avvisare con un messaggio tipo: attenzione, il codice è gia stato inserito...Codice PHP:function errore_server()
{
echo "
[b]Il database sembra
non rispondere...[/b]
MySql
dice:
<font color=red>";
echo mysql_error();
echo "</font>
pregasi
<a href=\"mailto:lory22@alchimiaweb.net\">
segnalare</a> il problema";
}
fai:
funzione controlla($codice)
select count(*) from tabella where codice = $codice
mysql_query
$row = mysql_fetch_rows
if $row == 0 return false
else { $pippo = "siamo addolorati ma il codice $codice e' gia' presente ";
return $pippo }
if(controlla == false) insert
else echo $pippo
puoi farlo in mille modi diversi ma la sostanza e' questa. UNIQUE fara' la sua funzione se qualcuno cerchera' di insere un codice doppione non da php oppure con altri mezzi non controllati da te.
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
se posso, un'ultima cosa, visto che stiamo parlando id query di accodamento, come posso accodare con un solo inserisci il risultato di questa query:
Codice PHP:$query_files_recordset = "SELECT prodotti.IdProdotto, prodotti.CodiceProdotto,
prodotti.NomeProdotto, prodotti.PrezzoProdotto, prodotti.CategoriaProdotto,
prodotti.Provincia, prodotti.Provincia1, prodotti.Provincia2, prodotti.Provincia3,
prodotti.Provincia4, prodotti.Provincia5, quantita.Quantita
FROM prodotti, quantita WHERE IdProdotto = $IdProdotto";
che ottiene questo risultato a video:
![]()
è possibile, una volta inseriti i valori nelle province inserire tutto in una tabella che contiene tutti i campi presenti nella select?