logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[PHP + MySQL] Drugie zapytanie nie działa w klasie dbConnection

lord_dagoth 28 Sie 2007 11:42 863 1
REKLAMA
  • #1 4223853
    lord_dagoth
    Poziom 25  
    Posty: 860
    Pomógł: 68
    Ocena: 6
    Witam. Mam pewien problem, z którym nie moge sobie sam poradzić. Napisałem prostą klase obsługującą połączenia z bazą danych. Możliwe że gdzieś na tym poziomie już popełniłem błąd.

    Otóż mój problem jest następujący. Na stronie zrobionej przezemnie tak jakby w ogóle nie wykonywało się drugie zapytanie. Pierwsze się wykonuje, wszystko jest ok, ale jeżeli chodzi już o drugie, to tak jakby go w ogóle nie było. Nie pojawia się żaden błąd, a dane w bazie napewno są. Poniżej zamieszczam kod klasy obsługującej połączenia z bazą:

    <?php
    class dbConnection{
    /*---------------------------------------------------*/
      private $ServerName='jakisSerwer';
      private $UserName='jakisUzytkownik';
      private $Password='jakiesHaslo';
      private $DbName='jakasNazwa';
    /*---------------------------------------------------*/
      private $SqlConnection;
      public  $QueryID=array();
    /*---------------------------------------------------*/
      function __construct()
      {
        $this->SqlConnection=mysql_connect($this->ServerName, $this->UserName,
        $this->Password);
        mysql_select_db($this->DbName);
      }
      function __destruct()
      {
        mysql_close($this->SqlConnection);
      }
      function query($query,$IDQuery)
      {
        $this->QueryID[$IDQuery]=mysql_query($query);
      }
    /*---------------------------------------------------*/
    }


    Do tego kod strony php, gdzie nie wykonuje mi się ów nieszczęsne drugie zapytanie:

    <?php require('inc/header.inc') ?>
    
    <?php
    $MySQLCon= new dbConnection;
    $MySQLCon->query("SELECT `DataN`,`Autor`,`Tytul`,`Tresc` FROM `newsy` ORDER BY
                     `DataN` DESC",0);
    while ($wiersz = mysql_fetch_row($MySQLCon->QueryID[0]))
    {
    $MySQLCon->query("SELECT `DataN`,`DataK` FROM `komentarze` WHERE
                      `DataN`='$wiersz[0]'",1);
    $ile_komentarzy=mysql_num_rows($MySQLCon->QueryID[1]);
    echo '
    <div class="news">
     <div class="news-header"><a class="news-header" href="sys/add_comment.php?data='.$wiersz[0].'">// '.$wiersz[2].' (komentarzy: '.$ile_komentarzy.')</a></div>
     <div class="news-content"><div class="p">Autor: '.$wiersz[1].'</div><div class="p2">Data dodania: '.$wiersz[0].'</div>
        <br />'.$wiersz[3].'
     </div>
    </div>';
    }
    ?>
    
    <?php require('inc/footer.inc') ?>
  • REKLAMA
  • #2 4223886
    BoskiDialer
    Poziom 34  
    Posty: 1530
    Pomógł: 353
    Ocena: 42
    1/ w klasie przekazuj do mysql_query() id połączenia
    2/ wartość wiersza z pierwszego zapytania wstawiaj przez konkatencję ciągów znaków a nie przez wstawianie do ciągu w cudzysłowach.. osobiście dawno zaprzestałem wogóle stosowania cudzysłowów do umieszczania ciągów znaków (są mniej wydajne z powodu na parsowanie ciągu) na rzecz apostrofów... sprawdź jak już, czy $wiersz[0] zostaje podstawiony - zapisz zapytanie do zmiennej i wyświetl ją..
REKLAMA