Visualizzazione risultati 1 fino 9 di 9

Discussione: [PHP] Problemi con Classi

  1. #1
    Guest

    Predefinito [PHP] Problemi con Classi

    Ciao!
    Oggi ho deciso di approfondire le classi, ma sto avendo problemi, di sicuro sbaglio qualcosa...
    Ho questo codice:
    Codice PHP:
    <?php
    error_reporting
    (E_ALL);

    class
    mysql {
    var
    $host;
    var
    $user;
    var
    $password;
    var
    $dbname;
    function
    connect() {
    $db = mysql_connect($this->host,$this->user,$this->password);
    $con = mysql_select_db($this->dbname,$db) || die(mysql_error());
    }
    function
    query($myquery) {
    mysql_query($myquery) || die(mysql_error());
    }
    function
    close() {
    mysql_close($this->host,$this->user,$this->password);
    }
    }

    $mysql = new mysql();
    $mysql->host = "localhost";
    $mysql->user = "nokiagames";
    $mysql->password = "******";
    $mysql->dbname = "my_nokiagames";
    $mysql->connect();
    $query = $mysql->query("SELECT id FROM my_table");
    echo
    mysql_num_rows($query);
    $mysql->close();
    ?>
    Per provare qualcosa ho deciso di contare le righe della tabella, ma niente:

    Citazione Originalmente inviato da error_reporting

    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /membri/nokiagames/... on line 28

    Warning: Wrong parameter count for mysql_close() in /membri/nokiagames/... on line 17
    So benissimo che per poter fare qualcosa del genere posso evitare le classi, ma vorrei imparare ad usarle al meglio...

    Sapete dirmi dov'è l'errore???

  2. #2
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,269

    Predefinito

    Il metodo query(), come tutti gli altri, non ritorna nessun risultato. Ti sei svanito tutti i return, oppure prima delle classi devi ancora studiare le funzioni?

  3. #3
    Guest

    Predefinito

    A dire la verità all'inizio gli avevo messi i return, ma non funzionava lo stesso (allora ho pensato di toglierli), ora ho riprovato ad inserirli, ma sempre quei 2 avvertimenti e nessun risultato.
    Questo è il codice:
    Codice PHP:
    <?php
    error_reporting
    (E_ALL);

    class
    mysql {
    var
    $host;
    var
    $user;
    var
    $password;
    var
    $dbname;
    function
    connect() {
    $db = mysql_connect($this->host,$this->user,$this->password);
    $con = mysql_select_db($this->dbname,$db) || die(mysql_error());
    return
    $con;
    }
    function
    query($myquery) {
    return
    mysql_query($myquery) || die(mysql_error());
    }
    function
    close() {
    return
    mysql_close($this->host,$this->user,$this->password);
    }
    }

    $mysql = new mysql();
    $mysql->host = "localhost";
    $mysql->user = "nokiagames";
    $mysql->password = "*****";
    $mysql->dbname = "my_nokiagames";
    $mysql->connect();
    $query = $mysql->query("SELECT id FROM my_table");
    echo
    mysql_num_rows($query);
    $mysql->close();
    ?>
    Edit:
    Ho aggiunto anche return $db; e funziona!
    L'unico problema adesso è questo:
    Citazione Originalmente inviato da error_reporting
    Warning: Wrong parameter count for mysql_close() in /membri/nokiagames/... on line 17
    EDIT2:

    Povero me!
    Per la fretta ho fatto un sacco di errori....
    return mysql_close(mysql_connect(blabla));

    RISOLTO
    Ultima modifica di nokiagames : 09-04-2009 alle ore 18.55.42

  4. #4
    Guest

    Predefinito

    Io la scriverei così
    Codice PHP:
    class mysql {
    var
    $host;
    var
    $user;
    var
    $password;
    var
    $dbname;
    var
    $db;
    function
    connect() {
    $con = mysql_connect($this->host,$this->user,$this->password);
    $this->db = mysql_select_db($this->dbname,$con) || die(mysql_error());
    return
    $this->db;
    }
    function
    query($myquery) {
    return
    mysql_query($myquery,$this->db) || die(mysql_error());
    }

    function
    close() {
    return
    mysql_close($this->db);
    }
    }

  5. #5
    Guest

    Predefinito

    @stoner.
    Misà che hai sbagliato qualcosa perchè:
    Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /membri/nokiagames/... on line 16
    Provo a vedere cosa non va!
    Comunque ho capito cosa vuoi fare

  6. #6
    Guest

    Predefinito

    Si scusa, ho sbagliato
    Codice PHP:
    class mysql {
    var
    $host;
    var
    $user;
    var
    $password;
    var
    $dbname;
    var
    $db;
    function
    connect() {
    $this->db = mysql_connect($this->host,$this->user,$this->password);
    mysql_select_db($this->dbname,$this->db) || die(mysql_error());
    return
    $this->db;
    }
    function
    query($myquery) {
    return
    mysql_query($myquery,$this->db) || die(mysql_error());
    }

    function
    close() {
    return
    mysql_close($this->db);
    }
    }

  7. #7
    Guest

    Predefinito

    Avevo fatto pure io così.
    Ma sempre lo stesso errore...
    Vabbè lasciamo perdere. Utilizzo il primo...

  8. #8
    Guest

    Predefinito

    Io la scriverei così:
    Codice PHP:
    <?php
    class mysql {
    private
    $host;
    private
    $user;
    private
    $password;
    private
    $dbname;
    private
    $db;
    function
    __construct($h,$u,$p,$dbn) {
    $this->host = $h;
    $this->user = $u;
    $this->password = $p;
    $this->dbname = $dbn;
    $this->db = mysql_connect($this->host,$this->user,$this->password);
    mysql_select_db($this->dbname,$this->db) || die(mysql_error());
    return
    $this->db;
    }
    function
    query($myquery) {
    return
    mysql_query($myquery,$this->db) || die(mysql_error());
    }

    function
    close() {
    return
    mysql_close($this->db);
    }
    }
    ?>
    E la richiami poi con:
    Codice PHP:
    <?php
    $db
    = new mysql("localhost","nokiagames","","my_nokiagames");
    //altro codce
    $db->close();
    ?>
    Ultima modifica di gabryhacker : 11-04-2009 alle ore 10.14.21

  9. #9
    Guest

    Predefinito

    Sarà un problema del server dove risiedo?
    Perchè non funziona ...

    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource
    E non stampa nulla...

    EDIT:
    C'era un errore nella funzione query(), ho corretto facendo:
    Codice PHP:
    function query($myquery) {
    $myquery = mysql_query($myquery);
    return
    $myquery;
    }
    Non so perchè così funziona mentre se faccio il return direttamente a mysql_query() non funziona..

    EDIT 2:

    Ho capito dove sta il problema! (|| die(mysql_error()))!
    Ultima modifica di nokiagames : 11-04-2009 alle ore 12.06.55

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •