Reading results in vertical mode

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
josh
DevNet Master
Posts: 4872
Joined: Wed Feb 11, 2004 3:23 pm
Location: Palm beach, Florida

Reading results in vertical mode

Post by josh »

I'm reading out results in the vertical mode or atleast attempting to...


The normal horizontal mode reads out fine for me:

PLEASE DONT HIT THE GREEN CHECKMARK
http://airtranvirtual.com/auto_admin/pirep/pirep.php

Code: Select all

<?php
require_once("../../class2.php");
require_once(HEADERF);

$sql = "SELECT * FROM pirep where approve=0"; 
$link = mysql_connect("localhost", "airtranv", "**************")
   or die("Could not connect : " . mysql_error());
mysql_select_db("airtranv_automation") or die("Could not select database");
$result = mysql_query($sql) or die("Query failed : " . mysql_error());
/* Printing results in HTML */
echo "<table cellpadding="4" border=1 class='bodytable' width=400>\n";
echo('<tr bgcolor="#dddddd"><div class=''caption''><TD></td>
<td>Id</td>
		<td>Type of form</td>
		<td>Name</td>
		<td>Email</td>
		<td>Confirm Email</td>
		<td>Pilots Id Number</td>
		<td>Aircraft</td>
		<td>Flight Number</td>
		<td>Month</td>
		<td>Day</td>
		<td>Year</td>
		<td>Point of Departure</td>
		<td>Point of Arrival</td>
		<td>Pushback</td>
		<td>Shutdown</td>
		<td>Day flight hours</td>
		<td>Night flight hours</td>
		<td>Total flight hours</td>
		<td>Flight route</td>
		<td>Fuel consumption</td>
		<td>Fuel unit type</td>
		<td>Distance flown</td>
		<td>Units for distance</td>
		<td>Passengers aboard</td>
		<td>Yes, squak used</td>
		<td>no, squak not used</td>
		<td>Was it Flyin</td>
		<td>Was it Maintnence</td>
		<td>Was it Charter</td>
		<td>Weather</td>
		<td>Comments</td>
		<td>Aprroved yet?</td></div></tr>
		');

while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { 
   echo "\t<tr><td><a href="approve.php?id={$line['id']}"><img src="../images/check.jpg" alt="Approve" border=0></a></td>\n"; 
   foreach ($line as $col_value) { 
       echo "\t\t<td>$col_value</td>\n"; 
    
   } 
   echo "\t</tr>\n"; 
} 
echo "</table>\n";
/* Free resultset */
mysql_free_result($result);
mysql_close($link);



require_once(FOOTERF);

?>

Then i tried to get it to read out vertically with the following code, which did not work, it just returns blank
http://airtranvirtual.com/auto_admin/pirep/new.php

Code: Select all

<?php
require_once("../../class2.php");
require_once(HEADERF);
echo("<div align="center">");
$sql = "SELECT * FROM pirep where approve=0"; 
$link = mysql_connect("localhost", "airtranv", "*************")
   or die("Could not connect : " . mysql_error());
mysql_select_db("airtranv_automation") or die("Could not select database");
$result = mysql_query($sql) or die("Query failed : " . mysql_error());
echo("<table><tr>");
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
$title=("
<td>
<table cellpadding="4" border=1><tr><td>Action to perform</td><td><a href="approve.php?id={$line['id']}"><img src="../images/btn_approve.jpeg" alt="Approve" border=0><BR><img src="../images/btn_revise.jpeg" border=0><BR><img src="../images/btn_delete.jpeg" border=0 alt="Delete"></a></td></tr>
<tr><td>Pirep #</td>
    <td>$line[0]</td>
  </tr>
		<tr><td>Type of form</td>
    <td>$line[1]</td>
  </tr>
		<tr><td>Name</td>
    <td>$line[2]</td>
  </tr>
		<tr><td>Email</td>
    <td>$line[3]</td>
  </tr>
		<tr><td>Confirm Email</td>
    <td>$line[4]</td>
  </tr>
		<tr><td>Pilots Id Number</td>
    <td>$line[5]</td>
  </tr>
		<tr><td>Aircraft</td>
    <td>$line[6]</td>
  </tr>
		<tr><td>Flight Number</td>
    <td>$line[7]</td>
  </tr>
		<tr><td>Month</td>
    <td>$line[8]</td>
  </tr>
		<tr><td>Day</td>
    <td>$line[9]</td>
  </tr>
		<tr><td>Year</td>
    <td>$line[10]</td>
  </tr>
		<tr><td>Point of Departure</td>
    <td>$line[11]</td>
  </tr>
		<tr><td>Point of Arrival</td>
    <td>$line[12]</td>
  </tr>
		<tr><td>Pushback</td>
    <td>$line[13]</td>
  </tr>
		<tr><td>Shutrown</td>
    <td>$line[14]</td>
  </tr>
		<tr><td>Day flight hours</td>
    <td>$line[15]</td>
  </tr>
		<tr><td>Night flight hours</td>
    <td>$line[16]</td>
  </tr>
		<tr><td>Total flight hours</td>
    <td>$line[17]</td>
  </tr>
		<tr><td>Flight route</td>
    <td>$line[18]</td>
  </tr>
		<tr><td>Fuel consumption</td>
    <td>$line[19]</td>
  </tr>
		<tr><td>Fuel unit type</td>
    <td>$line[20]</td>
  </tr>
		<tr><td>Distance flown</td>
    <td>$line[21]</td>
  </tr>
		<tr><td>Units for distance</td>
    <td>$line[22]</td>
  </tr>
		<tr><td>Passengers aboard</td>
    <td>$line[23]</td>
  </tr>
		<tr><td>Yes, squak used</td>
    <td>$line[24]</td>
  </tr>
		<tr><td>no, squak not used</td>
    <td>$line[25]</td>
  </tr>
		<tr><td>Was it Flyin</td>
    <td>$line[26]</td>
  </tr>
		<tr><td>Was it Maintnence</td>
    <td>$line[27]</td>
  </tr>
		<tr><td>Was it Charter</td>
    <td>$line[28]</td>
  </tr>
		<tr><td>Weather</td>
    <td>$line[29]</td>
  </tr>
		<tr><td>Comments</td>
    <td>$line[30]</td>
  </tr>
		<tr><td>Aprroved yet?</td>
    <td>$line[31]</td>
  </tr></table></td>");
echo("$title");
}

mysql_free_result($result);
mysql_close($link);
echo("</tr></table></div>");


require_once(FOOTERF);



  
  ?>


I also tried foreach ($result as $line) after the fetch array and that returned a letter in each table cell instead of just one database cell per table cell
User avatar
feyd
Neighborhood Spidermoddy
Posts: 31559
Joined: Mon Mar 29, 2004 3:24 pm
Location: Bothell, Washington, USA

Post by feyd »

try this (untested):

Code: Select all

<?php 
require_once("../../class2.php"); 
require_once(HEADERF); 
echo("<div align="center">"); 
$sql = "SELECT * FROM pirep where approve=0"; 
$link = mysql_connect("localhost", "airtranv", "*************") 
   or die("Could not connect : " . mysql_error()); 
mysql_select_db("airtranv_automation") or die("Could not select database"); 
$result = mysql_query($sql) or die("Query failed : " . mysql_error()); 
echo("<table>"); 
$store = array();
while ($store[] = mysql_fetch_assoc($result));
if(!($num = sizeof($store)))
  die('no data returned');

$keys = array_keys($store[0]);

foreach($keys as $k)
{
  echo '<tr><td>'.$k.'</td>'
  for($x = 0; $x < $num; $x++)
  {
    echo '<td>'.$store[$x][$k].'</td>';
  }
  echo '</tr>'."\n";
}

echo '</table>';

?>
Last edited by feyd on Mon Jul 05, 2004 4:46 pm, edited 1 time in total.
josh
DevNet Master
Posts: 4872
Joined: Wed Feb 11, 2004 3:23 pm
Location: Palm beach, Florida

Post by josh »

Thanks that works perfectly... is there anyway to instead of saying the name of the field which could look like "totalhours" i could display something custom like "Total Hours" doing it this way?

thanks again so much


nm i could just do if ($k=="totalhours") { $k="Total Hours"; }
User avatar
feyd
Neighborhood Spidermoddy
Posts: 31559
Joined: Mon Mar 29, 2004 3:24 pm
Location: Bothell, Washington, USA

Post by feyd »

just switch out the array_keys call, with your array of names.. er.. sorta.. e.g.:

Code: Select all

<?php 
require_once("../../class2.php"); 
require_once(HEADERF); 
echo("<div align="center">"); 
$sql = "SELECT * FROM pirep where approve=0"; 
$link = mysql_connect("localhost", "airtranv", "*************") 
   or die("Could not connect : " . mysql_error()); 
mysql_select_db("airtranv_automation") or die("Could not select database"); 
$result = mysql_query($sql) or die("Query failed : " . mysql_error()); 
echo("<table>"); 
$store = array(); 
while ($store[] = mysql_fetch_assoc($result)); 
if(!($num = sizeof($store))) 
  die('no data returned'); 

$keys = array_keys($store[0]);
$hum_keys = array('human','readable','keys','here');

$count = 0;
foreach($keys as $k) 
{ 
  echo '<tr><td>'.$hum_keys[$count++].'</td>' 
  for($x = 0; $x < $num; $x++) 
  { 
    echo '<td>'.$store[$x][$k].'</td>'; 
  } 
  echo '</tr>'."\n"; 
} 

echo '</table>'; 

?>
Post Reply