...

View Full Version : Display everything in a database.



briintex1
06-09-2006, 07:39 PM
I have a database, that has 1 table in it. Inside this table it has 10 columns. Well there could be one thing in 1 column, but there are multiple rows. Is there a way that I could make it display everything that is inside the rows. I have included a small piece of my code if that helps?



<table width="100%" border="1">
<tr>
<td width="9.2%"><? echo $obj[1] ?></td>
<td width="9.2%"><? echo $obj[2] ?></td>
<td width="9.2%"><? echo $obj[3] ?></td>
<td width="9.2%"><? echo $obj[4] ?></td>
<td width="9.2%"><? echo $obj[5] ?></td>
<td width="9.2%"><? echo $obj[6] ?></td>
<td width="9.2%"><? echo $obj[7] ?></td>
<td width="9.2%"><? echo $obj[8] ?></td>
<td width="9.2%"><? echo $obj[9] ?></td>
</tr>
</table>


Currently it displays only the first thing that is inside the database. Would it be easier to write it to count the number of rows and then subtract the number of rows, with a loop?

danelkayam
06-09-2006, 08:07 PM
Umm...you might want to fix the fact that you forgot ; in every single php line. That's not good.

briintex1
06-09-2006, 08:16 PM
I took care of that and cleaned up my code to look like this


<?
while ($count >0)
{

echo "<table width='100%' border='1'>";
echo "<tr>";
echo "<td width='9.2%'>"; echo $obj[1] "</td>";
echo "<td width='9.2%'>";<? echo $obj[2] ?>;echo "</td>";
echo "<td width='9.2%'>";<? echo $obj[3] ?>;echo "</td>";
echo "<td width='9.2%'>";<? echo $obj[4] ?>;echo "</td>";
echo "<td width='9.2%'>";<? echo $obj[5] ?>;echo "</td>";
echo "<td width='9.2%'>";<? echo $obj[6] ?>;echo "</td>";
echo "<td width='9.2%'>";<? echo $obj[7] ?>;echo "</td>";
echo "<td width='9.2%'>";<? echo $obj[8] ?>;echo "</td>";
echo "<td width='9.2%'>";<? echo $obj[9] ?>;echo "</td>";
echo "</tr>";
echo "</table>";

$count - 1;
}


and I get this error
Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING

on line 86
line 86 is the first td statement. I am not sure what is wrong with this...if I make it look like the others then another error appears.

litebearer
06-10-2006, 12:05 AM
Sorry too tired to read your code; however, this should do the trick...


<?php
session_start();
header("Cache-control: private"); // IE 6 Fix.
session_unset();

#################################################################
# this small script can be used to
#
# get and display a database table's structure (field names and field type)
# get and display the field contents in an html table
#
#

##################################
# set the database variables

$database="";
$location = "localhost";
$username = "";
$password = "";
$db_table = "";

######################################
# set the function switches
# 0 means use
# 1 means do NOT use

$display_table_structure = 0;
$display_table_contents = 0;
$create_csv_file = 0; // use this to create a csv file from the data
$create_excel_file = 0; // use this to create an excel file from the table
$csv_name = $db_table . "_" . time();
$how_many = 0; // use this value to limit the number of records returned in the data query (0 means no limit)

######################################
# define the function(s)

// This function gets the field names
function my_db_get_table_field_names($table) {
$sql = "SHOW COLUMNS FROM `$table`";
$field_names = array();
$result2 = mysql_query($sql);
for($i=0;$i<mysql_num_rows($result2);$i++){
$row = mysql_fetch_array($result2);
$name = $row['Field'];
array_push($field_names, $name);
}
return $field_names;
}



############################################
# connect to the database

mysql_connect ($location, $username, $password);
@mysql_select_db($database) or die( "Unable to select database");
$result0 = mysql_query("SHOW COLUMNS FROM $db_table");

if (!$result0) {
echo 'Could not run query: ' . mysql_error();
exit;
}


####################################################
# get the field names into an array and count them

