Jump to content

I need some help with multiple years in my search.


Recommended Posts

I am searching the database for items that are plaques. There are different years of plaques. I find all the plaques sorted by year. My display puts them in rows of 4 max.

What I want is to display them by year with a different year on a different line.

Right now there are 4 (1963), 3 (1965), 1 (1978) all bunched together.

1963, 1963, 1963, 1963,

1965, 1965, 1965, 1978

 

What I want is:

1963, 1963, 1963, 1963,

 

1965, 1965, 1965,

 

1978,

 

Any help would greatly be appreciated.

 

 

<?php
include 'config0.php';

$search=$_GET["search"];

// Connect to server and select database.
mysql_connect($dbhost, $dbuser, $dbpass)or die("cannot connect");
mysql_select_db("$dbname")or die("cannot select DB");


$result = mysql_query("SELECT * FROM table1 WHERE plaques LIKE '%$search%' ORDER BY year") or die(mysql_error());
// store the record of the "" table into $row
//$current = '';

// keeps getting the next row until there are no more to get
if($result && mysql_num_rows($result) > 0)

{
    $i = 0;
    $max_columns = 4;
    echo "<table align=center>";
echo "<br>";
    while($row = mysql_fetch_array($result))
   {
       // make the variables easy to deal with
       extract($row);

       // open row if counter is zero
       if($i == 0)

          echo "<tr>";

          echo "<td align=center>";
          ?>
          <div style="float: left;">
          <div><img src="<?php echo $tn; ?>"></div>

	  </div>


          <?php
          echo "</td>";

       // increment counter - if counter = max columns, reset counter and close row
       if(++$i == $max_columns)
       {
           echo "</tr>";
           $i=0;
       }  // end if
   } // end while
} // end if results

// clean up table - makes your code valid!
if($i > 0)
{
    for($j=$i; $j<$max_columns;$j++)
        echo "<td> </td>";
   echo '</tr>';
}
mysql_close();
?>
</table>

try

<?php
include 'config0.php';
$search=$_GET["search"];
// Connect to server and select database.
mysql_connect($dbhost, $dbuser, $dbpass)or die("cannot connect");
mysql_select_db("$dbname")or die("cannot select DB");
$result = mysql_query("SELECT * FROM table1 WHERE plaques LIKE '%$search%' ORDER BY `year`") or die(mysql_error());
// store the record of the "" table into $row
//$current = '';
// keeps getting the next row until there are no more to get
if($result && mysql_num_rows($result) > 0) {
    $i = 0;
    $max_columns = 4;
    $y = mysql_result($result, 0, 'year');
    echo "<table align=center>";
echo "<br>";
    while($row = mysql_fetch_array($result)) {
       // make the variables easy to deal with
       extract($row);
       if($y != $year){
           $y = $year;
           if($i >0) {
               for($j=$i; $j<$max_columns; $j++) echo "<td> </td>";
               echo "</tr>\n";
               $i = 0;
           }
       }

       // open row if counter is zero
       if($i == 0) echo "<tr>";
       echo "<td align=center>";
?>
          <div style="float: left;">
            <div><img src="<?php echo $tn; ?>"></div>
  </div>
<?php
       echo "</td>";
       // increment counter - if counter = max columns, reset counter and close row
       if(++$i == $max_columns) {
           echo "</tr>";
           $i=0;
       }  // end if
   } // end while
} // end if results

// clean up table - makes your code valid!
if($i > 0) {
    for($j=$i; $j<$max_columns;$j++)
        echo "<td> </td>";
   echo '</tr>';
}
mysql_close();
?>

I thought it worked fine until I noticed that there wasn't 4 item in the first set of 1963. There were only 3 items listed, but from there on it put the correct number in each row.

 

this is what was needed:

1963, 1963, 1963, 1963

 

1965, 1965, 1965

 

1978

 

This is what I got:

1963, 1963, 1963

 

1965, 1965, 1965

 

1978

 

I couldn't figure what was wrong.

I made sure the items were in the database and they were.

Any thoughts?

Thanks

 

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.