Jump to content

Archived

This topic is now archived and is closed to further replies.

drknife

Create an Array From a MySql Field (or Column)

Recommended Posts

I have been trying to make something do this for hours.  I have scoured the net looking for the question previously asked.
I found nothing that worked.  I found this not very useful posting where the poster said they fixed the error I keep having but did not post the fix.

http://codewalkers.com/forum/index.php?action=displaythread&forum=sqlhelp&id=2493&realm=default

so I ask with all humbleness and desparation:

How do I take the data from one field in a table in a mysql database and create a php array with that data?
Or the real goal is to select a random entry from the pagelist field to load a random webpage?
I have the following code in use

[tt]<?php

//connect to database
$dbh = mysql_connect ("localhost", "user", "pass") or die ('I cannot connect to the database because: ' . mysql_error());
mysql_select_db("dbname");

$sql="SELECT pagelist FROM pagelist";
$result = mysql_query($sql) or die(mysql_error());

$input = mysql_fetch_array($result);

while($row = mysql_fetch_array($result)){
//echo $row['pagelist'];
//echo "<br />";
}
echo $row[0] ;
echo $row[1] ;
echo $row[2] ;

//random page
//$input = array("index.html", "index2.html", "gwbush.html");
$page = array_rand($input);
echo $input[$page] . "\n";


?>[/tt]

Share this post


Link to post
Share on other sites
are you saying that you want to create an array from a string that contains 'index.html, page.html, page2.html'?

you could use the explode function to create an array, assuming that the seperator is a comma it would go something like this

$myarray = explode(",", $input);

Share this post


Link to post
Share on other sites
I want to take the pagelist field from my mysql database an create an array from that  OR chose a random row from the pagelist field/column.

The above code resulted in the following error

[tt]
Parse error: syntax error, unexpected T_VARIABLE in host/random.php on line 6
[/tt]

Share this post


Link to post
Share on other sites
Here's some code I cooked up, it's probably not the most efficient, but it should do it:

[code="php"]
//Select URLs from database?
$sql_pages = mysql_query("SELECT pagelist FROM pagelist") or die(mysql_error());
$num_rows = mysql_num_rows($sql_pages);

//Add all pagelists to array
$count = 0;
while($count < $num_rows){
  $row = mysql_fetch_array($sql_pages);
  $page_array[$count] = $row['pagelist'];
  $count++;
}

//Select a random pagelist entry
$rand_sel = rand(0, $num_rows);
$rand_page = $page_array[$rand_sel];
[/code]

I may have misinterpreted the question.  Is pagelist a list of pages for each entry in this table and you only want to compile an array for a single entries pagelist?  Or, are you trying to put all "pagelists" into an array (putting a database column into an array) - that is what the above code should do.  Disregard it if you are trying to do the former.

Share this post


Link to post
Share on other sites
ok try it like this, based on your code:

$input = mysql_fetch_array($result);
$myarray = explode(",", $input[0]);

Share this post


Link to post
Share on other sites
para11ax:

Thanks that did what I wanted. 
The other code helped to for me to see how to create an array a different way.

Now I will try to get this code streamlined.

Thanks.

Share this post


Link to post
Share on other sites

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.