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
None yet
Forum Statistics
Forums41
Topics33,840
Posts68,858
Members2,176
Most Online3,253
Jan 13th, 2020
Latest Postings
Top Posters
UGN Security 41,392
Gremelin 7,203
§intå× 3,255
SilentRage 1,273
Ice 1,146
pergesu 1,136
Infinite 1,041
jonconley 955
Girlie 908
unreal 860
Top Likes Received
Ghost 2
Dartur 1
Cyrez 1
Girlie 1
unreal 1
Powered by UBB.threads™ PHP Forum Software 8.0.0