$new_array = my_db_get_table_field_names($db_table);
$fields = count($new_array);

###################################################
# get all the data and count the records

if ($how_many == 0) {
$result = mysql_query( "SELECT * FROM $db_table" )
or die("SELECT Error: ".mysql_error());
$num_rows = mysql_num_rows($result);
}else{
$result = mysql_query( "SELECT * FROM $db_table LIMIT $how_many" )
or die("SELECT Error: ".mysql_error());
$num_rows = mysql_num_rows($result);
}

##############################################################
# display the general information

echo "This information is for the " . $database . " database. Table " . $db_table . "<br><br>";
echo "There are " . $fields . " columns/fields and " . $num_rows . " records.<br><br>";

###########################################################
# display the table structure

if ($display_table_structure == 0) {
echo "<hr>Table structure for " . $db_table . ": <br><br>";
echo "<table border=1> <tr><td>Field #</td><td>Field Name</td><td>Field Type</td></tr>";
$result9 = mysql_query("SHOW FIELDS FROM $database.$db_table");
$i = 0;
while ($row = mysql_fetch_array($result9)){
echo "<tr><td>" . $i . "</td><td>" . $row['Field'] . "</td><td>" . $row['Type'] . "</td></tr>";
$i = $i +1;
}
echo "</table>";
}

##############################################################
# display the table contents

if ($display_table_contents == 0) {
echo "<hr>Table data for " . $db_table . ": <br><br>";
print "<table width='100%' border=1>\n";
$i = 0;
print "<tr>\n";
for ($i=0;$i<$fields;$i++) {
print "\t<td><font face=arial size=1/>$new_array[$i]</font></td>\n";
}
while ($get_info = mysql_fetch_row($result)){
print "<tr>\n";
foreach ($get_info as $field)
print "\t<td><font face=arial size=1/>$field</font></td>\n";
print "</tr>\n";
}
print "</table>\n";
}

?>


Lite...

FYI

This little ditty will take that table and create an excel file for you


<?php

//EDIT YOUR MySQL Connection Info:
$DB_Server = "localhost"; //your MySQL Server
$DB_Username = ""; //your MySQL User Name
$DB_Password = ""; //your MySQL Password
$DB_DBName = ""; //your MySQL Database Name
$DB_TBLName = ""; //your MySQL Table Name
//$DB_TBLName, $DB_DBName, may also be commented out & passed to the browser
//as parameters in a query string, so that this code may be easily reused for
//any MySQL table or any MySQL database on your server

//DEFINE SQL QUERY:
//you can use just about ANY kind of select statement you want -
//edit this to suit your needs!
$sql = "Select * from $DB_TBLName";

//Optional: print out title to top of Excel or Word file with Timestamp
//for when file was generated:
//set $Use_Titel = 1 to generate title, 0 not to use title
$Use_Title = 1;
//define date for title: EDIT this to create the time-format you need
$now_date = date('m-d-Y H:i');
//define title for .doc or .xls file: EDIT this if you want
$title = "Dump For Table $DB_TBLName from Database $DB_DBName on $now_date";
/*

Leave the connection info below as it is:
just edit the above.

(Editing of code past this point recommended only for advanced users.)
*/
//create MySQL connection
$Connect = @mysql_connect($DB_Server, $DB_Username, $DB_Password)
or die("Couldn't connect to MySQL:<br>" . mysql_error() . "<br>" . mysql_errno());
//select database
$Db = @mysql_select_db($DB_DBName, $Connect)
or die("Couldn't select database:<br>" . mysql_error(). "<br>" . mysql_errno());
//execute query
$result = @mysql_query($sql,$Connect)
or die("Couldn't execute query:<br>" . mysql_error(). "<br>" . mysql_errno());

