Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z zapytanie mysql_db_query
Forum PHP.pl > Forum > Przedszkole
lukasz_jaw
Witam
Posiadam klase ktorej celem jest polaczenie z baza oraz wyswietlenie danych podane w zapytaniu zapytania:

Kod
<?php
class QueryIterator implements Iterator
{
    public $result;
    public $connection;
    public $data;
    public $key=0;
    public $valid;
    
    
    function __construct($host, $dbname, $user, $password)
    {
        $this->connection= mysql_connect($host,$user,$password);
        mysql_select_db($dbname);
        
        if($this->connection==false)
        {
            echo "nie polaczyl sie";
        }
    }
    
    public function exceute($query)
    {
        [b]$this->result= mysql_db_query($this->connection,$query);[/b]
        if((mysql_num_rows($this->result))>0)
            $this->next ();
    }
    
    public function rewind() {}
    
public function current() {
    return $this->data;
}

public function key() {
    return $this->key;
}

public function next() {
    if($this->data == mysqli_fetch_assoc($this->result))
    {
        $this->valid=true;
        $this->key+=1;
    }
else {
        $this->valid=false;    
    }
}

public function valid() {
    return $this->valid;
}

}
?>


Nastepnie w pliku index.php znajduje sie:
Kod
<?php
include_once 'db.connect.php';
$qi=new QueryIterator("localhost","booking", "lukasz", "admin123");
$qi->exceute("select email, username from users");
while ($qi->valid())
{
    print_r($qi->current());
    $qi->next();
}
?>


Po wykonaiu uruchomienu pliku wyskauje mi blad:
Kod
Warning: mysql_db_query() expects parameter 1 to be string, resource given in C:\wamp\www\PhpProject1\db.connect.php on line 24

Warning: mysql_num_rows() expects parameter 1 to be resource, null given in C:\wamp\www\PhpProject1\db.connect.php on line 25


Polaczenie dziala natomiast cos jest z zapytaniem, nie wiem czemu....
Dzieki
Beacri
Składnia wygląda tak:
  1. resource mysql_db_query ( string $baza , string $zapytanie [, resource $identyfikator_połączenia ] )

więc niepotrzebnie jako pierwszą zmienną dajesz identyfikator połączenia.

A tak poza tym, to mysql_db_query jest starą, niezalecaną funkcją, lepiej daj zwykłe mysql_query smile.gif
lukasz_jaw
Poprawilem zapytanie
Kod
public function exceute($query)
    {
        $this->result= mysql_query($query,$this->connection);
        if(mysql_num_rows($this->result)>0)
            $this->next ();


I wyswietlala mi sie pusta strona, wiec zapytanie zwracalo jakas wartosc...
Rowniez nie wiem czemu ale musialem zmienic funkcje:
Kod
public function next() {
    if($this->data = mysql_fetch_assoc($this->result))
    {
        $this->valid=true;
        $this->key+=1;
        
    }
else {
        $this->valid=false;
    }
}

Znak '==' musialem zamienic na '=' i kod zaczol dzialac. Zastanawiam sie dlaczego znak '==' nie dziala....
Dzieki
viking
A jaka jest różnica pomiędzy = i == ? smile.gif
Zastanawiam się po co to robisz jeśli masz zarówno mysqli jak i PDO.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.