Link to home
Create AccountLog in
Avatar of digarati
digarati

asked on

Array/Foreach assistance with database query

I am wondering if there is a much more simpler way to pull info from a database and assign a variable to it and use that variable to echo info. What I have snipped works, im just tired of typing each field each time I create a new database.... I want to keep from having to type all the database fields.
Is this possible?
$query=" SELECT * FROM vendor WHERE id='{$_POST['id']}'";
 
$result=mysql_query($query);
$num=mysql_numrows($result);
 
$i=0;
while ($i < $num) {
 
$busniessname=mysql_result($result,$i,"businessname");
$primaryphoneareacode=mysql_result($result,$i,"primaryphoneareacode");
$primaryphoneprefix=mysql_result($result,$i,"primaryphoneprefix");
$primaryphonenumber=mysql_result($result,$i,"primaryphonenumber");
$ext=mysql_result($result,$i,"ext");
$street1=mysql_result($result,$i,"street1");
$street2=mysql_result($result,$i,"street2");
$primaryfaxareacode=mysql_result($result,$i,"primaryfaxareacode");
$primaryfaxprefix=mysql_result($result,$i,"primaryfaxprefix");
$primaryfaxnumber=mysql_result($result,$i,"primaryfaxnumber");
$primarycontact=mysql_result($result,$i,"primarycontact");
$primarycontactemail=mysql_result($result,$i,"primarycontactemail");
$city=mysql_result($result,$i,"city");
$estimatingcontact=mysql_result($result,$i,"estimatingcontact");
$estimatingcontactemail=mysql_result($result,$i,"estimatingcontactemail");
$state=mysql_result($result,$i,"state");
$ownerofficercontact=mysql_result($result,$i,"ownerofficercontact");
$ownerofficercontactemail=mysql_result($result,$i,"ownerofficercontactemail");
$zip=mysql_result($result,$i,"zip");
$=mysql_result($result,$i,"estimatingcontact");
$estimatingcontactemail=mysql_result($result,$i,"estimatingcontactemail");
 
++$i;
 
 
}?>

Open in new window

Avatar of Guy Hengel [angelIII / a3]
Guy Hengel [angelIII / a3]
Flag of Luxembourg image

I think you are looking for extract() function:
http://lu.php.net/manual/en/function.extract.php

$query=" SELECT * FROM vendor WHERE id='{$_POST['id']}'";
 
$result=mysql_query($query); 
while ($row = mysql_fetch_assoc())
{
  extract($row);   
  // do something here...
} 
?>

Open in new window

Avatar of digarati
digarati

ASKER

Im attaching my complete code to help....
$query=" SELECT * FROM goodco WHERE id='{$_POST['id']}'";
$result=mysql_query($query);
$num=mysql_numrows($result);
 
$i=0;
while ($i < $num) {
 
$job=mysql_result($result,$i,"job");
$commitment=mysql_result($result,$i,"commitment");
$owneramount=mysql_result($result,$i,"owneramount");
$vendoramount1=mysql_result($result,$i,"vendoramount1");
$cc1=mysql_result($result,$i,"cc1");
$cc2=mysql_result($result,$i,"cc2");
$ownerscope=mysql_result($result,$i,"ownerscope");
$vendorscope1=mysql_result($result,$i,"vendorscope1");
$vendorscope2=mysql_result($result,$i,"vendorscope2");
$signature=mysql_result($result,$i,"signature");
$ownerconumber=mysql_result($result,$i,"ownerconumber");
$vendorconumber=mysql_result($result,$i,"vendorconumber");
$authorize=mysql_result($result,$i,"authorize");
 
++$i;
 
 
}?>
<html>
 
 
 
<head>
<meta http-equiv="Content-Language" content="en-us">
</head>
 
<table border="0" width="100%" id="table1">
	<tr>
		<td>
		<p align="center"><b><font size="4">Entry Form</font></b></td>
	</tr>
</table>
 
 
 
</html>
<?
 
 
						echo "<table border=\"0\" cellpadding=\"\" cellspacing=\"4\">\n";
						echo "Owner Details<br/>";
						echo "<br/>";
						echo "<tr><td>Job:</td><td>".$job."</td>\n";
						echo "<tr><td>CO #:</td><td>".$ownerconumber."</td>\n";
						echo "<tr><td>Amount:</td><td>".$owneramount."</td>\n";
						echo "<tr><td>Ownerscope:</td><td>".$ownerscope."</td>\n";
						echo "<tr><td>Schedule Impact:</td><td>".$impact." Days</td>\n";
						echo "<tr><td>Owner Authorization:</td><td>".$authorize."</td>\n";
						echo "</table>";
