Domanda

My service provider reset my php.ini file on me. My php code has not changed but now none of my functions are working?

I am running php.ini 5.2 what would I need to turn on, or off, to get the following code to work again?

Thank you in advance for your help

function characterListPost() {
global $wpdbNew;
$q = "SELECT id, ch_position, ch_name, ch_image, ch_description, ch_age, ch_like, ch_dislike FROM characters ORDER BY ch_position";
$rows = $wpdbNew->get_results($q,ARRAY_A);
// start with nonsense value to force a heading
$previous_season = 0;
$outputTwo='';
$i = 1;
foreach ($rows as $row) {
$outputTwo.= "<div class=\"characterbox\" id=\"div{$i}\">";
$i++;
$outputTwo.= "<div class=\"ch_name\">{$row["ch_name"]}</div>";
$outputTwo.= "<div><image class=\"ch_image\" id=\"ch_image{$row["id"]}\" alt=\"character image TBA\" src=\"{$row["ch_image"]}\" /></div>";
$outputTwo.= "<div class=\"ch_description\"><p>{$row["ch_description"]}</p></div>";
$outputTwo.= "<div class=\"ch_age\"><b>Age:</b> {$row["ch_age"]}</div>";
$outputTwo.= "<div class=\"ch_like\"><b>Like:</b> {$row["ch_like"]}</div>";
$outputTwo.= "<div class=\"ch_dislike\"><b>Dislike:</b> {$row["ch_dislike"]}</div>";
$outputTwo.= "<div class=\"Down10px clear\"></div>";
$outputTwo.= "</div>";
}
// echo test successful but $outputTwo will not display?
echo 'Connected successfully'; 
return $outputTwo;
}
?>

I tested the db code and it works so by process of elimination the problem must be between my php.ini file and the function code above

<?php
$wpdbNew = new wpdb('myacc.myhost.com', 'myusername', 'mypassword', 'mydbname');
if (!$wpdbNew) { 
    die('Could not connect: ' . mysql_error()); 
} 

The following are already On inside php.ini

allow_url_fopen = On
allow_url_include = On
register_long_arrays = On
register_globals = On

