Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Collegamento tabelle MYSQL

    Salve a tutti,

    Sto riscontrando problemi nel collegare due tabelle mysql.

    la funzione è che dalla tabella 'server' deve prelevarmi le informazioni relative a ID presente nella tabella 'users'.

    Io ho proceduto in questo modo:
    Codice PHP:
        function get_info $user_id )
        {
            global 
    $db;
            
    $row $db->getRow 'SELECT userircd, passircd, reverse, ip, server FROM server LEFT JOIN users.ID = server.ID WHERE user.ID = ' $db->qstr $user_id ) );
            return 
    $row->info;
        } 
    e nel richiamo ho scritto

    Codice PHP:
    <?php echo get_info $_SESSION['user_id'] );?>
    .
    La pagina come output mi da
    codice:
     
    SQL/DB Error -- [You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.ID WHERE user.ID = '1'' at line 1]
    Sapete aiutarmi? Grazie

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Ciao
    codice:
     $row = $db->getRow ( 'SELECT userircd, passircd, reverse, ip, server FROM server LEFT JOIN user ON users.ID = server.ID WHERE user.ID = ' . $db->qstr ( $user_id ) );
    A patto che non ci siano campi con stesso nome si scrive così

  3. #3
    salvo altre cose, la join dovrebbe essere:

    LEFT JOIN user ON users.ID = server.ID



    @edit - II°

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #4
    Ragazzi facciamo prima se vi espongo ciò che io devo fare.

    Una tabella deve contenere tutti i dai dell utente un altra tutti i servizi in possesso dell'utente.

    Quindi mi servirebbe una cosa che se un utente ha tipo 2 server in pagina deve dirmi ciò che hà... non so se mi sono spiegato.

  5. #5
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    $row = $db->getRow ( 'SELECT userircd, passircd, reverse, ip, server FROM server LEFT JOIN user ON server.ID = user.ID WHERE user.ID = ' . $db->qstr ( $user_id ) );

    Cosi' dovrebbe estrarre tutti i dati dalla tebella server dove l'id dell'utente corrisponde a quello nell altra tabella

    Cosa non torna? Hai provato la query?

  6. #6
    Non dovrebbe visualizzarmeli entrambi?
    Codice PHP:
        function get_ip $user_id )
        {
            global 
    $db;
    $row $db->getRow 'SELECT  ip FROM server LEFT JOIN users ON server.ID = users.ID WHERE users.ID = ' $db->qstr $user_id ) );
            return 
    $row->ip;
        } 
    e il richiamo

    Codice PHP:
        <?php echo get_ip $_SESSION['user_id'] )?>
    Codice PHP:
    df 

  7. #7
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Hai dei metodi personalizzati per fare le query.
    Quel get row cosa fa? Probabilmente prende dei dati a db e ritorna un record e non un array.
    Puo essere che nel suo ciclo sovrascriva i dati ritornandone solo uno e quindi l'ultimo della lista?

    Usanso un :
    codice:
    $query = mysql_query($select)
    while($row = mysql_fetch_array($select)){
    
    print_r($row); //qui dovresti vederli tutti 
    }

  8. #8
    come dovrei scriverlo? mi fai un esempio col mio codice

  9. #9
    Questo è tutto quello che ho relativamente alla connessione database.Posso fare qualche modifica da qui?

    Codice PHP:
    <?

        
    // ==================================================================
    ==================================================================
        
    //    ezSQL Constants
        
    define("EZSQL_VERSION","1.01");
        
    define("OBJECT","OBJECT",true);
        
    define("ARRAY_A","ARRAY_A",true);
        
    define("ARRAY_N","ARRAY_N",true);

        
    // ==================================================================
        //    The Main Class
        
        
    class db {
        
            
    // ==================================================================
            //    DB Constructor - connects to the server and selects a database
            
            
    function db($dbuser$dbpassword$dbname$dbhost)
            {
        
                
    $this->dbh = @mysql_connect($dbhost,$dbuser,$dbpassword);
                
                if ( ! 
    $this->dbh )
                {
                    
    $this->print_error("[list=1][b]Error establishing a database connection![/b][*]Are you sure you have the correct user/password?[*]Are you sure that you have typed the correct hostname?[*]Are you sure that the database server is running?[/list]");
                }
                
                    
                
    $this->select($dbname);
            
            }
            
            
    // ==================================================================
            //    Select a DB (if another one needs to be selected)
            
            
    function select($db)
            {
                if ( !@
    mysql_select_db($db,$this->dbh))
                {
                    
    $this->print_error("[list=1][b]Error selecting database <u>$db</u>![/b][*]Are you sure it exists?[*]Are you sure there is a valid database connection?[/list]");
                }
            }
        
            
    // ==================================================================
            //    Print SQL/DB error.
        
            
    function print_error($str "")
            {
                
                if ( !
    $str $str mysql_error();
                
                
    // If there is an error then take note of it
                
    print "<blockquote><font face=arial size=2 color=ff0000>";
                print 
    "[b]SQL/DB Error --[/b] ";
                print 
    "[<font color=000077>$str</font>]";
                print 
    "</font></blockquote>";    
            }
        
            
    // ==================================================================
            //    Basic Query    - see docs for more detail
            
            
    function query($query$output OBJECT
            {
                
                
    // Log how the function was called
                
    $this->func_call "\$db->query(\"$query\", $output)";        
                
                
    // Kill this
                
    $this->last_result null;
                
    $this->col_info null;
        
                
    // Keep track of the last query for debug..
                
    $this->last_query $query;
                
                
    // Perform the query via std mysql_query function..
                
    $this->result mysql_query($query,$this->dbh);
        
                if ( 
    mysql_error() ) 
                {                
                    
    // If there is an error then take note of it..
                    
    $this->print_error();
                    return 
    FALSE;    
                }
                else {
        
                    
    // In other words if this was a select statement..
                    
    if ( $this->result )
                    {
        
                        
    // =======================================================
                        // Take note of column info
                        
                        
    $i=0;
                        while (
    $i < @mysql_num_fields($this->result))
                        {
                            
    $this->col_info[$i] = @mysql_fetch_field($this->result);
                            
    $i++;
                        }
        
                        
    // =======================================================                
                        // Store Query Results
                        
                        
    $i=0;
                        while ( 
    $row = @mysql_fetch_object($this->result) )
                        { 
        
                            
    // Store relults as an objects within main array
                            
    $this->last_result[$i] = $row;
                            
                            
    $i++;
                        }
                        
                        @
    mysql_free_result($this->result);
                    }
                    
                    return 
    TRUE;
        
                }
            }
            
            
    // ==================================================================
            //
            
            
    function RecordCount $query )
            {
                return 
    mysql_num_rows mysql_query $query ) );
            }
            
            
    // ==================================================================
            //
            
            
    function Mresult $query$a$b )
            {
                return 
    mysql_result mysql_query $query ), $a$b );
            }
            
            
    /**
             * Correctly quotes a string so that all strings are escape coded.
             * 
             * @param string            the string to quote
             * @param [magic_quotes]    if $s is GET/POST var, set to get_magic_quotes_gpc().
             */

            
    function qstr $string$magic_quotes false )
            {
                if (!
    $magic_quotes) {
                    if (
    strnatcmp(PHP_VERSION'4.3.0') >= 0) {
                        return 
    "'" mysql_real_escape_string($string) . "'";
                    }
                    
    $string str_replace("'""\\'" str_replace('\\''\\\\'str_replace("\0""\\\0"$string)));
                    return  
    "'" $string "'"
                }
                return 
    "'" str_replace('\\"''"'$string) . "'";
            }
        
            
    // ==================================================================
            //    Get one variable from the DB - see docs for more detail
            
            
    function get_var($query=null,$x=0,$y=0)
            {
                
                
    // Log how the function was called
                
    $this->func_call "\$db->get_var(\"$query\",$x,$y)";
                
                
    // If there is a query then perform it if not then use cached results..
                
    if ( $query )
                {
                    
    $this->query($query);
                }
                
                
    // Extract var out of cached results based x,y vals
                
    if ( $this->last_result[$y] )
                {
                    
    $values array_values(get_object_vars($this->last_result[$y]));
                }
                
                
    // If there is a value return it else return null
                
    return $values[$x]?$values[$x]:null;
            }
        
            
    // ==================================================================
            //    Get one row from the DB - see docs for more detail
            
            
    function getRow($query=null,$y=0,$output=OBJECT)
            {
                
                
    // Log how the function was called
                
    $this->func_call "\$db->getRow(\"$query\",$y,$output)";
                
                
    // If there is a query then perform it if not then use cached results..
                
    if ( $query )
                {
                    
    $this->query($query);
                }
        
                
    // If the output is an object then return object using the row offset..
                
    if ( $output == OBJECT )
                {
                    return 
    $this->last_result[$y]?$this->last_result[$y]:null;
                }
                
    // If the output is an associative array then return row as such..
                
    elseif ( $output == ARRAY_A )
                {
                    return 
    $this->last_result[$y]?get_object_vars($this->last_result[$y]):null;    
                }
                
    // If the output is an numerical array then return row as such..
                
    elseif ( $output == ARRAY_N )
                {
                    return 
    $this->last_result[$y]?array_values(get_object_vars($this->last_result[$y])):null;
                }
                
    // If invalid output type was specified..
                
    else
                {
                    
    $this->print_error(" \$db->getRow(string query,int offset,output type) -- Output type must be one of: OBJECT, ARRAY_A, ARRAY_N ");    
                }
        
            }
        
            
    // ==================================================================
            //    Function to get 1 column from the cached result set based in X index
            // se docs for usage and info
        
            
    function get_col($query=null,$x=0)
            {
                
                
    // If there is a query then perform it if not then use cached results..
                
    if ( $query )
                {
                    
    $this->query($query);
                }
                
                
    // Extract the column values
                
    for ( $i=0$i count($this->last_result); $i++ )
                {
                    
    $new_array[$i] = $this->get_var(null,$x,$i);
                }
                
                return 
    $new_array;
            }
        
            
    // ==================================================================
            // Return the the query as a result set - see docs for more details
            
            
    function get_results($query=null$output OBJECT)
            {
                
                
    // Log how the function was called
                
    $this->func_call "\$db->get_results(\"$query\", $output)";
                
                
    // If there is a query then perform it if not then use cached results..
                
    if ( $query )
                {
                    
    $this->query($query);
                }        
        
                
    // Send back array of objects. Each row is an object        
                
    if ( $output == OBJECT )
                {
                    return 
    $this->last_result
                }
                elseif ( 
    $output == ARRAY_A || $output == ARRAY_N )
                {
                    if ( 
    $this->last_result )
                    {
                        
    $i=0;
                        foreach( 
    $this->last_result as $row )
                        {
                            
                            
    $new_array[$i] = get_object_vars($row);
                            
                            if ( 
    $output == ARRAY_N )
                            {
                                
    $new_array[$i] = array_values($new_array[$i]);
                            }
        
                            
    $i++;
                        }
                    
                        return 
    $new_array;
                    }
                    else
                    {
                        return 
    null;    
                    }
                }
            }
        
        
            
    // ==================================================================
            // Function to get column meta data info pertaining to the last query
            // see docs for more info and usage
            
            
    function get_col_info($info_type="name",$col_offset=-1)
            {
        
                if ( 
    $this->col_info )
                {
                    if ( 
    $col_offset == -)
                    {
                        
    $i=0;
                        foreach(
    $this->col_info as $col )
                        {
                            
    $new_array[$i] = $col->{$info_type};
                            
    $i++;
                        }
                        return 
    $new_array;
                    }
                    else
                    {
                        return 
    $this->col_info[$col_offset]->{$info_type};
                    }
                
                }
                
            }
        
        
            
    // ==================================================================
            // Dumps the contents of any input variable to screen in a nicely
            // formatted and easy to understand way - any type: Object, Var or Array
        
            
    function vardump($mixed)
            {

                echo 
    "<blockquote><font color=000090>";
                echo 
    "<pre><font face=arial>";
                
                if ( ! 
    $this->vardump_called )
                {
                    echo 
    "<font color=800080>[b]ezSQL[/b] (v".EZSQL_VERSION.") [b]Variable Dump..[/b]</font>\n\n";
                }
        
                
    print_r($mixed);    
                echo 
    "\n\n[b]Last Query:[/b] ".($this->last_query?$this->last_query:"NULL")."\n";
                echo 
    "[b]Last Function Call:[/b] " . ($this->func_call?$this->func_call:"None")."\n";
                echo 
    "[b]Last Rows Returned:[/b] ".count($this->last_result)."\n";
                echo 
    "</font></pre></font></blockquote>";
                echo 
    "\n<hr size=1 noshade color=dddddd>";
                
                
    $this->vardump_called true;

            }
        
            
    // Alias for the above function    
            
    function dumpvars($mixed)
            {
                
    $this->vardump($mixed);    
            }
        
            
    // ==================================================================
            // Displays the last query string that was sent to the database & a 
            // table listing results (if there were any). 
            // (abstracted into a seperate file to save server overhead).
            
            
    function debug()
            {
                
                echo 
    "<blockquote>";
        
                
    // Only show ezSQL credits once..
                
    if ( ! $this->debug_called )
                {
                    echo 
    "<font color=800080 face=arial size=2>[b]ezSQL[/b] (v".EZSQL_VERSION.") [b]Debug..[/b]</font>

    \n"
    ;
                }
                echo 
    "<font face=arial size=2 color=000099>[b]Query --[/b] ";
                echo 
    "[<font color=000000>[b]$this->last_query[/b]</font>]</font>

    "
    ;
        
                    echo 
    "<font face=arial size=2 color=000099>[b]Query Result..[/b]</font>";
                    echo 
    "<blockquote>";
                    
                if ( 
    $this->col_info )
                {
                    
                    
    // =====================================================
                    // Results top rows
                    
                    
    echo "<table cellpadding=5 cellspacing=1 bgcolor=555555>";
                    echo 
    "<tr bgcolor=eeeeee><td nowrap valign=bottom><font color=555599 face=arial size=2>[b](row)[/b]</font></td>";
        
        
                    for ( 
    $i=0$i count($this->col_info); $i++ )
                    {
                        echo 
    "<td nowrap align=left valign=top><font size=1 color=555599 face=arial>{$this->col_info[$i]->type} {$this->col_info[$i]->max_length}
    <font size=2>[b]
    {$this->col_info[$i]->name}[/b]</font></td>";
                    }
        
                    echo 
    "</tr>";
        
                    
    // ======================================================
                    // print main results
        
                
    if ( $this->last_result )
                {
        
                    
    $i=0;
                    foreach ( 
    $this->get_results(null,ARRAY_N) as $one_row )
                    {
                        
    $i++;
                        echo 
    "<tr bgcolor=ffffff><td bgcolor=eeeeee nowrap align=middle><font size=2 color=555599 face=arial>$i</font></td>";
        
                        foreach ( 
    $one_row as $item )
                        {
                            echo 
    "<td nowrap><font face=arial size=2>$item</font></td>";    
                        }
        
                        echo 
    "</tr>";                
                    }
        
                } 
    // if last result
                
    else
                {
                    echo 
    "<tr bgcolor=ffffff><td colspan=".(count($this->col_info)+1)."><font face=arial size=2>No Results</font></td></tr>";            
                }
        
                echo 
    "</table>";        
        
                } 
    // if col_info
                
    else
                {
                    echo 
    "<font face=arial size=2>No Results</font>";            
                }
                
                echo 
    "</blockquote></blockquote><hr noshade color=dddddd size=1>";
                
                
                
    $this->debug_called true;
            }
        
        
        }

    ?>

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.