Jump to content

Create an Array From a MySql Field (or Column)


drknife

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]
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);
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]
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.

Archived

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

×
×
  • Create New...

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.