www.webdeveloper.com
Results 1 to 3 of 3

Thread: PHP randomly stops output when displaying MySQL Result

  1. #1
    Join Date
    Sep 2009
    Posts
    2

    PHP randomly stops output when displaying MySQL Result

    Hey there,

    I'm relatively new to PHP and I got a problem I just cannot seem to solve. I have to display a <select>-box filled with values from a MySQL-database. Since I have to do this very often and for a lot of different tables, I wrote this function:

    PHP Code:
    /****************************************************************************
     * Prints a <select>-Combobox
     * $sql(String): An SQL-Statement, used to gather the data vor the box
     * $name(String): The name vor the <select>
     * $keyCol(int): The column in the result from $sql, which contains the value for the value-property of the different <option>-tags
     * $valueCol(int): THe column in the result from $sql, which contains the text for the different <option>-tags 
     * $selected(String): A value, that should be preselected
     * $includeNoVal(Boolean): if true, the printed <select> will contain a "Not specified"-option
     * *************************************************************************/   
    function printComboBox$sql$name$keyCol$valueCol$selected$includeNoVal=true )
    {
        
    $db db_connect();
        
        
    $tmp mysql_query$sql$db );
        
        
    var_dump$tmp );     //for testing purposes
        
        
    if( $tmp )
        {
            echo 
    "<select size=\"1\" name=\"" htmlspecialchars($name) . "\">\n"//Start the <select>
            
            
    if( $includeNoVal )             //There shall be a "Not specified"-option
            
    {
                echo 
    "\t<option value=\"NULL\"";
                
                if( !isset( 
    $selected ) )        //If there is no preselection specified
                    
    echo " selected";           //Preselect the "Not specified" option
                    
                 
    echo ">Not specified</option>\n";
            }
            
            while( 
    $tmpRow mysql_fetch_row$tmp ) )
            {
                
    var_dump$tmpRow );         //For testing purposes
            
                
    echo "\t<option value=\"" htmlspecialchars($tmpRow[$keyCol]) . "\"";                  //Print the start of the <option>-tag
                
                
    if( $selected == $tmpRow[$keyCol] )     //Check wether this <option> needs to be preselected
                    
    echo " selected";
                    
                echo 
    ">" htmlspecialchars$tmpRow[$valueCol] ) . "</option>\n";  //Close the option-tag
            
    }
            echo 
    "</select>\n";       //End of the <select>
        
    }else
            throw new 
    DBException"Unable to retrieve data for \'" $name "\'"mysql_errno() );

    Here's how I use it (Note: $edit[1] contains the value to preselect):
    PHP Code:
    <?php printComboBox"SELECT id, name FROM departments""department"01$edit[1] ); ?>
    The Problem is, that PHP behaves really strange when I run this code. Sometimes, it works just fine (~50% of the time). However, sometimes PHP just seems to randomly stop the output. Sometimes it even stops WITHIN one of the test-vardumps (Very special in this case: it even puts out some text that looks like the text "domain." displayed with the wrong encoding):

    HTML Code:
    <select size="1" name="department">
    [...]
    <option value="114">Some test department here
    </option>
    array(2) {
      [0]=>
      string(3) "115"
      [1]=>
      string(13) "Some test department here
    "
    }
    	<option value="115">Another test department
    
    </option>
    array(2) {
      [0]=>
      string(3) "116"
      [1]=>
      string(9) "d�o�m�a�i�n�.�
    I have absolutely no idea what is going wrong there. As I said, WHERE it stops seems completely random. Sometimes it's in the middle of an echo, sometimes it's like above, within a call of var_dump. And sometimes it works just fine.

    All the searching I did, didn't give me a solution, hope you can help me =)

    thx in advance

  2. #2
    Join Date
    Apr 2008
    Posts
    157
    Too many mysql connections maybe?

  3. #3
    Join Date
    Sep 2009
    Posts
    2

    "Solved" it

    Nope but meanwhile I solved it. The Problem was, that the server was running on VirtualBox and I was accessing it via the VirtualBox Host System. VirtualBox seems to have a problem there, since it worked fine accessing the site via the Virtual Machine itself. I installed XAMPP now on the original VirtualBox-Host and ported the app there.

    Everything works fine now. Kinda strange error for VirtualBox though, probably there was a problem of using Win7x64 RC as VirtualBox-Host.

    thx for the reply though

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center



Recent Articles