spacepoet Posted February 21, 2011 Share Posted February 21, 2011 Hi: I have another small issue like the one I just posted about. I am trying to get the full state name based upon the state abbreviation. Like this: <?php $query=mysql_query("SELECT full_state FROM zip_codes WHERE abbr_state = abbr_state") or die("Could not get data from db: ".mysql_error()); $full_state=$result['full_state']; ?> ... State Name: <input type="text" name="full_state" value="<?php echo $full_state; ?>" /><br /> [code] No errors, but also no "full_state" appears. (It is pulling in the correct "abbr_state") What am I missing here? Link to comment https://forums.phpfreaks.com/topic/228338-another-small-issue-select-error/ Share on other sites More sharing options...
Goldeneye Posted February 21, 2011 Share Posted February 21, 2011 <?php $abbr_state = mysql_real_escape_string($_POST['abbr_state']); $query=mysql_query("SELECT full_state FROM zip_codes WHERE abbr_state = '".$abbr_state."'") or die("Could not get data from db: ".mysql_error()); $full_state=$result['full_state']; ?> Try that Link to comment https://forums.phpfreaks.com/topic/228338-another-small-issue-select-error/#findComment-1177405 Share on other sites More sharing options...
spacepoet Posted February 21, 2011 Author Share Posted February 21, 2011 Hi .. tried it but it didn't work ... Could the issue be in here: State Name: <input type="text" name="full_state" value="<?php echo $full_state; ?>" /><br /> Maybe I'm not calling it properly (I don't know an am getting no errors, so it's hard to troubleshoot). ?? Link to comment https://forums.phpfreaks.com/topic/228338-another-small-issue-select-error/#findComment-1177432 Share on other sites More sharing options...
Pikachu2000 Posted February 21, 2011 Share Posted February 21, 2011 No, that code is wrong. $result['full_state'] won't exist because the data is never fetched form the result resource. <?php $abbr_state = mysql_real_escape_string($_POST['abbr_state']); $query = "SELECT full_state FROM zip_codes WHERE abbr_state = '$abbr_state'"; if( !$result = mysql_query($query) ) { echo "<br>Query: $query<br>Failed with error: " . mysql_error() . '<br>'; } else { $array = mysql_fetch_assoc($result); $full_state=$array['full_state']; } ?> Link to comment https://forums.phpfreaks.com/topic/228338-another-small-issue-select-error/#findComment-1177435 Share on other sites More sharing options...
spacepoet Posted February 21, 2011 Author Share Posted February 21, 2011 Hi: Thanks, but that didn't work either. . . This is the full page I'm working with (now including your code): <?php include('include/myConn.php'); include('include/myCodeLib.php'); $abbr_state = $_REQUEST['abbr_state']; $error = NULL; $lat = NULL; $lat = NULL; $city = NULL; $full_state = NULL; $abbr_state = NULL; $zip = NULL; if(isset($_POST['submit'])) { $lat = $_POST['lat']; $lon = $_POST['lon']; $city = $_POST['city']; $full_state = $_POST['full_state']; $abbr_state = $_POST['abbr_state']; $zip = $_POST['zip']; if(empty($city)) { $error .= ' Enter your City '; } if($error == NULL) { $sql = sprintf("INSERT INTO zip_codes(lat,lon,city,full_state,abbr_state,zip) VALUES ('%s','%s','%s','%s','%s','%s')", mysql_real_escape_string($lat), mysql_real_escape_string($lon), mysql_real_escape_string($city), mysql_real_escape_string($full_state), mysql_real_escape_string($abbr_state), mysql_real_escape_string($zip)); if(mysql_query($sql)) { $lat = $_REQUEST['lat']; $lon = $_REQUEST['lon']; $city = $_REQUEST['city']; $full_state = $_REQUEST['full_state']; $abbr_state = $_REQUEST['abbr_state']; $zip = $_REQUEST['zip']; header("Location: CityList.php?abbr_state=$abbr_state"); } else { $error .= 'There was an error in our database, please try again!'; } } } ?> <html> <body> <?php $abbr_state = mysql_real_escape_string($_POST['abbr_state']); $query = "SELECT full_state FROM zip_codes WHERE abbr_state = '$abbr_state'"; if( !$result = mysql_query($query) ) { echo "<br>Query: $query<br>Failed with error: " . mysql_error() . '<br>'; } else { $array = mysql_fetch_assoc($result); $full_state=$array['full_state']; } ?> <?php echo '<p><span class="textError">' . $error . '</span></p>';?> <form name="myForm" action="" method="post"> Latitude: <input type="text" name="lat" value="<?php echo $lat; ?>" /><br /> Longitude: <input type="text" name="lon" value="<?php echo $lon; ?>" /><br /> City Name: <input type="text" name="city" value="<?php echo $city; ?>" /><br /> State Name: <input type="text" name="full_state" value="<?php echo $full_state; ?>" /><br /> State Abbreviation: <input type="text" name="abbr_state" value="<?php echo $_GET['abbr_state'] ?>" readonly /><br /> Zip Code: <input type="text" name="zip" value="<?php echo $zip; ?>" /><br /> <input type="submit" name="submit" value="Submit New City" /> </form> </body> </html> Can you see what I'm missing? Link to comment https://forums.phpfreaks.com/topic/228338-another-small-issue-select-error/#findComment-1177687 Share on other sites More sharing options...
Pikachu2000 Posted February 21, 2011 Share Posted February 21, 2011 What about it 'didn't work either'? Link to comment https://forums.phpfreaks.com/topic/228338-another-small-issue-select-error/#findComment-1177695 Share on other sites More sharing options...
spacepoet Posted February 21, 2011 Author Share Posted February 21, 2011 Hi: I mean the field is empty: State Name: <input type="text" name="full_state" value="<?php echo $full_state; ?>" /><br /> I'm trying to auto-populate that field with the full state name. I'm not getting any errors, which is why I'm a bit baffled. This is the link used to get to the page: <a href="NewCity.php?abbr_state=<?php echo $abbr_state ?>">Insert New City</a> Maybe I should try carrying-over the "abbr_state" AND the "full_state" from that link?? Link to comment https://forums.phpfreaks.com/topic/228338-another-small-issue-select-error/#findComment-1177702 Share on other sites More sharing options...
Pikachu2000 Posted February 21, 2011 Share Posted February 21, 2011 How is $_REQUEST['abbr_state'] getting a value? Have you echoed it to make sure it has one? Link to comment https://forums.phpfreaks.com/topic/228338-another-small-issue-select-error/#findComment-1177729 Share on other sites More sharing options...
spacepoet Posted February 21, 2011 Author Share Posted February 21, 2011 Hi: It pulls the value from a database on the first page like this: <?php include('include/myConn.php'); $result = mysql_query("SELECT city,abbr_state,zip FROM zip_codes WHERE abbr_state = '" . mysql_real_escape_string ( $_GET['abbr_state'] ) . "' ORDER BY `city` ASC"); while($row = mysql_fetch_array($result)){ echo $row['city']. " - ". $row['zip']. " - ". $row['abbr_state'] ; echo "<br />"; } ?> ...... <a href="CityList.php?abbr_state=AL">Alabama</a><br /> <a href="CityList.php?abbr_state=AK">Alaska</a><br /> <a href="CityList.php?abbr_state=AZ">Arizona</a><br /> etc... ...... <a href="NewCity.php?abbr_state=<?php echo $abbr_state ?>">Insert New City</a> And yes, it is assigning the the correct value for each state. Maybe I should pull the full_state from here and send it over this way (I am currently not SELECTING it, but I obviously can)? How would I adjust the link, if that's the route I take? Thanks for the help. Link to comment https://forums.phpfreaks.com/topic/228338-another-small-issue-select-error/#findComment-1177749 Share on other sites More sharing options...
Pikachu2000 Posted February 21, 2011 Share Posted February 21, 2011 You have this: $abbr_state = $_REQUEST['abbr_state']; inside the if( isset($_POST['submit']) ) { conditional. Therefore if the page is arrived at via a link such as script.php?abbr_state=TX, the condition is FALSE, and the value is not assigned to $abbr_state. Link to comment https://forums.phpfreaks.com/topic/228338-another-small-issue-select-error/#findComment-1177759 Share on other sites More sharing options...
spacepoet Posted February 21, 2011 Author Share Posted February 21, 2011 OK, but why then does this field: State Abbreviation: <input type="text" name="abbr_state" value="<?php echo $_GET['abbr_state'] ?>" readonly /><br /> Get the proper data (state abbreviation) filled in? Maybe I should try to pull the full_state in this way as well. Didn't think this was going to be so hard .. lol .. Link to comment https://forums.phpfreaks.com/topic/228338-another-small-issue-select-error/#findComment-1177791 Share on other sites More sharing options...
samoht Posted February 21, 2011 Share Posted February 21, 2011 Would you try print_r($_POST); and see if it returns any value for "Full_State"? It looks like your using both $_GET and $_POST and I am not sure why? - If you get all the needed values from the post array from the first page - why even mess with the get from the url? Link to comment https://forums.phpfreaks.com/topic/228338-another-small-issue-select-error/#findComment-1177860 Share on other sites More sharing options...
spacepoet Posted February 21, 2011 Author Share Posted February 21, 2011 Hi: I'm flying a bit blind on this, but I know it's all working fine .. just this one little issue I can't figure out. Would you try print_r($_POST); and see if it returns any value for "Full_State"? I will add it, but I'm honestly not sure where or how - I'm still pretty new with the PHP syntax and such, which is why some of this is a bit maddening to figure out. Link to comment https://forums.phpfreaks.com/topic/228338-another-small-issue-select-error/#findComment-1177873 Share on other sites More sharing options...
samoht Posted February 21, 2011 Share Posted February 21, 2011 No problem, Try putting the print_r just before if(isset($_POST['submit'])) { That way you can see the contents of the $_POST array before doing anything with it. The main question we need to help you is "where are you pulling your data from? once we know that we can test where the code is not working. Link to comment https://forums.phpfreaks.com/topic/228338-another-small-issue-select-error/#findComment-1177878 Share on other sites More sharing options...
spacepoet Posted February 21, 2011 Author Share Posted February 21, 2011 Hi: Well the print_r($_POST); did not return any data, but I was able to get it to work doing in this way: <?php $abbr_state = $_REQUEST['abbr_state']; $full_state = $_REQUEST['full_state']; ?> ... <a href="CityList.php?abbr_state=WY&full_state=Wyoming">Wyoming</a> ... <a href="NewCity.php?abbr_state=<?php echo $abbr_state; ?>&full_state=<?php echo $full_state; ?>">Insert New City</a> Then on the next page: $abbr_state = $_REQUEST['abbr_state']; $full_state = $_REQUEST['full_state']; ... State Name: <input type="text" name="full_state" value="<?php echo $_GET['full_state'] ?>" readonly /><br /> State Abbreviation: <input type="text" name="abbr_state" value="<?php echo $_GET['abbr_state'] ?>" readonly /><br /> Still would like to know why the original way didn't work, but at least I can proceed with this project. Thanks for the pointers! One thing: print_r($_POST); basically used to print errors? Link to comment https://forums.phpfreaks.com/topic/228338-another-small-issue-select-error/#findComment-1177946 Share on other sites More sharing options...
samoht Posted February 21, 2011 Share Posted February 21, 2011 print_r() is usefull for printing out objects and their contents. So if you have an array that you want to see what values are inside of it - print_r() is your friend. It is mostly used for debugging. If the $_POST array was totally empty that means that you did not fill in the pervious page. $_POST are values that are sent through a form on submit with an action of "post" (at least that is one common way of sending post values). $_GET is passed through the url so http://example.com/index.php?name=bob&age=36 has 2 values stored in the $_GET array... name=>bob, age=>36 etc. Link to comment https://forums.phpfreaks.com/topic/228338-another-small-issue-select-error/#findComment-1177954 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.