Reply to Re: while loops?

Your name:

Reply:


Posted by Patrick on 05/30/06 18:28

David Haynes wrote:
> Patrick wrote:
>
>> David Haynes wrote:
>>
>>> Patrick wrote:
>>>
>>>> I'm trying to while loop using a flat txt file and write the values
>>>> out into a form. I have 50-58 values to echo. Am I going to have to
>>>> echo each line of html. Or is there a way to make this work between
>>>> the php. Right now it wants to write the whole table over and over.
>>>> Is my logic screwed up? I am not a programmer as such but can get
>>>> by. I have something like this which is an abbreviated version. Any
>>>> help would be appreciated.
>>>>
>>>> Thanks,
>>>> Patrick
>>>
>>>
>>>
>>> If your input file looks something like this:
>>> fred, Barbados/123, Titanic
>>> sally, Turks/Caicos, Mary Celleste
>>>
>>> then the following code will help you get started:
>>> <html>
>>> <head>
>>> </head>
>>> <body>
>>> <?php
>>> $filename = "test.log";
>>> if( ! ($fd = fopen($filename, "r")) ) {
>>> echo "Cannot open $filename for read<br>\n";
>>> exit;
>>> }
>>>
>>> while( $line = fgets($fd, 80) ) {
>>> $values = explode(',', $line); // assumes comma-separated values
>>> ?>
>>>
>>> <form method="post" action="precmlog.php">
>>>
>>> <table width="800" cellpadding="5" cellspacing="0" border="0">
>>> <tr>
>>> <td width="40%">
>>> Log sheet completed by:<br> <input class="inform" type="text"
>>> size="30" name="person" value="<?php echo $values[0]; ?>"><br>
>>> </td>
>>> </tr>
>>> <tr>
>>> <td>
>>> Cruise name/number:<br> <input class="inform" type="text"
>>> size="30" name="cruisenum" value="<?php echo $values[1]; ?>"><br>
>>> </td>
>>> </tr>
>>>
>>> <tr>
>>> <td>
>>> Ship name:<br> <input class="inform" type="text" size="30"
>>> name="shipname" value="<?php echo $values[2]; ?>"><br>
>>> </td>
>>> </tr>
>>> </table>
>>>
>>> <input class="button" type="submit" value="Submit">
>>> </form>
>>>
>>>
>>> <?php
>>> }
>>> fclose($fd);
>>> ?>
>>> </body>
>>> </html>
>>>
>>> -david-
>>>
>> Hi
>>
>> Thanks for the reply. Yes I can already do that ie.
>> $values[1]...[2]...[3], and no the file is not comma delimited. It is
>> delimited by a new line as some of the values are text area inputs.
>> What I want to be able to do is have the while iterate to the next
>> value so that any changes in the text file or the originating form
>> that writes the text file will not require me to go into this one and
>> change all the numbers.
>>
>> Patrick
>>
> As long as only your fields are separated by the carriage-returns you
> will be all right. If someone sneaks a carriage-return into the text
> fields, you will lose your synchronization with the input file. (i.e.
> you need to have some trusted form of delimiting the fields)
>
> If you want to use carriage-returns, just replace the while and explode
> lines with something like:
>
> while(true) {
> if( ! ($line1 = fgets($fd, 80)) ) break;
> if( ! ($line2 = fgets($fd, 80)) ) break;
> if( ! ($line3 = fgets($fd, 80)) ) break;
>
> and then $value[0] becomes $line1, etc.
>
> BTW the 80 can be replaced with whatever your maxlength is for your text
> fields.
>
> -david-
>

Thanks, I will give that a try.

Patrick

--
Patrick A. Smith Assistant System Administrator
Ocean Circulation Group – USF - College of Marine Science
http://ocgweb.marine.usf.edu Phone: 727 553-3334

The trouble with doing something right the first time is that nobody
appreciates how difficult it was. - La Rochefoucauld

[Back to original message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация