Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> ADOdb i id w zapytaniach mysql
Bora
post 15.07.2004, 09:33:43
Post #1





Grupa: Zarejestrowani
Postów: 270
Pomógł: 0
Dołączył: 15.06.2003

Ostrzeżenie: (0%)
-----


Nie wiem do końca czy to dobra kategoria.
Mój problem polega na tym że korzystająć z ADOdb zawsze opuszcza mi pole id.

  1. <?php
  2.  
  3. $sql = &#092;"SELECT m.id, g.group, m.name FROM \".TABLE_PREFIX.\"users m, \".TABLE_PREFIX.\"group g WHERE m.mgroup = g.group_id LIMIT 0, 5\";
  4. $members = $this -> _db -> GetAssoc($sql); 
  5.  
  6. ?>

W nie ADOdb zwraca wszystkie 3 pola id, group i name natomiast ADOdb tylko group i name.
Czy jest to może związane z jakimś zabezpieczeniem w ADOdb?
W manualu nic nie znalazłem podobnie na forum

XP , Apache 2 , php 5.0.0RC3, Adodb V4.22

Ten post edytował Bora 15.07.2004, 09:38:44
Go to the top of the page
+Quote Post
seaquest
post 27.07.2004, 09:12:39
Post #2





Grupa: Przyjaciele php.pl
Postów: 790
Pomógł: 7
Dołączył: 6.02.2003
Skąd: Polska

Ostrzeżenie: (0%)
-----


w ADoDB (z tego co wiem) nie ma metody GetAssoc zapytania sql wykonuje sie za pomoca Execute...


--------------------
Michał Płachta
Warsztat: Mac OS X Leopard, PostgreSQL, Text Mate, Retrospectiva + SVN
Go to the top of the page
+Quote Post
Bora
post 13.08.2004, 01:03:06
Post #3





Grupa: Zarejestrowani
Postów: 270
Pomógł: 0
Dołączył: 15.06.2003

Ostrzeżenie: (0%)
-----


http://phplens.com/adodb/reference.functions.getassoc.html
z Execute dzieje sie to samo

http://forum.php.pl/index.php?showtopic=18025&hl=getassoc#

Ten post edytował Bora 13.08.2004, 01:04:45
Go to the top of the page
+Quote Post
DeyV
post 13.08.2004, 08:39:48
Post #4





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




1. jest pytanie getAssoc . Zwraca ono tablicę o postaci
  1. <?php
  2. $array[ $id ] = array( pozostałe pola );
  3. ?>


2. aby pobrać dane normlanie, należy skorzystać z $db->getAll( $pyt );


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post
itsme
post 13.08.2004, 15:46:15
Post #5





Grupa: Zarząd
Postów: 1 512
Pomógł: 2
Dołączył: 22.04.2002
Skąd: Koszalin




zas w przypadku LIMIT 0,1 dajemy getOne


--------------------
brak sygnaturki rowniez jest sygnaturką
Go to the top of the page
+Quote Post
bigZbig
post 24.08.2004, 10:06:40
Post #6





Grupa: Zarejestrowani
Postów: 740
Pomógł: 15
Dołączył: 23.08.2004
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Jeśli zalezy Ci na niezależności od zastosowanej BD, to używając w zapytaniu polecenia LIMIT warto abyś rozważył funkcję SelectLimit(). Co prawda nie zwraca ona wyniku w postaci tablicy, ale łatwo to osiągnąć.

Kod
$ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
$result = $db->SelectLimit("SELECT * FROM $table[CODE]",$nrows=2,$offset=1);
if ($result === false) die("failed");
$a=0;
while (!$result->EOF) {
           $Aresult[$a] = $result->fields;
    $result->MoveNext();
    $a++;
}
print '<pre>';
print_r($Aresult);
print '</pre>';


Podany kod zwróci wynik
Kod
Array
(
    [0] => Array
        (
            [id_code] => 2
            [code] => 754ma2wida
        )

    [1] => Array
        (
            [id_code] => 3
            [code] => 4rum2rka
        )

)


--------------------
bigZbig (Zbigniew Heintze) | blog.heintze.pl
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 12.11.2019 - 11:23