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]
Link to comment
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);
Link to comment
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]
Link to comment
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.
Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • 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.