On Fri, Mar 14, 2008 at 8:12 PM, Jim Lucas <[EMAIL PROTECTED]> wrote:
>
> Eric Butera wrote:
> > On Fri, Mar 14, 2008 at 6:02 AM, Zoltán Németh <[EMAIL PROTECTED]> wrote:
> >> 2008. 03. 14, péntek keltezéssel 14.08-kor Suamya Srivastava ezt írta:
> >>
> >>> Hi,
> >> >
> >> > How can I send multiple values from a form to be stored in a database,
> as
> >> > name of the fields is the same?
> >> >
> >> > For example:
> >> >
> >> > <?php
> >> > foreach ($field_data as $field) {
> >> >
> >> > $field_name=$field["field_name"];
> >> > $field_id=$field["field_id"];
> >> > $datatype=$field["datatype_name"];
> >> >
> >> > ?>
> >> > <input type="hidden" name="field_id" value="<?php echo $field_id;?>" />
> >> > <tr>
> >> > <td><strong><?php echo $field_name;?><strong></td>
> >> > <?php
> >> > if ($datatype=="text" || $datatype=="integer") {
> >> > echo "<td><input type=\"text\" name=\"field_data\"></td>";
> >>
> >> make field_data an array indexed by field_id
> >>
> >> <input type="text" name="field_data[<?php echo $field_id; ?>]"
> >>
> >> greets,
> >> Zoltán Németh
> >>
> >>
> >>
> >> > }
> >> > elseif ($datatype=="textarea") {
> >> > echo "<td><textarea rows=\"10\" cols=\"100\"
> >> > name=\"field_data\"></textarea><br></td>";
> >> > }
> >> > echo "</tr>";
> >> > }
> >> > ?>
> >> >
> >> > This creates a form with field names and text box or textarea box next
> to
> >> > each field name depending on the datatype. After the user enters the
> >> > values in the text or textarea and clicks submit, the values should get
> >> > stored in a database. But what is happening is that only the value
> entered
> >> > in the last field of the form is getting entered into the database.
> >> > This code is embedded in an application which is having an inbuilt
> >> > structure of taking the values from a form in a hash. Since key is the
> >> > same (i.e. field_id) everytime, the value gets overwritten and only the
> >> > last value gets stored in db. But I am not able to work out a solution
> for
> >> > this.
> >> > I hope I am able to make my problem clear enough.
> >> >
> >> > Thanks,
> >> > Suamya.
> >> >
> >> >
> >> >
> >> >
> >> >
> -----------------------------------------------------------------------------
> >> > DISCLAIMER:-
> >> > "The information in this e-mail is confidential, and is
> intended
> >> > solely for the addressee or addressees. If you are not the intended
> recipient,
> >> > please delete the mail and kindly notify the sender of misdelivery.
> Any
> >> > unauthorised use or disclosure of the contents of the mail is not
> permitted
> >> > and may be unlawful."
> >> >
> -----------------------------------------------------------------------------
> >> >
> >> > "Scanned By MailScanner"
> >> >
> >> >
> >>
> >>
> >> --
> >> PHP General Mailing List (http://www.php.net/)
> >> To unsubscribe, visit: http://www.php.net/unsub.php
> >>
> >>
> >
> > Since Zoltán give you the answer I might give you another fish. Which
> > one is more readable:
> >
> > <input type="hidden" name="field_id" value="<?php echo $field_id;?>" />
> > <tr>
> > <td><strong><?php echo $field_name;?><strong></td>
> > <?php
> > if ($datatype=="text" || $datatype=="integer") {
> > echo "<td><input type=\"text\" name=\"field_data\"></td>";
> > }
> > elseif ($datatype=="textarea") {
> > echo "<td><textarea rows=\"10\" cols=\"100\"
> > name=\"field_data\"></textarea><br></td>";
> > }
> > echo "</tr>";
> > }
> > ?>
> >
> >
> > <input type="hidden" name="field_id" value="<?php echo
> > htmlspecialchars($field_id); ?>" />
> > <tr>
> > <td><strong><?php echo htmlspecialchars($field_name); ?><strong></td>
> >
> > <?php if ($datatype=="text" || $datatype=="integer"): ?>
> > <td><input type="text" name="field_data"></td>
> > <?php elseif ($datatype=="textarea"): ?>
> > <td>
> > <textarea rows="10" cols="100"
> name="field_data"></textarea>
> > <br>
> > </td>
> > <?php endif; ?>
> >
> > </tr>
>
> This is more readable
>
> <?php
> while ( $row = mysql_fetch_row($result_set) ) {
>
> # Extract all data fields from result set
> list($datatype,$field_id,$field_name,etc...) = $row;
>
> # Initialize or clear variable
> $field = '';
>
> # Check to see if it requires a text field
>
> if ( $datatype == "text" || $datatype == "integer" ) {
>
> # Create Text field
> $field = '<input type="text" name="field_data[{$field_id}]" />';
>
> # Check to see if it requires a text area
> } elseif ( $datatype == "textarea" ) {
>
> # Create Text Area
> $field = '<textarea rows="10" cols="100"
> name="field_data[{$field_id}]">'.
> '</textarea>';
>
> }
> # Display it all
> echo <<<ROW
> <tr>
> <td><strong>{$field_name}</strong></td>
> <td>{$field}</td>
> </tr>
> ROW;
> }
> ?>
>
>
> --
> Jim Lucas
>
> "Some men are born to greatness, some achieve greatness,
> and some have greatness thrust upon them."
>
> Twelfth Night, Act II, Scene V
> by William Shakespeare
>
Not really. Also you aren't escaping your output.