jaymz Posted October 23, 2009 Share Posted October 23, 2009 hi everyone, I'm sorry to ask such a basic question, but I'm young and trying to learn php on my own. I bought the PHP6 Bible and I'm doing a tutorial on multiple-queries. I followed the book exactly, but I'm not getting the right result. here's my code: <?php require_once('Connections/mydb.php'); ?> <?php if (!function_exists("GetSQLValueString")) { function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") { $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue; $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue); switch ($theType) { case "text": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "long": case "int": $theValue = ($theValue != "") ? intval($theValue) : "NULL"; break; case "double": $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL"; break; case "date": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "defined": $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue; break; } return $theValue; } } ?> <?php function display_cities($database_mydb, $mydb) { mysql_select_db($database_mydb, $mydb); $country_query = sprintf("Select 'id', continent, countryname from country order by continent, countryname"); $country_result = mysql_query($country_query, $mydb) or die(mysql_error()); print("<table border=1>\n"); print("<tr><th>continent</th><th>country</th><th>cities</th></tr>"); while ($country_row = mysql_fetch_row($country_result)) { $country_id = $country_row[0]; $continent = $country_row[1]; $country_name = $country_row[2]; print("<tr style='background:red'align=left valign=top>"); print("<td>$continent</td>"); print("<td>$country_name</td>"); print ("<td style='background:blue'>"); $city_query = "select cityname from city where countryID = $country_id order by cityname"; //<----Something with this line is throwing it off! $city_result = mysql_query($city_query, $mydb) or die(mysql_error()); while ($city_row = mysql_fetch_row($city_result)) { $city_name = $city_row[0]; print("$city_name<br>"); } print("</td></tr>"); } print("</table>\n"); } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Untitled Document</title> </head> <body> <?php display_cities($database_mydb, $mydb) ?> </body> </html> I've narrowed my problem down to this line "$city_query = "select cityname from city where countryID = $country_id order by cityname";" but that's how the book shows it. But, when I change that line of code to something like "$city_query = "select cityname from city where countryID = 4 order by cityname", then I get all of the cities with a countryID of 4, but they ALL print over and over again in each <td> for the duration of the loop. I have about 15 entries in the "city" database, and they're all supposed to be echoing into the table, inline with their corresponding country. This has been driving me nuts for hours, and I've been searching online for an answer. I'm sure I'm overooking something very simple, but please go easy on me, this is my first time attempting this! If someone sees the problem, can you please let me know? thanks! jay Link to comment https://forums.phpfreaks.com/topic/178680-newbie-question-about-multiple-queries/ Share on other sites More sharing options...
PFMaBiSmAd Posted October 23, 2009 Share Posted October 23, 2009 The single-quotes around 'id' in the following query should not be there - $country_query = sprintf("Select 'id', continent, countryname from country order by continent, countryname"); That causes $country_id = $country_row[0]; to have the string 'id' in it instead of an id from your table. Link to comment https://forums.phpfreaks.com/topic/178680-newbie-question-about-multiple-queries/#findComment-942530 Share on other sites More sharing options...
jaymz Posted October 23, 2009 Author Share Posted October 23, 2009 thanks, I'm going to have to learn more about SQL statements, because when I enter Select id (without quotes) I get back an error message that says: Unknown column 'id' in 'field list', even though id is a valid column name in the table. But, I changed it to Select * and that got it working. Now I'm trying to add on to the code from before and say, if the field is set: print "message A", if not: print "message B", but that's not working either. here's my code, can you see what i'm doing wrong? Either I'm an idiot or this book is hard to follow... or maybe a little of both. <?php while ($city_row = mysql_fetch_row($city_result)) { $city_name = $city_row[0]; if (isset($city_name)) { print("$city_name<br>"); } else print("not set"); } print("</td></tr>"); } print("</table>\n"); } ?> Link to comment https://forums.phpfreaks.com/topic/178680-newbie-question-about-multiple-queries/#findComment-942862 Share on other sites More sharing options...
PFMaBiSmAd Posted October 23, 2009 Share Posted October 23, 2009 even though id is a valid column name in the tableYou are likely on an operating system that is case-sensitive and the column names are case-sensitive too. The real column name is probably ID, or Id ... Link to comment https://forums.phpfreaks.com/topic/178680-newbie-question-about-multiple-queries/#findComment-942865 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.