//if this parameter is included ($w=1), file returned will be in word format ('.doc')
//if parameter is not included, file returned will be in excel format ('.xls')
if (isset($w) && ($w==1))
{
$file_type = "msword";
$file_ending = "doc";
}else {
$file_type = "vnd.ms-excel";
$file_ending = "xls";
}
//header info for browser: determines file type ('.doc' or '.xls')
header("Content-Type: application/$file_type");
header("Content-Disposition: attachment; filename=database_dump.$file_ending");
header("Pragma: no-cache");
header("Expires: 0");

/* Start of Formatting for Word or Excel */

if (isset($w) && ($w==1)) //check for $w again
{
/* FORMATTING FOR WORD DOCUMENTS ('.doc') */
//create title with timestamp:
if ($Use_Title == 1)
{
echo("$title\n\n");
}
//define separator (defines columns in excel & tabs in word)
$sep = "\n"; //new line character

while($row = mysql_fetch_row($result))
{
//set_time_limit(60); // HaRa
$schema_insert = "";
for($j=0; $j<mysql_num_fields($result);$j++)
{
//define field names
$field_name = mysql_field_name($result,$j);
//will show name of fields
$schema_insert .= "$field_name:\t";
if(!isset($row[$j])) {
$schema_insert .= "NULL".$sep;
}
elseif ($row[$j] != "") {
$schema_insert .= "$row[$j]".$sep;
}
else {
$schema_insert .= "".$sep;
}
}
$schema_insert = str_replace($sep."$", "", $schema_insert);
$schema_insert .= "\t";
print(trim($schema_insert));
//end of each mysql row
//creates line to separate data from each MySQL table row
print "\n----------------------------------------------------\n";
}
}else{
/* FORMATTING FOR EXCEL DOCUMENTS ('.xls') */
//create title with timestamp:
if ($Use_Title == 1)
{
echo("$title\n");
}
//define separator (defines columns in excel & tabs in word)
$sep = "\t"; //tabbed character

//start of printing column names as names of MySQL fields
for ($i = 0; $i < mysql_num_fields($result); $i++)
{
echo mysql_field_name($result,$i) . "\t";
}
print("\n");
//end of printing column names

//start while loop to get data
while($row = mysql_fetch_row($result))
{
//set_time_limit(60); // HaRa
$schema_insert = "";
for($j=0; $j<mysql_num_fields($result);$j++)
{
if(!isset($row[$j]))
$schema_insert .= "NULL".$sep;
elseif ($row[$j] != "")
$schema_insert .= "$row[$j]".$sep;
else
$schema_insert .= "".$sep;
}
$schema_insert = str_replace($sep."$", "", $schema_insert);
//following fix suggested by Josue (thanks, Josue!)
//this corrects output in excel when table fields contain \n or \r
//these two characters are now replaced with a space
$schema_insert = preg_replace("/\r\n|\n\r|\n|\r/", " ", $schema_insert);
$schema_insert .= "\t";
print(trim($schema_insert));
print "\n";
}
}

?>

mic2100
06-10-2006, 12:52 PM
<table width="100%" border="1">
<tr>
<td width="9.2%"><? echo $obj[1]; ?></td>
<td width="9.2%"><? echo $obj[2]; ?></td>
<td width="9.2%"><? echo $obj[3]; ?></td>
<td width="9.2%"><? echo $obj[4]; ?></td>
<td width="9.2%"><? echo $obj[5]; ?></td>
<td width="9.2%"><? echo $obj[6]; ?></td>
<td width="9.2%"><? echo $obj[7]; ?></td>
<td width="9.2%"><? echo $obj[8]; ?></td>
<td width="9.2%"><? echo $obj[9]; ?></td>
</tr>
</table>


do u have a record set that u use to get info outta teh database??? where the $obj[?] is defined

lavinpj1
06-10-2006, 01:44 PM
Umm...you might want to fix the fact that you forgot ; in every single php line. That's not good.

It's always a good idea to try code before ridiculing it. You do not need a ; after the last statment in your php before the ?>

e.g.


<?php
echo 'hi';
echo 'bye';
echo 'see ya!'
?>

Would work absolutely fine.

~Phil~



EZ Archive Ads Plugin for vBulletin Copyright 2006 Computer Help Forum