Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]Usunięcie Resource id#
Forum PHP.pl > Forum > Przedszkole
Deusx
Witam, mamy kod:

  1. $rekm = doquery("SELECT MAX(`metal_mine`) FROM game_planets","");
  2.  
  3. doquery("UPDATE `metal` = ".$rekm." SET game_rekord","");
  4.  


Jednak zmienna $rekm zwraca: "Resource id #74" zamiast "74"


mysql_fetch_array
mysql_fetch_row
nie pomagają, jak to usunąć ?
Kshyhoo
1. Używaj odpowiednich tagów do wklejania kodu.
2. Funkcje zwracają tablicę, więc musisz ją tak traktować.
Deusx
Cytat(Kshyhoo @ 21.02.2010, 20:10:49 ) *
1. Używaj odpowiednich tagów do wklejania kodu.
2. Funkcje zwracają tablicę, więc musisz ją tak traktować.



Ją ? Tzn co, mam dodać [0] do zmiennej, żeby była tablicą ?
Kshyhoo
Zapewne...
Deusx
Mało pewne, bo wynikiem jest zamiast resource... "array"

zrobiłem też tak:

  1. $rekm = doquery("SELECT MAX(`metal_mine`) FROM game_planets","");
  2. $res = array(1 => $rekm);
  3. doquery("UPDATE `metal` = ".mysql_fetch_array($res[1])." SET game_rekord","");


Również nie działa
Kshyhoo
Zamiast doquery() daj mysql_query() i pokaż jaki błąd generuje.
Deusx
Cytat
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
UPDATE `metal` = Array SET game_rekord
Kshyhoo
No to już wiesz, że masz błąd składni? Napisz może, co chcesz wyciągnąć z bazy... no i jakaś struktura.
Deusx
Błąd składni, bo jest Array zamiast liczby, może w skrócie:

  1. $rekm = doquery("SELECT MAX(`metal_mine`) FROM game_planets",""); // Wyciąga największa wartość z bazy (game_planets), w tym przypadku kopalnia metalu(metal_mine)
  2.  
  3. doquery("UPDATE `metal` = ".$rekm." SET game_rekord",""); //Zapisuje do game_rekord najwyższą wartość (wyciągniętą powyżej)


Pole 'metal' w game_rekord Typu INT

Jak w PHPMYADMIN napiszę,
  1. SELECT MAX(`metal_mine`) FROM game_planets
to wyszuka wartość 74 i tą wartość chcę do game_rekord do pole 'metal'


Nie umiem Ci tego jaśniej napisać smile.gif
Kshyhoo
Może problemem są te ciapki na końcu:
FROM game_planets","");

Po za tym, bądź konsekwentny w używaniu ciapków, np:
  1. $rekm = doquery("SELECT MAX(`metal_mine`) FROM `game_planets`);
  2.  
  3. doquery("UPDATE `metal` = '$rekm' SET `game_rekord`);
Deusx
To nie jest problem, funkcja doquery, dokładnie powinno to wyglądać tak:

  1. doquery("UPDATE `metal` = '$rekm' SET {{table}},"planets");


I tak mam wszystkie zapytania (tutaj przerobiłem, aby było bardziej zrozumiałe). Tylko jak zazwyczaj wyciągam już coś, to z bazy, a tutaj wartość jest przypisana do zmiennej i wydaję mi się, że w tym tkwi problem.

Jednak problem już rozwiązałem, pomógł kolega po fachu, oto rozwiązanie:
  1. $rekm = doquery("SELECT MAX(`metal_mine`) AS metal FROM {{table}}","planets");
  2. $rekm = mysql_fetch_array($kopalniam);

$rekm['metal']; - dopiero to będzie wyświetlało wartość smile.gif

A drugi problem, to nasze niedopatrzenie, bo zapytanie jest zrobione na odwrót biggrin.gif

Jest
update metal set game_rekord
a powinno być
update game_rekord set metal
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.