alewis Posted November 30, 2010 Share Posted November 30, 2010 The code below is a form the gets information from a database and post it into the appropriate field. I am having a problem with the while loop. All the variables before the while loop work just great and echo out how they should. But everything after the while loop does not work. I know it has something to do with the while loop because when I take the while loop out everything works as it should. Can anyone please help me with this? <? $id = $_POST["id"]; $therapy = $_POST["therapy"]; db_connect(); $query=mysql_query("select * from student where student_id = $id") or die ("invalid query"); $row=mysql_fetch_array($query); print "<table width='330' border=0 align='center'> <form method='POST' action='table.php'> <td>*First Name:</td> <td>*Last Name:</td> <tr>"; ?> <td width="157"><input size="23" name="first_name" value="<?php echo "$row[first_name]"; ?>" /></td> <td width="138"><input type="text" size="23" name="surname" value="<?php echo "$row[surname]"; ?>" /></td> </tr> <tr> <td>Level:</td> <td>Therapy:</td> </tr> <tr> <td> <select name="program_level"> <option <?php if ($row[program_level]=='1') echo "selected=yes"; ?> value="1">O&A</option> <option <?php if ($row[program_level]=='2') echo "selected=yes"; ?> value="2">Student</option> <option <?php if ($row[program_level]=='3') echo "selected=yes"; ?> value="3">Supervisor</option> <option <?php if ($row[program_level]=='4') echo "selected=yes"; ?> value="4">Manager</option> <option <?php if ($row[program_level]=='5') echo "selected=yes"; ?> value="5">Director</option> <option <?php if ($row[program_level]=='6') echo "selected=yes"; ?> value="6">Graduate</option> </select> </td> <td> <!-- Auto drop down for therapist names--> <? $query2=mysql_query("select * from therapy_info;"); ?> <select name='therapy'> <? while ($row=mysql_fetch_assoc($query2)){ ?> <option value="<? echo "$row[therapy_name]"; ?>"> <? echo "$row[therapy_name]"; } ?> </option> </select> <!-- End Auto drop down for therapist names--> </td> </tr> <tr> <td>Active:<?php echo "$row[active]"; ?></td> </tr> <tr> <td><select name='active' value='$row[active]'> <option <?php if ($row[active]=='1') echo "selected=yes"; ?> value='1'>Active</option> <option <?php if ($row[active]=='0') echo "selected=yes"; ?> value='0'>Inactive</option> </select> </td> </tr> <?php print "<tr> <td><input type='submit' value='Change' name='button' /></td> <input type='hidden' name='id' value='$id' />"; ?> <input type='hidden' name='$hardcode_session' /> <? print "</tr> </form> </table>"; Quote Link to comment https://forums.phpfreaks.com/topic/220293-passing-variables/ Share on other sites More sharing options...
trq Posted December 1, 2010 Share Posted December 1, 2010 Don't use short <? tags. Variables don't need to be surrounded by quotes, array index do. This... <?php echo "$row[first_name]"; ?> Should be.... <?php echo $row['first_name']; ?> I don't see any closing } barace for that while loop. Quote Link to comment https://forums.phpfreaks.com/topic/220293-passing-variables/#findComment-1141577 Share on other sites More sharing options...
alewis Posted December 1, 2010 Author Share Posted December 1, 2010 Don't use short <? tags. Variables don't need to be surrounded by quotes, array index do. This... <?php echo "$row[first_name]"; ?> Should be.... <?php echo $row['first_name']; ?> I don't see any closing } barace for that while loop. Thank you, the closing } brace is <option value="<? echo $row[therapy_name]; ?>"> <? echo $row[therapy_name]; } ?> </option> and I tried what you said but I still am not getting the variables to show up after the while loop. Quote Link to comment https://forums.phpfreaks.com/topic/220293-passing-variables/#findComment-1141579 Share on other sites More sharing options...
Pikachu2000 Posted December 1, 2010 Share Posted December 1, 2010 There's a form field with no type= attribute. May or may not be causing a rendering problem . . . <td width="157"><input size="23" name="first_name" value="<?php echo "$row[first_name]"; ?>" /></td> You did change all of the short open <? tags to full <?php syntax, and that didn't make a difference? Quote Link to comment https://forums.phpfreaks.com/topic/220293-passing-variables/#findComment-1141583 Share on other sites More sharing options...
alewis Posted December 1, 2010 Author Share Posted December 1, 2010 There's a form field with no type= attribute. May or may not be causing a rendering problem . . . <td width="157"><input size="23" name="first_name" value="<?php echo "$row[first_name]"; ?>" /></td> You did change all of the short open <? tags to full <?php syntax, and that didn't make a difference? I fixed that type=text and yes I changed all the <? to <?php and still nothing. It really is right down to where my while loop is. If I put anything after my while loop it stops working but one line before I actually right while it works fine? Quote Link to comment https://forums.phpfreaks.com/topic/220293-passing-variables/#findComment-1141586 Share on other sites More sharing options...
trq Posted December 1, 2010 Share Posted December 1, 2010 You realize the while loop overrides the $row variable? Quote Link to comment https://forums.phpfreaks.com/topic/220293-passing-variables/#findComment-1141588 Share on other sites More sharing options...
alewis Posted December 1, 2010 Author Share Posted December 1, 2010 You realize the while loop overrides the $row variable? No, please explain? Quote Link to comment https://forums.phpfreaks.com/topic/220293-passing-variables/#findComment-1141590 Share on other sites More sharing options...
trq Posted December 1, 2010 Share Posted December 1, 2010 Your while loop overrides the $row variable. Whats to explain? while ($row=mysql_fetch_assoc($query2)){ Needs to be.... while ($row2=mysql_fetch_assoc($query2)){ or similar. Quote Link to comment https://forums.phpfreaks.com/topic/220293-passing-variables/#findComment-1141593 Share on other sites More sharing options...
alewis Posted December 1, 2010 Author Share Posted December 1, 2010 Your while loop overrides the $row variable. Whats to explain? while ($row=mysql_fetch_assoc($query2)){ Needs to be.... while ($row2=mysql_fetch_assoc($query2)){ or similar. That was it thank you so much! Quote Link to comment https://forums.phpfreaks.com/topic/220293-passing-variables/#findComment-1141594 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.