Jump to content

Script interpretation not making complete sense. Please help.


OldWest

Recommended Posts

I am doing more practice, and I am trying to interpret the WHY on some certain aspects of this script. I can get it to work and it works as expected, but I am not sure what it works (got most of it sorted it).. Here is my first question:

 

Question 0. About 3/4 down the script: ($i = 0; $i < $cols; $i++) - cannot understand why $i < $cols is less operator? Shouldn't it be >= cause if it's less won't it miss a record?

 

Question 1. About 3/4 down the script: echo $x = ($i * $rows) + $j;

I do not understand what purpose this serves. I echoed the results and it's just scattered multiplication large numbers!

 

You'll see that im echoing out all kinds of data, just so I can see what's going on.

 

<?php
  $host = "localhost";
  $user = "root";
  $pass = "";
  $db = "simple_mysql";
  $cxn = mysqli_connect($host, $user, $pass, $db) or die("Could not connect to the server.");
  $query = "SELECT * FROM all_illinois";
  $result = mysqli_query($cxn, $query) or die(mysqli_error());
  $results = array();
  while ($row = mysqli_fetch_assoc($result))
      $results[] = $row;
  // output: Array
  echo $results . "<br />";
  $cols = 3;
  // output: 3  
  echo $cols . "<br />";
  $rows = ceil(count($results) / $cols);
  // output: 1300
  echo(count($results)) . "<br />";
  // output: 3
  echo $cols . "<br />";
  // output: 434
  echo $rows . "<br />";
  echo '<table style="text-align:left;margin-left:0px;width:500px;">' . "\n";
  for ($j = 0; $j < $rows; $j++) {
      echo "  <tr>\n";
      for ($i = 0; $i < $cols; $i++) {
          echo $x = ($i * $rows) + $j;
          echo $i . "<br />";
          if (isset($results[$x])) {
              $row = $results[$x];
              echo $row . "<br />";
              echo '    <td><a href="' . $row['state_id'] . '/' . $row['city_name'] . '">' . $row['city_name'] . "</a></td>\n";
          } else {
              echo "    <td></td>\n";
          }
      }
      echo " </tr>\n";
  }
  echo '</table>';
?>

 

Here is a smaller portion of table dump if it helps at all:

 

--

-- Table structure for table `all_illinois`

--

 

CREATE TABLE IF NOT EXISTS `all_illinois` (

  `state_id` varchar(255) NOT NULL,

  `city_name` varchar(255) NOT NULL

) ENGINE=MyISAM DEFAULT CHARSET=latin1;

 

--

-- Dumping data for table `all_illinois`

--

 

INSERT INTO `all_illinois` (`state_id`, `city_name`) VALUES

('135', 'Abingdon'),

('135', 'Adair'),

('135', 'Addieville'),

('135', 'Addison'),

('135', 'Adrian'),

('135', 'Akin'),

('135', 'Albany'),

('135', 'Albers'),

('135', 'Albion'),

('135', 'Alden'),

('135', 'Aledo'),

('135', 'Alexander'),

('135', 'Alexis'),

('135', 'Algonquin'),

('135', 'Alhambra'),

('135', 'Allendale'),

('135', 'Allerton'),

('135', 'Alma'),

('135', 'Alpha'),

('135', 'Alsey'),

('135', 'Alsip'),

('135', 'Altamont'),

('135', 'Alto Pass'),

('135', 'Alton'),

('135', 'Altona'),

('135', 'Alvin'),

('135', 'Amboy'),

('135', 'Anchor'),

('135', 'Ancona'),

('135', 'Andalusia'),

('135', 'Andover'),

('135', 'Anna'),

('135', 'Annapolis'),

('135', 'Annawan'),

('135', 'Antioch'),

('135', 'Apple River'),

('135', 'Arcola'),

('135', 'Arenzville'),

('135', 'Argenta'),

('135', 'Arlington'),

('135', 'Arlington Heights'),

('135', 'Armington'),

('135', 'Armstrong'),

('135', 'Aroma Park'),

('135', 'Arrowsmith'),

('135', 'Arthur'),

('135', 'Ashkum'),

('135', 'Ashland'),

('135', 'Ashley'),

('135', 'Ashmore'),

('135', 'Ashton'),

('135', 'Assumption'),

('135', 'Astoria'),

('135', 'Athens'),

('135', 'Atkinson'),

('135', 'Atlanta'),

('135', 'Atwater'),

('135', 'Atwood'),

('135', 'Auburn'),

('135', 'Augusta'),

('135', 'Aurora'),

('135', 'Ava'),

('135', 'Aviston'),

('135', 'Avon'),

('135', 'Baileyville'),

('135', 'Baldwin'),

('135', 'Bardolph'),

('135', 'Barnhill'),

('135', 'Barrington'),

('135', 'Barry'),

('135', 'Barstow'),

('135', 'Bartelso'),

('135', 'Bartlett'),

('135', 'Basco'),

('135', 'Batavia'),

('135', 'Batchtown'),

('135', 'Bath'),

('135', 'Baylis'),

('135', 'Beardstown'),

('135', 'Beason'),

('135', 'Beaverville'),

('135', 'Beckemeyer'),

('135', 'Bedford Park'),

('135', 'Beecher'),

('135', 'Beecher City'),

('135', 'Belknap'),

('135', 'Belle Rive'),

('135', 'Belleview'),

('135', 'Belleville'),

('135', 'Bellflower'),

('135', 'Bellmont'),

('135', 'Bellwood'),

('135', 'Belvidere'),

('135', 'Bement'),

('135', 'Benld'),

('135', 'Bensenville'),

('135', 'Benson'),

('135', 'Benton'),

('135', 'Berkeley'),

('135', 'Berwick');

 

 

 

 

Link to comment
Share on other sites

Question 0. About 3/4 down the script: ($i = 0; $i < $cols; $i++) - cannot understand why $i < $cols is less operator? Shouldn't it be >= cause if it's less won't it miss a record?

it is executing one for loop for each column, 0,1,2 then when it his 2 it stops since $cols is equal to 3 and the condition is $i < $cols.

the for loops then echo the data for said columns.

 

the first for loop is echoing the row

 

Question 1. About 3/4 down the script: echo $x = ($i * $rows) + $j;

I do not understand what purpose this serves. I echoed the results and it's just scattered multiplication large numbers!

in this, $i is the current column, $rows is the total amount of rows and $j is the current row.

 

the script echoes a new table for each row and then populates that table with the relevant information from the current row in the while loop.

 

i'm sure someone else can give an explanation easier to understand.

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • 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.