Previous Thread
Next Thread
Print Thread
Rate Thread
Joined: Dec 2002
Posts: 3,255
Likes: 3
UGN Elite
UGN Elite
Joined: Dec 2002
Posts: 3,255
Likes: 3
I want to perfect some of my scripts. To do this I need to minimize the number of times I hit the databases. Currentley for a drop down menu I do something like the following.

Code
<select name="somename">
 $quer = mysql_query("SELECT * FROM Svc_mgr WHERE id  = '$id'");
while($quer2 = mysql_fetch_array($quer)) {
echo "<option value=\"".quer2['id']."\">".$quer2['name']."</option>";
}
</select>

 
I should be able to make a single call to each table and draw all the infor mation I need and set it into a multi demesional array to call throughout each section of the script.

For example

Table1 is in database one. It has the following collums

name(varcher(25)) - timestamp(varchar(20)) - id(int(11))

some examples of rows might be

John Doe - 04/29/03 - 05:34:06 - 01
Jane Doe - 04/28/03 - 05:34:06 - 02
Jimmy Doe - 04/27/03 - 05:34:06 - 03

I want to call to the database and put each colum into a array dynamicaly.
Code
  
$multiarray = array(
  "name" => array(
               1 => "John Doe",
               2 => "Jane Doe",
               3 => "Jimmy Doe"
                    ),
  "timestamp" => array(
               1 => "04/29/03 - 05:34:06", 
               2 => "04/28/03 - 05:34:06",
               3 => "04/27/03 - 05:34:06" 
                    ),
  "id" => array(
               1,
               2,
               3
                    )   
                );                  
 
How do I do that dynamicaly? First problem I have is the commas. The last entry can not have a comma. It will cause a parse error. This is harder than it seems at first. I have spent a few hours ripping my hair out and reading on arrays on php.net

http://www.php.net/manual/en/language.types.array.php

Any help I am most thankful.

Sponsored Links
▼ Sponsored Links ▼ ▲ Sponsored Links ▲
Joined: Dec 2002
Posts: 3,255
Likes: 3
UGN Elite
UGN Elite
Joined: Dec 2002
Posts: 3,255
Likes: 3
No help? Common guys, anyone at all wana take a crack at this?

Joined: Dec 2002
Posts: 3,255
Likes: 3
UGN Elite
UGN Elite
Joined: Dec 2002
Posts: 3,255
Likes: 3
Still now help? Anyone, anyone at all?

Joined: Oct 2002
Posts: 955
UGN Super Poster
UGN Super Poster
Joined: Oct 2002
Posts: 955
What have you tried?

Joined: Dec 2002
Posts: 3,255
Likes: 3
UGN Elite
UGN Elite
Joined: Dec 2002
Posts: 3,255
Likes: 3
Code
 
$quer = mysql_query("SELECT * FROM Svc_mgr WHERE id  = '$id'");
$count = 0;
$some_array = array(
while($quer2 = mysql_fetch_array($quer)) {


                    "name" => array(
                          $count => "".$quer2['fname']."" "".$quer2['lname']."",)
}                   "phone" => araay(
                          $count => "".$quer2['phone']."",)
                    "cell" => array(
                          $count => "".quer2['cell_phone']."",)
$count = $count++;
}
)
Now this will not work for obvious reasons. for one the last entry for each sub array can not have a trailing comma. Also every time it loops
through it will look like so


Code
  
$multiarray = array(
               "name" => array(1 => "John Doe",)
               "name" => array(2 => "Jane Doe",)
               "name" => array(3 => "Jimmy Doe",)
                  ), ), ),

               "name" => array(1 => "04/29/03 - 05:34:06",) 
               "name" => array(2 => "04/28/03 - 05:34:06",)
               "name" => array(3 => "04/27/03 - 05:34:06",) 
                    ),),),
  
               "id" => array(1,)
              "id" => array( 2,)
               "id" => array(3,)
                    )   
                );                  
 
So here I am slaming my head into the desk out of frustration. I know I am doing something all wrong. I just want to know what the right way is. I have been all through http://www.php.net looking for how to do what I want to do.

Any ideas?

Joined: Jun 2002
Posts: 3
1
Junior Member
Junior Member
1 Offline
Joined: Jun 2002
Posts: 3
your code doesn't make sense for a multi-dimesional array because your naming the parts between a named array.
secondly why don't you just use three sperate arrays because u can use many functions to modify one array which does the same to the others..

Joined: Jun 2002
Posts: 3
1
Junior Member
Junior Member
1 Offline
Joined: Jun 2002
Posts: 3
from what i can figure why don't you do something like:

Code
$num = mysql_numrows( $result );
$i = 0;
$names = "";
$ids = "";
$timestamps = "";
while (i < $num)
{
$name=mysql_result($result,$i,"name");
$timestamp=mysql_result($result,$i,"timestamp");
$id=mysql_result($result,$i,"id");
$names = $name . "\"name\" => array($id => \"$name\",)";
$timestamps = $timestamps . "$id =g> \"$timestamp\", ";
$ids = $ids . "$id,";
$i = i + 1;
}
$multiarray = array(  "name" => array(     $names        ),  "timestamp" => array(  $timestamps ),  "id" => array( $ids )                   );  
edit to replace greaterthansymbol with >


Link Copied to Clipboard
Member Spotlight
Gremelin
Gremelin
Portland, OR; USA
Posts: 7,204
Joined: February 2002
Forum Statistics
Forums41
Topics33,839
Posts68,797
Members2,177
Most Online73,244
Nov 9th, 2025
Latest Postings
Top Posters
UGN Security 41,392
Gremelin 7,204
SilentRage 1,273
Ice 1,146
pergesu 1,136
Infinite 1,041
jonconley 955
Girlie 908
unreal 860
Top Likes Received
Ghost 2
Cyrez 1
Girlie 1
unreal 1
Crime 1
Powered by UBB.threads™ PHP Forum Software 8.0.0