Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SQL][MySQL][PHP] argument is not a valid MySQL result, Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL
--Bart--
post 3.06.2013, 11:58:29
Post #1





Goście







Witam serdecznie. Pisze tu po raz pierwszy bo praktycznie kończę już stronkę, a niestety utknąłem w jednym miejscu. Kompletnie nie rozumiem w czym jest problem. Postaram się jasno opisać o co chodzi:

Mam 2 tabele - um (od umiejetnosci) i umd (umiejetnosci dodatkowe)

W tabeli um mam pola idu i um

W tabeli umd: id1 (jako klucz podstawowy) idu1 (pole o wartości idu z pierwszej tabeli) i dod (dodatkowe)

Teraz chcę wykonać zapytanie:

$sql=("SELECT um.idu, um.um, umd.idu1, umd.dod FROM um , umd WHERE um.idu=umd.idu1");

i wszystko wydaje się prawidłowe, zwłaszcza, że kiedy wpisuję takie zapytanie w Vertrigo Serv czyli na moim wirtualnym serwerze - wszystko gra i wyświetla się prawidłowo. Problem pojawia się dopiero na stronie. Poniżej zapytania mam coś takiego:

while ($query_row=mysql_fetch_assoc($sql)) {


$idu1=$query_row['idu1'];


echo $idu1;
}

Mniejsza z tym, co chcę wyświetlić, bo będzie tam zupełnie inne pole, ale serwer wyrzuca mi coś takiego:

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource i że niby w linii 136 czyli w tej w której mam while

Ktoś z Was rozumie o co tutaj chodzi? Bardzo proszę o jakąś podpowiedź, bo ja nie mam pojęcia. Pozdrawiam.
Go to the top of the page
+Quote Post
Michael2318
post 3.06.2013, 12:06:56
Post #2





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


A gdzie wykonywanie zapytania do bazy (mysql_query($sql)) ...?

Zrób tak:

  1. $sql= "SELECT um.idu, um.um, umd.idu1, umd.dod FROM um , umd WHERE um.idu=umd.idu1";
  2. if ( !($result = mysql_query($sql)) )
  3. {
  4. die('error in sql<br>'.mysql_error());
  5. }
  6. while($query_row = mysql_fetch_assoc($result) )
  7. {
  8. $idu1=$query_row['idu1'];
  9.  
  10. echo $idu1;
  11. }


Ten post edytował Michael2318 3.06.2013, 12:07:56
Go to the top of the page
+Quote Post
--Bart--
post 3.06.2013, 12:15:46
Post #3





Goście







Teraz wygląda to tak i co prawda nie wyświetla błędu, ale też nie wyświetla rekordu dodatkowe z tabeli um. Tabela nie jest pusta i wszystkie pola się zgadzają. Soprawdzałem kilka razy. A tak poza tym dziękuję za odpowiedźwink.gif Nie liczyłem na tak szybką szczerze mówiąc.

if ($page==6)
{ echo '<h3>Umiejętno¶ci</h3><center>';

$sql= "SELECT um.idu, um.um, umd.idu1, umd.dod FROM um , umd WHERE um.idu=umd.idu1";
if ( !($result = mysql_query($sql)) )
{
die('error in sql'.mysql_error());
}
while($row = mysql_fetch_assoc($result) )
{
$umiejetnosc=$query_row['um'];


echo $umiejetnosc;


}}
echo "<br>";
Go to the top of the page
+Quote Post
--Bart--
post 3.06.2013, 12:17:26
Post #4





Goście







Rozpędziłem się - chodzi oczywiście o rekord um z tabeli um . Sorki
Go to the top of the page
+Quote Post
Michael2318
post 3.06.2013, 12:18:28
Post #5





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


dorzuć po wszystkim:

Zliczy ile rekordów zostało znalezionych poprzez wykonane wyżej zapytanie. Jesli zwróci 0 to wiadomo, że w bazie nie ma wyników odpowiadających temu zapytaniu albo zapytanie jest źle poskładane.
Go to the top of the page
+Quote Post
--Bart--
post 3.06.2013, 12:25:02
Post #6





Goście







Wyliczyło 21 czyli tablica faktycznie pusta nie jest. Że tak powiem - bądź człowieku mądry i pisz wiersze;) Pierwszy raz mam coś takiego.
Go to the top of the page
+Quote Post
--Bart--
post 3.06.2013, 12:30:15
Post #7





Goście







To brzmi tak absurdalnie, ja wiem.

Ale niczego nie mylę. W tabeli o nazwie um mam pole o nazwie um i o nazwie idu (porządkowa klucz podstaowy)

W tabeli o nazwie umd mam pola o nazwie id1 - porządkowa klucz podstawowy, idu1 = idu z pierwszej tabeli, i dod czyli informacje dodatkowe.

Znam to już na pamięć, bo kombinuje od wczoraj;)
Go to the top of the page
+Quote Post
Michael2318
post 3.06.2013, 12:30:41
Post #8





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


Cytat
while($row = mysql_fetch_assoc($result) )
{
$umiejetnosc=$query_row['um'];


myslę, że nie musze tlumaczyc smile.gif
Go to the top of the page
+Quote Post
--Bart--
post 3.06.2013, 12:36:11
Post #9





Goście







Mam jakiś błąd w tej linijce? Jestem samoukiem więc jeszcze tak do końca wszystkiego nie wiem. Ale do tej pory trochę już zrobiłem i zawsze działało.
Go to the top of the page
+Quote Post
--Bart--
post 3.06.2013, 12:38:41
Post #10





Goście







Wstyd i żenada. Aż się spaliłem. Już widzę i działa;) Wielkie dzięki:)
Go to the top of the page
+Quote Post
Michael2318
post 3.06.2013, 12:39:01
Post #11





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


serio nie widzisz tego, że w pierwszej linijce nazwałeś zmienną '$row' a potem odwołujesz się do zmiennej $query_row? ;/ Wypadałoby się zdecydować na jedną nazwę.
Go to the top of the page
+Quote Post
--Bart--
post 3.06.2013, 12:43:22
Post #12





Goście







No tak tak już wiem;) Od tych kodów dostaję już oczopląsu i w pierwszej chwili nie zauważyłem:) Swoją drogą widzę, że warto tu pytać. Jest krótko, zwięźle i na temat;)
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: 19.07.2025 - 08:31