?>
<html>
<body>
 
<p><img border="0" src="images/topbar.JPG" width="124" height="4"></p>
 
</body>
</html>
 
<?
						echo "<table border=\"0\" cellpadding=\"\" cellspacing=\"4\">\n";
						echo "<br/>";
						echo "Commitment Details<br/>";
						echo "<br/>";
						echo "<tr><td>Commitment:</td><td>".$commitment."</td>\n";
						echo "</table>";
						echo "<table border=\"0\" cellpadding=\"\" cellspacing=\"4\">\n";
						echo "<tr><td>CO #:</td><td>".$vendorconumber."</td>\n";
						echo "<tr><td>Distribution:</td><td></td><td></td>\n";
						echo "<tr><td></td><td>Cost Code</td><td>Amount</td><td>Scope</td>\n";
						echo "<tr><td></td><td>".$cc1."</td><td>".$vendoramount1."</td><td>".$vendorscope1."</td>\n";
						echo "<tr><td></td><td>".$cc2."</td><td>".$vendoramount2."</td><td>".$vendorscope2."</td>\n";
						echo "</table>";
?>
 
<html>
<form action="pmupdatecoprintstatus.php" method="POST">
<input type="hidden" name="timberprintdate" value="<? echo $printdate; ?>">
<input type="hidden" name="id" value="<? echo $id; ?>">&nbsp;<table border="0" width="100%" id="table1">
	<tr>
		<td>&nbsp;</td>
	</tr>
	<tr>
		<td>
		<p align="center">
		<img border="0" src="http://site.com/pm/images/Printers_and_Faxes.png" width="48" height="44">
		<img border="0" src="http://site.com/pm/images/E_Mail.png" width="37" height="38"></td>
	</tr>
	<tr>
		<td>
		<p align="center">Print Status &nbsp; <select size="1" name="timberprint">
	<option value="0">Not Printed</option>
	<option value="1">Printed</option>
			</select>&nbsp;
		<input type="Submit" value="Update"></td>
	</tr>
</table>
</form>
</html>

Open in new window

As you only retrieve one row you just can use:
$query=" SELECT * FROM goodco WHERE id='{$_POST['id']}'";
$result=mysql_query($query);
$num=mysql_numrows($result);
 
$row = mysql_fetch_assoc($result);
extract($row);
<html>
 ....

Open in new window

Now if i want to echo job, commitment within my table how to i specify, ......

<html>
<?
echo "<tr><td>Commitment:</td><td>".$commitment."</td>\n";
echo "<tr><td>Job:</td><td>".$job."</td>\n";
?>
</html>
ASKER CERTIFIED SOLUTION
Avatar of hernst42
hernst42
Flag of Germany image

Link to home
membership
Create a free account to see this answer
Signing up is free and takes 30 seconds. No credit card required.
See answer
getting this error with hernst42's solution

Warning: extract(): First argument should be an array in /home/content/h/a/l/site/html/beta/vendor_details.php on line 17
code snipped.
<?php
session_start(); 
////////////////////////////////////////////////////////////////////////////////////////////////////// SESSION STARTED
$link="<a href=\"http://www.site.com/login.html\">login</a>";
if(!isset($_SESSION["sessioname"])){
echo "You are not authorized to view this page! Please Login Here: $link";
}else{
////////////////////////////////////////////////////////////////////////////////////////////////////MY PROTECTED CONTENT
include 'header.php';
require_once "dbconnection.php";
 
$query=" SELECT * FROM vendor WHERE id='{$_POST['id']}'";
$result=mysql_query($query);
$num=mysql_numrows($result);
 
$row = mysql_fetch_assoc($result);
extract($row);
 
		
						echo "<table border=\"0\" cellpadding=\"\" cellspacing=\"4\">\n";
						echo "Owner Details<br/>";
						echo "<br/>";
						echo "<tr><td>Name:</td><td>".$businessname."</td>\n";
						echo "<tr><td>Contact:</td><td>".$primarycontact."</td>\n";
						echo "</table>";						
}?>

Open in new window

SOLUTION
Link to home
membership
Create a free account to see this answer
Signing up is free and takes 30 seconds. No credit card required.