Jump to content

newbie question about multiple queries


jaymz

Recommended Posts

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

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.

 

 

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");
}
?>

 

 

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.