Jump to content

Results Grid


bigkev1983

Recommended Posts

Hey guys

 

I'm putting together a results page, which you can see a sample of here:

http://88.208.206.63/riseoverseas/search.php?country=1

 

I'd like the results to be in a GRID format and I used some code from the Internet to do this. Unfortunately, instead of the data appearing as a grid, the table just repeats downwards instead. This is the code for the table/repeat region. Can anyone please let me know where I'm going wrong here?

 

<?php

$searchquery = "SELECT * FROM `property` WHERE `country` = ".$_GET['country'];

$searchresult = mysql_query($searchquery);

while($searchrow = mysql_fetch_array($searchresult))

{

?>

                           

                           

                                    <table >

          <tr>

            <?php

$searchrow_endRow = 0;

$searchrow_columns = 3; // number of columns

$searchrow_hloopRow1 = 0; // first row flag

do {

    if($searchrow_endRow == 0  && $searchrow_hloopRow1++ != 0) echo "<tr>";

  ?>

            <td>

                           

<table class="dsR23" border="0" cellspacing="0" cellpadding="0">

<tr>

<td class="dsR24">

<div class="txt_titlesearch">

  <img class="dsR13" src="images/property/<?php echo($searchrow['img01']); ?>" alt="" border="0" /><br />

<br />

<?php echo($searchrow['town']); ?></div>

  <div class="txt_bodysearch">

<p><?php echo($searchrow['title']); ?><br />

<?php echo($searchrow['price']); ?><br />

Projected yield <?php echo($searchrow['yield']); ?></p>

</div>

</td>

</tr>

</table>

                               

                               

                               

                               

                                </td>

            <?php  $searchrow_endRow++;

if($searchrow_endRow >= $searchrow_columns) {

  ?>

          </tr>

          <?php

$searchrow_endRow = 0;

  }

} while ($row_searchrow = mysql_fetch_assoc($searchrow));

if($searchrow_endRow != 0) {

while ($searchrow_endRow < $searchrow_columns) {

    echo("<td> </td>");

    $searchrow_endRow++;

}

echo("</tr>");

}?>

        </table>

 

Link to comment
https://forums.phpfreaks.com/topic/100915-results-grid/
Share on other sites

???

 

<?php
                     $searchquery = "SELECT * FROM `property` WHERE `country` = ".$_GET['country'];
                     $searchresult = mysql_query($searchquery);
                     while($searchrow = mysql_fetch_array($searchresult))
                     {
                     ?>
                            
                            
                                    <table >
          <tr>
            <?php
$searchrow_endRow = 0;
$searchrow_columns = 3; // number of columns
$searchrow_hloopRow1 = 0; // first row flag
do {
    if($searchrow_endRow == 0  && $searchrow_hloopRow1++ != 0) echo "<tr>";
   ?>
            <td>
                            
                        <table class="dsR23" border="0" cellspacing="0" cellpadding="0">
                           <tr>
                              <td class="dsR24">
                                 <div class="txt_titlesearch">
                                   <img class="dsR13" src="images/property/<?php echo($searchrow['img01']); ?>" alt="" border="0" />

                                    

                                    <?php echo($searchrow['town']); ?></div>
                             <div class="txt_bodysearch">
                                    <p><?php echo($searchrow['title']); ?>

                                       <?php echo($searchrow['price']); ?>

                                       Projected yield <?php echo($searchrow['yield']); ?></p>
                                 </div>
                              </td>
                           </tr>
                        </table>
                                
                                
                                
                                
                                </td>
            <?php  $searchrow_endRow++;
if($searchrow_endRow >= $searchrow_columns) {
  ?>
          </tr>
          <?php
$searchrow_endRow = 0;
  }
} while ($row_searchrow = mysql_fetch_assoc($searchrow));
if($searchrow_endRow != 0) {
while ($searchrow_endRow < $searchrow_columns) {
    echo("<td> </td>");
    $searchrow_endRow++;
}
echo("</tr>");
}?>
        </table>

Link to comment
https://forums.phpfreaks.com/topic/100915-results-grid/#findComment-516343
Share on other sites

Thanks - I must confess I tried using that PHP script but couldn't get it to work with my data.

 

OK, so now I have two examples. The first is:

 

http://88.208.206.63/riseoverseas/search-repeater.php?country=1

 

In this example, as you can see the region repeats correctly but with the same data for each one (code below - I left the select query at the top as well just in case that has something to do with it).

 

							<?php
						$searchquery = "SELECT * FROM `property` WHERE `country` = ".$_GET['country'];
						$searchresult = mysql_query($searchquery);
						while($searchrow = mysql_fetch_array($searchresult))
						{
						?>

                                    <table >
          <tr>
            <?php
$searchresult_endRow = 0;
$searchresult_columns = 3; // number of columns
$searchresult_hloopRow1 = 0; // first row flag
do {
    if($searchresult_endRow == 0  && $searchresult_hloopRow1++ != 0) echo "<tr>";
   ?>
            <td>
<table class="dsR23" border="0" cellspacing="0" cellpadding="0">
								<tr>
									<td class="dsR24">
										<div class="txt_titlesearch">
										  <img class="dsR13" src="images/property/<?php echo($searchrow['img01']); ?>" alt="" border="0" /><br />
											<br />
											<?php echo($searchrow['town']); ?></div>
								  <div class="txt_bodysearch">
											<p><?php echo($searchrow['title']); ?><br />
												<?php echo($searchrow['price']); ?><br />
												Projected yield <?php echo($searchrow['yield']); ?></p>
										</div>
									</td>
								</tr>
							</table>
                                </td>
            <?php  $searchresult_endRow++;
if($searchresult_endRow >= $searchresult_columns) {
  ?>
          </tr>
          <?php
$searchresult_endRow = 0;
  }
} while ($row_searchresult = mysql_fetch_assoc($searchresult));
if($searchresult_endRow != 0) {
while ($searchresult_endRow < $searchresult_columns) {
    echo("<td> </td>");
    $searchresult_endRow++;
}
echo("</tr>");
}?>
        </table>

							<br />
                            <?php
						}
						?>

 

 

In the example below, the region repeats with the correct data but only repeats downward

http://88.208.206.63/riseoverseas/search-repeater.php?country=1

 

Here's the code:

<?php
						$searchquery = "SELECT * FROM `property` WHERE `country` = ".$_GET['country'];
						$searchresult = mysql_query($searchquery);
						while($searchrow = mysql_fetch_array($searchresult))
						{
						?>
                            
                            
                            
                            
                                    <table >
          <tr>
            <?php
$searchrow_endRow = 0;
$searchrow_columns = 3; // number of columns
$searchrow_hloopRow1 = 0; // first row flag
do {
    if($searchrow_endRow == 0  && $searchrow_hloopRow1++ != 0) echo "<tr>";
   ?>
            <td>
                            
                            
                            
                            
                            
                            
                            
                            
							<table class="dsR23" border="0" cellspacing="0" cellpadding="0">
								<tr>
									<td class="dsR24">
										<div class="txt_titlesearch">
										  <img class="dsR13" src="images/property/<?php echo($searchrow['img01']); ?>" alt="" border="0" /><br />
											<br />
											<?php echo($searchrow['town']); ?></div>
								  <div class="txt_bodysearch">
											<p><?php echo($searchrow['title']); ?><br />
												<?php echo($searchrow['price']); ?><br />
												Projected yield <?php echo($searchrow['yield']); ?></p>
										</div>
									</td>
								</tr>
							</table>

                                </td>
            <?php  $searchrow_endRow++;
if($searchrow_endRow >= $searchrow_columns) {
  ?>
          </tr>
          <?php
$searchrow_endRow = 0;
  }
} while ($row_searchrow = mysql_fetch_assoc($searchrow));
if($searchrow_endRow != 0) {
while ($searchrow_endRow < $searchrow_columns) {
    echo("<td> </td>");
    $searchrow_endRow++;
}
echo("</tr>");
}?>
        </table>
  
							<br />
                            <?php
						}
						?>

 

Go gentle on me, I'm a graphic designer by trade so a lot of this web stuff is very new for me right now  ;D

Link to comment
https://forums.phpfreaks.com/topic/100915-results-grid/#findComment-516349
Share on other sites

Im a bit confused as to why we have a while loop and a do-while loop. However, it should be a simple matter of taking the code from the FAQ/thread i posted above, and putting your query and and data into it:

 

<?php
$query = "SELECT * FROM `property` WHERE `country` = ".$_GET['country'];
$result = mysql_query($query) or die("There was a problem with the SQL query: " . mysql_error()); 
if($result && mysql_num_rows($result) > 0)
{
    $i = 0;
    $max_columns = 3;
    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>";
          ?>   
          <div class="txt_titlesearch">
	  <img class="dsR13" src="images/property/<?php echo $img01; ?>" alt="" border="0" /><br />
	  <br />
	  <?php echo$town; ?></div>
	  <div class="txt_bodysearch">
	  <p><?php echo $title; ?><br />
	  <?php echo $price; ?><br />
	  Projected yield <?php echo $yield; ?></p>
	  </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 < $max_columns)
{
    for($j=$i; $j<$max_columns;$j++)
        echo "<td> </td>";
}
?>
</tr>
</table>

 

You might want to try the above on a separate page, to make sure nothing else is interefering. Then put it back in this page to get it working how you want.

Link to comment
https://forums.phpfreaks.com/topic/100915-results-grid/#findComment-516521
Share on other sites

Yes, you're right - otherwise the code will create a new row unnecessarily. I also forgot to open the table tag. That makes the code:

 

<table>
<?php
$query = "SELECT * FROM `property` WHERE `country` = ".$_GET['country'];
$result = mysql_query($query) or die("There was a problem with the SQL query: " . mysql_error()); 
if($result && mysql_num_rows($result) > 0)
{
    $i = 0;
    $max_columns = 3;
    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>";
          ?>   
          <div class="txt_titlesearch">
	  <img class="dsR13" src="images/property/<?php echo $img01; ?>" alt="" border="0" /><br />
	  <br />
	  <?php echo$town; ?></div>
	  <div class="txt_bodysearch">
	  <p><?php echo $title; ?><br />
	  <?php echo $price; ?><br />
	  Projected yield <?php echo $yield; ?></p>
	  </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>';
}
?>
</table>

Link to comment
https://forums.phpfreaks.com/topic/100915-results-grid/#findComment-516538
Share on other sites

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.