69 messaggi dal 25 febbraio 2002
Ciao ragazzi da poco sto usando MySql e ho necessità di qualche delucitazione:

<b>INSERT to con valori null si può?</b>
devo fare delle INSERT e fin qui tutto ok...alcune variabili però potrebbero essere vuote... ad esempio

Ho questa insert

"INSERT INTO tabella ("nome,cognome,indirizzo,giorni) VALUES (request("nome"),request("indirizzo"),request("giorni"))

il form "GIORNI" potrebbe però essere vuoto... per evitare che mysql va in panne.. faccio cosi

if request("giorni")<>"" then
giorni=request("giorni")
else
giorni=0
end if

"INSERT INTO tabella ("nome,cognome,indirizzo,giorni) VALUES (request("nome"),request("indirizzo"),request("giorni"))

Dato che le variabili sono molte, c'è un modo più sbrigativo?? magari fare una INSERT e lasciare il valore di default se quella variabile è null?? esiste qualche comando?

<B>query login che incrementa il n° di viste</b>
prima in access facevo la query e poi controllato se l'username e pass erano corretti prima del redirect incrementavo

rs("Num_visite")=rs("num_visite")+1
rs.update

con mysql non si può vero?? come posso fare?

strSQL = "SELECT * FROM utenti where UCASE(username)='"&UCASE(username)&"' AND UCASE(password)='"&UCASE(password)&"'"

come posso fare?? per forza un'altro INSER TO?

Datemi anche qualche suggerimento...dove poter reperire queste informazioni...di tutorials ne ho letti molto ma li limitano solo a parlare di INSER e UPDATe ma non del resto...
non so bene come aiutarti ma la migliore guida su mySQL un mio amico l'ha trovata su TechFarm.it e Morpheus Web :)
11.886 messaggi dal 09 febbraio 2002
Contributi
1) la query non è esatta, nel caso di campi stringa (che di solito sono la maggioranza) si devono usare gli apici per delimitare il testo. Nel caso in cui il campo "nome" sia vuoto non si crea alcun problema perchè una query del tipo:

INSERT INTO tabella (nome) VALUES ('')

è perfettamente valida.

Il problema dunque si pone solo con i campi numerici. Fai uno sforzo e usa questo codice per ogni campo numerico
if request("giorni")<>"" then giorni=request("giorni") else giorni=0
come vedi occupa solo 1 riga.

nota: per ogni campo stringa dovresti sempre effettuare un replace per evitare che caratteri riservati tipo l'apice ' o il backslash \ interferiscano con la sintassi della query. Quindi dovresti fare:
Function rimpiazza(valore)
rimpiazza = Replace(Replace(valore, "\", "\\"), "'", "\'")
End Function
cn.Execute "INSERT INTO tabella (nome) VALUES ('" & rimpiazza(Request.Form("nome")) & "')"

2) l'incremento del numero di visite credo si possa fare anche nel modo che hai descritto. Se hai un problema potrebbe esser dovuto al tipo di dati. Quindi prova:
rs("Num_visite")=CLng(Cstr(rs("num_visite")))+1
rs.update
Se non dovesse funzionare comunque, ti basta fare un'update che è altrettanto facile:
cn.Execute "UPDATE utenti SET Num_visite=Num_visite+1 WHERE id=" & rs("id")

3) trovi tutte le guide con inclusi i commenti e i suggerimenti degli utenti su www.mysql.com

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.