| 
	
 | 
 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
 
  
Navigation:
[Reply to this message] 
 |