World: r4wp
[Databases] group to discuss various database issues and drivers
older newer | first last |
Pekr 11-Nov-2012 [267] | you see? The use four ? ? ? ?, and after the string { }, there are four values fname lname title phone |
afsanehsamim 11-Nov-2012 [268x3] | i completely underestand !!!! but fname,lname,title,phone are string and before query ,they are defiend as : fname: "Johnny" lname: "Johnson" title: "President" phone: "(707) 555-1212" |
i have <input ....>,how should i define it as string???? | |
i should write like fname:<input name="oneone" type="text" size="1">???? | |
Pekr 11-Nov-2012 [271] | what do you want exactly to be put into the database field? |
afsanehsamim 11-Nov-2012 [272x4] | character |
when i write like this :print [<form><input type="submit" value=" submit !" />] print [<TABLE bgcolor="black" border="1">] print {<tr bgcolor="white"> <td style="width:30px; height:30px;"><input name="oneone" type="text" size="1">} insert db ["insert into data1(oneone) values(c)"] results: copy db print {</td>} | |
it saves c to database | |
but it will not save user input | |
Pekr 11-Nov-2012 [276x3] | yes, you have basically two options: 1) work with string - insert db {insert into data1 ....} - you simply construct the DB string directly 2) work with block - insert db ["initial string here, contatining values(?)" value] - which allows to work with rebol blocks and evaluate some things ... |
so in your case it should be: insert db ["insert into data1(oneone) values(?)" "c"] | |
or something like: value: "c" insert db ["insert into data1(oneone) values(c)" value] | |
afsanehsamim 11-Nov-2012 [279x3] | but value should not be as constant ! when user put character it should save in values ,now plz tell me how should i write ? i should write like : value:"c" |
ishould write like : value :<input ...> ? | |
@Peker : i am using option one ,but i does not save any value ... | |
Pekr 11-Nov-2012 [282] | you want to save value from the form into the db? |
afsanehsamim 11-Nov-2012 [283x3] | yes |
i want to save value from the form into the database! | |
any solution? | |
Pekr 11-Nov-2012 [286x3] | I think, that your script is wrongly constructed! What you seem to do is to just print a form, which then gets delivered to user's browser screen. But at that time, there is no value yet. You should study, how to do CGI in REBOL. You need a separate html form, then you need to read CGI values and store them in a DB ... |
plese study following link - on the right side, there is a link, of how to process forms using REBOL: http://www.rebol.com/docs/cgi1.html | |
this is how you should do it - http://www.rebol.com/docs/cgi2.html | |
afsanehsamim 11-Nov-2012 [289] | but in those links ,i can not find database example! i read that link before ,i created html form and cgi as well, it is working properly ... the point is when user enter input and click submit it goes to cgi page. i need save that input in database ...plz guid me or show me one example how can i save value from the form into db? |
Pekr 11-Nov-2012 [290x4] | please use: values: decode-cgi read-cgi then you will get block of values IIRC |
then you pick a value and save it ... | |
>> blk: decode-cgi "var1=Petr" == [var1: "Petr"] >> type? blk == block! >> object: construct blk >> object >> object/var1 == "Petr" | |
so use: values: decode-cgi read-cgi result: construct values insert db ["insert into data1(oneone) values(?)" result/oneone] | |
afsanehsamim 11-Nov-2012 [294] | how can i write <input ...> in block? |
Pekr 11-Nov-2012 [295x4] | uh, my question is, if you ever worked with CGI? |
examples on the above page are pretty straightforward? | |
there are two things - 1) you have to write a form, basically a html file, with fields, etc., and submit button, linking it to your cgi script 2) you have to write a CGI script, being able to read submitted values ... | |
I might dig-up some simple example later ... | |
afsanehsamim 11-Nov-2012 [299x4] | i am using the first one ... can i use codes which you mensioned in above ? values: decode-cgi read-cgi result: construct values insert db ["insert into data1(oneone) values(?)" result/oneone] |
i wrote whatever you said but i got this error : | |
>> do %compare.cgi Script: "Untitled" (none) Script: "MySQL Protocol" (12-Jul-2008) MySQL protocol loaded connecting to: localhost ** Script Error: Invalid path value: oneone ** Where: map-rebol-values ** Near: result/oneone >> | |
Any one knows how can we save value from the form into database? | |
Arnold 11-Nov-2012 [303] | You first check that the value is acceptable for what can be expected. This is to prevent SQL injections and other malicious input from hackers/innocent users and monkeys using your application. Than you insert a SQL command to insert or update the mysql database just like you did when you did with your select statement before. mijnquery: "INSERT INTO cms_artikel (titel, tagregel, sectie, toegevoegd, artikel_tekst) VALUES ('" mijnquery: append mijnquery rejoin [titel "', '" tagregel "', '" desectie "', '" toegevoegd "', '" artikel-tekst "')"] insert db mijnquery The names after INTO are the fieldnames of the table cms_artikel the ones after VALUES are the REBOL variables that get replaced by their values |
afsanehsamim 11-Nov-2012 [304x3] | it means i should write like: query: "INSERT INTO data1 (oneone,onetwo,onethree) VALUES ('" query: append insert db rejoin [oneone "', '" onetwo "', '" onethree )"] insert db query |
i am very thankful if you do based on my codes ... | |
i am too confiused ... | |
Arnold 11-Nov-2012 [307x2] | Yes. Do a probe of the query to see if it generates the sql you expected. |
I am not doing your code for you. If you want to find someone to do it for you post your job in the ~Opportunity section. | |
afsanehsamim 11-Nov-2012 [309] | i did not say do my code Arnold !!! i wanted only help ... because till now whatever guys said here was not related to form ! my problem is only saving value from form in database ... |
MaxV 11-Nov-2012 [310] | Look here: http://rebol2.blogspot.it/2012/04/how-to-use-rebdb.html http://www.rebol.net/cookbook/recipes/0012.html http://rebol2.blogspot.it/2012/01/adress-book.html http://rebol2.blogspot.it/2011/12/sqlite.html |
Ladislav 11-Nov-2012 [311x2] | Any one knows how can we save value from the form into database? - sure, Pekr told you how to do it. Your problem is that you do not do what Pekr told you to do. First, you need to create the form. Check: Do you really have the form? Second, you need to create a CGI script (this is not the form from the first point, the form from the first point is not a CGI script). Check: do you really have a CGI script ? Pekr told you that the example you posted was neither the form, nor the CGI script. |
One more note: your problem is much more elementary than handling the database. Before writing data to the database you need to have a script accepting (decoding) the data obtained from the form. | |
Pekr 12-Nov-2012 [313x3] | Ladislav - thank you. It is apparent, that what afsanehsamim is missing is the basic knowledge of how webserver stuff works between the client and the server. Examples at rebol.com are pretty straightforward. The only chance is to really create a simple example for him ... |
Create 2 files. Call the first one e.g. cgi-test.html, and upload it to your server. The only thing you have to change is the link to your .cgi script in there: <HTML> <TITLE>Simple Web Form</TITLE> <BODY> <b>Simple Web Form</b><p> <FORM ACTION="http://www.xidys.com/cgi-bin/cgi-test.cgi"> <INPUT TYPE="TEXT" NAME="Field" SIZE="25"><BR> <INPUT TYPE="SUBMIT" NAME="Submit" VALUE="Submit"> </FORM> </BODY> </HTML> Create a second file, called cgi-test.cgi (it has to align to how you name it in the above source file). Upload it to your cgi working directory. Remember to change the first line to contain the path, where your REBOL executable is placed: #!/usr/local/bin/rebcmd -sqc REBOL [] print join "Content-type: text/plain" newline start: now/time/precise submitted: decode-cgi read-cgi values: construct submitted prin "Submitted: " print mold submitted prin "values: " print mold values prin "values/field: " print mold values/field print now/time/precise - start print newline Now go to your URL, and try to submit some values. You can test it on my site at: http://www.xidys.com/cgi-test.html | |
but afsa, honestly - it does not even belong to the database group, but to Rebol School group - you seem to miss the basic understanding, of how CGI works on the server. Your problem is not in getting the value into DB, but handling CGI stuff in general. In above example, what you would put into your DB would be values/field ... | |
afsanehsamim 16-Nov-2012 [316] | Thankyou so much ladislav and Pekr ... guys i underestand whatever you said ... Pekr : you meant i should first decode values after that should values save in database? i have two files and both work properly! one html and another one is cgi ! i did your codes as well ... now plz tell me what is the next step ? As i told you before i should save value in database ,it is one part of my project !!!! :( i did this link http://www.rebol.com/docs/cgi2.html#section-2 and i underestood ... http://www.rebol.com/docs/cgi2.html#section-2http://www.rebol.com/docs/cgi2.html#section-2 |
older newer | first last |