Jump to content

Archived

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

beamerrox

**solved** Dynamic Table Help

Recommended Posts

[code]CREATE TABLE `map` (
  `id` int(255) NOT NULL,
  `name` varchar(50) NOT NULL default '',
  `size` int(25) NOT NULL default '0',
  `creator` varchar(100) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=2;

INSERT INTO `map` (`id`, `name`, `size`, `creator`) VALUES (1, 'Test Galaxy', 25, 'Beamerrox (Site Owner)');[/code]

[code]CREATE TABLE `systems` (
  `id` int(255) NOT NULL,
  `map_id` int(255) NOT NULL default '0',
  `local` varchar(255) NOT NULL default '',
  `family` int(100) NOT NULL default '0',
  `name` varchar(10) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=5;

INSERT INTO `systems` (`id`, `map_id`, `local`, `family`, `name`) VALUES (1, 1, '1, 1', 1, 'Family 1');
INSERT INTO `systems` (`id`, `map_id`, `local`, `family`, `name`) VALUES (2, 1, '25, 1', 2, 'Family 2');
INSERT INTO `systems` (`id`, `map_id`, `local`, `family`, `name`) VALUES (3, 1, '1, 25', 3, 'Family 3');
INSERT INTO `systems` (`id`, `map_id`, `local`, `family`, `name`) VALUES (4, 1, '25, 25', 4, 'Family 4');[/code]


[code]<?
$db = mysql_connect("", "", "");
mysql_select_db("", $db);
?>
<table border="1" cellpadding="2" cellspacing="0">
<?
$map = mysql_fetch_assoc(mysql_query("SELECT * FROM map WHERE id={$_GET['id']}"));
$i = 1;
for($i; $i <= $map['size']; $i++){
?>
<tr>
<?
$j = 1;
for($j; $j <= $map['size']; $j++){
$local = "$i, $j"
$res = mysql_query("SELECT * FROM systems WHERE local='$local'");
?>
<td><? if($res){ echo "1"; } else { echo "0"; } ?></td>
<?
}
?>
</tr>
<?
}
?>
</table>[/code]

i want this page so that it doesn't post all the cells with a 1 in each, the way it is set up is so it only posts the 4 systems to the map that is 25x25, so there should be 4 ones and 421 zeros, i don't know how to make this work

[EDIT]
fixed part of the coding, still have the same problem though

Share this post


Link to post
Share on other sites
$res will be false only if the query fails due to an error. Finding 0 results is not an error.

Change

[code]if($res){ echo "1"; } else { echo "0"; } [/code]

to

[code]if (mysql_num_rows($res) > 0){ echo "1"; } else { echo "0"; } [/code]

Share this post


Link to post
Share on other sites
whoa, maybe it wasn't so advanced, thank you, it fixed it right away

Share this post


Link to post
Share on other sites

×

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.