Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dziwny wynik MySQL
Forum PHP.pl > Forum > Bazy danych > MySQL
Prezi2907
Witam

Na wstępie wiem że mysql_fetch_array jest funkcją wymierającą ale poprawiamy stary system w którym były one wykorzystywane a nie można od tak sobie wszystkiego przełączyć.
Po drugie jeżeli problem jest jakiś globalny to masa skryptów wymagać będzie poprawki w trybie meganatychmiastowym...

Problem jest w tym że po wyciągnięciu jednego wiersza tą funkcją zwraca on nam następujący wynik:

  1. (
  2. [0] => 0
  3. [id] => 5720617
  4. [1] => DDD
  5. [NrJakisTam] => DDD
  6. [2] => 01-07-2013
  7. [DataJakasTam] => 01-07-2013
  8. [3] => 3.20
  9. [oplata] => 3.20
  10. [4] => 256.00
  11. [oplata1] => 256.00
  12. [5] => 259.20
  13. ...
  14. }


Dziwne jest to że 0 i id nie ma tych samych wartości... Zapytanie jest proste i w żaden sposób nie przekombinowane.
Jakieś pomysły?
Damonsson
Nie robisz jakiegoś JOINa i nie masz dwóch kolumn id, lub coś w tym stylu?
Prezi2907
Cytat(Damonsson @ 11.09.2013, 09:22:48 ) *
Nie robisz jakiegoś JOINa i nie masz dwóch kolumn id, lub coś w tym stylu?


Jak pisałem, pytanie jest stosunkowo proste...
Przecież MySQL wywaliłby błąd w przypadku 2 tych samych kolumn. Po drugie nawet jeżeli takie coś by miało miejsce to tablica asocjacyjna by pokazała jakiś dziwny wynik a nie numeryczna która generowana jest w zależności od ilości pól smile.gif A ten identyfikator nie pojawia się nigdzie indziej tylko na pierwszej pozycji bo dalej w raportach jest wykorzystywany smile.gif

Ps. Poprawna jest wartość w tablicy asocjacyjnej. Moje pytanie dotyczy wartości numerycznej tablicy ponieważ w starych kodach wszędzie jest ona wykorzystywana i jak się okaże że to jakiś błąd bazy danych (funkcji mysql_fetch_array) to jakieś 70-80% kodów (ponad 300 plików) będzie do poprawki smile.gif
Lysiur
A w dokumentacji Pan patrzył wink.gif

mysql_fetch_array

Kod
array mysql_fetch_array ( resource $result [, int $result_type = MYSQL_BOTH ] )


Funkcja przyjmuje dwa parametry, i Twoja tablica jest wynikiem funkcji z domyslnym parametrem MYSQL_BOTH (który zwraca wynik w postaci tablicy numerycznej i asocjacyjnej).

Uzyj MYSQL_ASSOC lub MYSQL_NUM <- w zależności co potrzebujesz akurat.
Prezi2907
Cytat(Lysiur @ 11.09.2013, 13:24:54 ) *
A w dokumentacji Pan patrzył wink.gif

mysql_fetch_array

Kod
array mysql_fetch_array ( resource $result [, int $result_type = MYSQL_BOTH ] )


Funkcja przyjmuje dwa parametry, i Twoja tablica jest wynikiem funkcji z domyslnym parametrem MYSQL_BOTH (który zwraca wynik w postaci tablicy numerycznej i asocjacyjnej).

Uzyj MYSQL_ASSOC lub MYSQL_NUM <- w zależności co potrzebujesz akurat.


A posta czytałeś? Ja się człowieku nie pytam o tablice numeryczne i asocjacyjne tylko o wynik pierwszej tablicy numerycznej względem tablicy asocjacyjnej.

Prościej żebyś zrozumiał:
Indeks tablicy numerycznej (0) wskazuje na wartość 0 a powinno mieć wartość jak w przypadku tablicy asocjacyjnej o indeksie "id". Czy teraz Pan rozumie zagadnienie i problem jaki się pojawił ?

Ps. Nie użyje żadnego z powyższych bo to przestarzałe funkcje... I tak ogólnie to zapraszam do tego samego manuala aby poczytać o wyciąganych właśnie danych metodą fetch_array();
Damonsson
A nie masz gdzieś dalej w kodzie nadpisania dla klucza 0? Sama w sobie funkcja nie może zwrócić 2 różnych wartości, nie ma takiego przypadku nigdzie opisanego.
sowiq
@Prezi2907, może łatwiej będzie jak wkleisz tutaj dwie rzeczy:
1. Zapytanie SQL
2. Ścieżkę, jaką przechodzą dane od chwili pobrania z bazy do sprawdzenia co jest w tablicy.

[edit]
Zauważyłem też, że uciąłeś kawałek tablicy wynikowej. A nie zawsze jest tak, że ilość kluczy numerycznych = ilość kluczy asocjacyjnych:
Cytat
If two or more columns of the result have the same field names, the last column will take precedence. To access the other column(s) of the same name, you must use the numeric index of the column or make an alias for the column.
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.