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.