Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zapytanie i mssql_fetch_array
NeRoK
post
Post #1





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 29.04.2006

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


Witam,

Otóż napisałem taki skrypt:

  1. <?php
  2. $query = ("SELECT TOP 100 Name, cLevel, Class, Reset, (SELECT G_Name FROM GuildMember WHERE GuildMember.Name = Character.Name), (SELECT G_Level FROM GuildMember WHERE GuildMember.Name = Character.Name), (SELECT ConnectStat FROM MEMB_STAT WHERE memb___id = Character.AccountId), (SELECT seconds FROM online_time WHERE Character.Name = online_time.Name) FROM Character WHERE isAdmin != 1 AND CtlCode != 1 ORDER BY Reset DESC, cL
    evel DESC"
    );
  3. $result = mssql_query($query);
  4. // (...)  
  5.  
  6.  while ($row = mssql_fetch_array($result))
  7.  {
  8. fwrite($uchwyt, $row['Name'].'|');
  9. fwrite($uchwyt, $row['cLevel'].'|');
  10. fwrite($uchwyt, $row['Class'].'|');
  11. fwrite($uchwyt, $row['Reset'].'|');
  12. fwrite($uchwyt, $row['G_Name'].'|');
  13. fwrite($uchwyt, $row['G_Level'].'|');
  14. fwrite($uchwyt, $row['ConnectStat'].'|');
  15. fwrite($uchwyt, $row['Onl_time'].'|'."n");
  16.  }
  17.  
  18.  fclose($uchwyt);
  19. ?>


Skrypt powinien utworzyć plik o następujących wartościach (wartości wklepane ;-)):
TestUSR|12|2|1|Guild|132|1|2000

Niestety, tworzy tylko:
TestUSR|353|17|0|||||


Na pewno w polach: "G_Name" i innych są jakieś dane.
Dalczego nie mogę zapisać innych pól?

Pozdrawiam,
nerok
Go to the top of the page
+Quote Post
cadavre
post
Post #2





Grupa: Zarejestrowani
Postów: 472
Pomógł: 7
Dołączył: 7.12.2005
Skąd: Gliwice

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


Wpisz sobie choćby print_r" title="Zobacz w manualu php" target="_manual i do niego $row - zobaczysz co dostajesz w zmiennej row.
Go to the top of the page
+Quote Post
Andrew_wojownik
post
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 26.12.2006

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


Zamiast
  1. <?php
  2. fwrite($uchwyt, $row['Name'].'|');
  3. fwrite($uchwyt, $row['cLevel'].'|');
  4. fwrite($uchwyt, $row['Class'].'|');
  5. fwrite($uchwyt, $row['Reset'].'|');
  6. fwrite($uchwyt, $row['G_Name'].'|');
  7. fwrite($uchwyt, $row['G_Level'].'|');
  8. fwrite($uchwyt, $row['ConnectStat'].'|');
  9. fwrite($uchwyt, $row['Onl_time'].'|'."n");
  10. ?>

wpisz
  1. <?php
  2. fwrite($uchwyt, $row[0]."|");
  3.  fwrite($uchwyt, $row[1]."|");
  4.  fwrite($uchwyt, $row[2]."|");
  5.  fwrite($uchwyt, $row[3]."|");
  6.  fwrite($uchwyt, $row[4]."|");
  7.  fwrite($uchwyt, $row[5]."|");
  8.  fwrite($uchwyt, $row[6]."|");
  9.  fwrite($uchwyt, $row[7]."|"."n");
  10. ?>


I powinno zadziałać.
Go to the top of the page
+Quote Post
cadavre
post
Post #4





Grupa: Zarejestrowani
Postów: 472
Pomógł: 7
Dołączył: 7.12.2005
Skąd: Gliwice

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


Teraz patrzę na Twoje query... MSSQL obsługuje zapytania w zapytaniach?
Go to the top of the page
+Quote Post
NeRoK
post
Post #5





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 29.04.2006

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


Tak, obsługuje.
@Andrew_wojownik: Działa, dzięki :-)
Go to the top of the page
+Quote Post
cadavre
post
Post #6





Grupa: Zarejestrowani
Postów: 472
Pomógł: 7
Dołączył: 7.12.2005
Skąd: Gliwice

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


Jeśli chcesz używać nazw pół z 'podquery' to przypuszczam, że powinieneś to robić tak:
  1. SELECT TOP 100 Name, cLevel, Class, Reset, (SELECT G_Name FROM GuildMember WHERE GuildMember.Name = Character.Name) AS G_Name, (SELECT G_Level FROM GuildMember WHERE GuildMember.Name = Character.Name) AS G_Level (...)

Czyli dzięki zastosowaniu słowa kluczowego as.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 05:18