Second part, based on provided answer below, getting the following code to work EDIT got it to work by removing foreach ($rows as $row) { All set, everything is working!

<?php
episodeListPost();


function episodeListPost() {
    $host = 'mydomain.com';
    $user = 'myusername';
    $pass = 'mypassword';
    $data = 'dbname';

    $cn = mysql_connect($host, $user, $pass) or die(mysql_error());
    mysql_select_db($data, $cn) or die(mysql_error());
    $sql = "SELECT id, season_num, temp_eps_num, eps_num, title, inspired, descrip FROM season ORDER BY season_num, temp_eps_num";

    $result = mysql_query($sql, $cn) or die(mysql_error());

    if($result) {

        $previous_season = 0;
        $outputOne='';
        $i = 1;

        while($row = mysql_fetch_assoc($result)) {

            foreach ($rows as $row) {
        $season = $row["season_num"];
        if ($season != $previous_season){
        $outputOne.= "<div class=\"seasonTitle\">Season $season</div>";
        $previous_season = $season;
        }
        $outputOne.= "<div class=\"clear\">Episode: {$row["eps_num"]}</div>";
        $outputOne.= "<div class=\"epsTitle\">Title: <span class=\"epsTitleOutput\">{$row["title"]}</span></div><div class=\"epsInsp\"> {$row["inspired"]}</div>";
        $outputOne.= "<div class=\"epsDiscrip\">{$row["descrip"]}</div>";
        $outputOne.= "<div class=\"Down10px\"></div>";
        }

    if($i == 1) { }
        echo $outputOne;
        mysql_free_result($result);
    } else {
        echo 'No results';
    }
    mysql_close($cn);
}
?>
È stato utile?

Soluzione

The the following function. Most likely, your query is not returning any results, or the function $wpdbNew->get_results() is not returning any records.

function characterListPost() {
    global $wpdbNew;
    $q = "SELECT id, ch_position, ch_name, ch_image, ch_description, ch_age, ch_like, ch_dislike FROM characters ORDER BY ch_position";
    $rows = $wpdbNew->get_results($q,ARRAY_A);
    // start with nonsense value to force a heading
    $previous_season = 0;
    $outputTwo='';
    $i = 1;
    foreach ($rows as $row) {
        $outputTwo.= "<div class=\"characterbox\" id=\"div{$i}\">";
        $i++;
        $outputTwo.= "<div class=\"ch_name\">{$row["ch_name"]}</div>";
        $outputTwo.= "<div><image class=\"ch_image\" id=\"ch_image{$row["id"]}\" alt=\"character image TBA\" src=\"{$row["ch_image"]}\" /></div>";
        $outputTwo.= "<div class=\"ch_description\"><p>{$row["ch_description"]}</p></div>";
        $outputTwo.= "<div class=\"ch_age\"><b>Age:</b> {$row["ch_age"]}</div>";
        $outputTwo.= "<div class=\"ch_like\"><b>Like:</b> {$row["ch_like"]}</div>";
        $outputTwo.= "<div class=\"ch_dislike\"><b>Dislike:</b> {$row["ch_dislike"]}</div>";
        $outputTwo.= "<div class=\"Down10px clear\"></div>";
        $outputTwo.= "</div>";
    }
    // echo test successful but $outputTwo will not display?
    echo 'Connected successfully.';
    if($i == 1) { echo '<br />' . 'No Rows Found'; } else { echo '<br />' . $i . ' Rows Found'; }
    return $outputTwo;
}

SECOND TEST

<?php
characterListPost();


function characterListPost() {
    $host = '127.0.0.1';
    $user = 'root';
    $pass = '';
    $data = 'test';

    $cn = mysql_connect($host, $user, $pass) or die(mysql_error());
    mysql_select_db($data, $cn) or die(mysql_error());
    $sql = "SELECT id, ch_position, ch_name, ch_image, ch_description, ch_age, ch_like, ch_dislike FROM characters ORDER BY ch_position";

    $result = mysql_query($sql, $cn) or die(mysql_error());

    if($result) {

        $previous_season = 0;
        $outputTwo='';
        $i = 1;

        while($row = mysql_fetch_assoc($result)) {

            $outputTwo.= "\n\n" . '<!--- ROW #' . $i . ' -->' . "\n";
            $outputTwo.= '<div class="characterbox" id="div' . $i . '">' . "\n";
            $i++;
            $outputTwo.= '<div class="ch_name">' . $row["ch_name"] . '</div>' . "\n";
            $outputTwo.= '<div><image class="ch_image" id="ch_image' . $row["id"] . '" alt="character image TBA" src="' . $row["ch_image"] . '" /></div>' . "\n";
            $outputTwo.= '<div class="ch_description"><p>' . $row["ch_description"] . '</p></div>' . "\n";
            $outputTwo.= '<div class="ch_age"><b>Age:</b> ' . $row["ch_age"] . '</div>' . "\n";
            $outputTwo.= '<div class="ch_like"><b>Like:</b> ' .$row["ch_like"] . '</div>' . "\n";
            $outputTwo.= '<div class="ch_dislike"><b>Dislike:</b> ' . $row["ch_dislike"] . '</div>' . "\n";
            $outputTwo.= '<div class="Down10px clear"></div>' . "\n";
            $outputTwo.= '</div>' . "\n";

        }

    if($i == 1) { echo '<br />' . 'No Rows Found'; } else { echo '<br />' . $i . ' Rows Found'; }
        echo '<textarea>' . $outputTwo . '</textarea>';
        mysql_free_result($result);
    } else {
        echo 'No results';
    }
    mysql_close($cn);
}
?>

HACK AROUND

Replacing the function with this should work. Do not forget to call 'characterListPost()' wherever this is supposed to be output.

function characterListPost() {
    $host = '127.0.0.1';
    $user = 'root';
    $pass = '';
    $data = 'test';

    $cn = mysql_connect($host, $user, $pass) or die(mysql_error());
    mysql_select_db($data, $cn) or die(mysql_error());
    $sql = "SELECT id, ch_position, ch_name, ch_image, ch_description, ch_age, ch_like, ch_dislike FROM characters ORDER BY ch_position";

    $result = mysql_query($sql, $cn) or die(mysql_error());

    $return = "";

    if($result) {

        $previous_season = 0;
        $outputTwo='';
        $i = 1;

        while($row = mysql_fetch_assoc($result)) {

            $outputTwo.= "<div class=\"characterbox\" id=\"div{$i}\">";
            $i++;
            $outputTwo.= "<div class=\"ch_name\">{$row["ch_name"]}</div>";
            $outputTwo.= "<div><image class=\"ch_image\" id=\"ch_image{$row["id"]}\" alt=\"character image TBA\" src=\"{$row["ch_image"]}\" /></div>";
            $outputTwo.= "<div class=\"ch_description\"><p>{$row["ch_description"]}</p></div>";
            $outputTwo.= "<div class=\"ch_age\"><b>Age:</b> {$row["ch_age"]}</div>";
            $outputTwo.= "<div class=\"ch_like\"><b>Like:</b> {$row["ch_like"]}</div>";
            $outputTwo.= "<div class=\"ch_dislike\"><b>Dislike:</b> {$row["ch_dislike"]}</div>";
            $outputTwo.= "<div class=\"Down10px clear\"></div>";
            $outputTwo.= "</div>";

        }

//    if($i == 1) { echo '<br />' . 'No Rows Found'; } else { echo '<br />' . $i . ' Rows Found'; }
        $return = $outputTwo;
        mysql_free_result($result);
//    } else {
//        echo 'No results';
    }
    mysql_close($cn);
    return $return;
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top