Frage

I just finished writing this script and getting it to work but I need to use it a total of 8 times on 1 page. It works fine the first time but the second time I get: Fatal Error cannot redeclare get_names(). I've been told the way around this is to use include_once but I can't seem to figure out how exactly I'm supposed to do that. I've tried cutting both of the get_names parts out of the code and putting them into separate php files then using the include_once command. I got it to work but once again I got the same error after trying to use the script twice. I also tried putting the whole script into a php file and then using the include_once("scriptname.php") command and the same thing happened. So my questiion is how exactly do I cut this script up so I don't get this error anymore?

<?php
$db = mysql_connect('localhost', 'username', 'pass') or die("Database error");
mysql_select_db('dbname', $db);

$query = "SELECT pool FROM winners";
$result = mysql_query($query) or die(mysql_error());

while($row = mysql_fetch_array($result))
if ($row['pool'] % 2) {
echo "<h4>Result 1</h4>";
$names = get_names(1);
foreach($names as $name) {
    echo $name . "<br/>";
}
} else {
echo "<h4>Result 2</h4>";
$names = get_names(0);
foreach($names as $name) {
    echo $name . "<br/>";
}
}

function get_names($pool_result)
{
$name_array = array();

$query = "SELECT * FROM comments WHERE commentid % 2 = $pool_result";
$result = mysql_query($query);

while ($row = mysql_fetch_array($result)) {
array_push($name_array, $row['name']);
}

return $name_array;

} ?>
War es hilfreich?

Lösung

put getNames function in afile.php and include that once at the start. take getNames function out of your current file.

so things goes like this

in first php file (say) you have this code - filea.php

 function get_names($pool_result)
 {
 $name_array = array();

$query = "SELECT * FROM comments WHERE commentid % 2 = $pool_result";
$result = mysql_query($query);

while ($row = mysql_fetch_array($result)) {
array_push($name_array, $row['name']);
 }

return $name_array;

}

you second file will have fileb.php

 $db = mysql_connect('localhost', 'username', 'pass') or die("Database error");
 ..... rest of source code excluded. Make sure you get rid of getNames in this file

Now just include as per normal

include 'filea.php'; // include it once only


include 'fileb.php'; // as many times as your wish

or just wrap your code in a function and call that instead

Andere Tipps

If you are using this script 8 times, then put the entire thing inside a function and call that function 8 times instead of copy pasting.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top