Skocz do zawartości
Zaloguj się, aby obserwować  
Malas

[PHP]problem ze skryptem

Polecane posty

Więc piszę sobie skrypt i mam następujący problem.

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in i tutaj sciezka do tego pliku on line 11

zawartosc pliku zawodnik.php (w nim jest ten błąd):

 

<?php

require_once ('mysql/mysql_connect.php'); // Połącz się z bazą danych.

if(!is_numeric($_GET['id'])){

$sql=mysql_query("SELECT id, imie FROM player");//wykonujemy zapytanie

while($lista=mysql_fetch_assoc($sql) ){//w tablicę

echo '<a href="zawodnik.php?id='.$lista['id'].'">'.$lista['imie'].'</a><br/>';//linki do profili

}

}else{

$id=$_GET['id'];

$player=mysql_query("SELECT imie, nazwisko, kraj, urodzony, miejsce, wzrost, waga, pozycja FROM player WHERE id_usera='$id'");

$player=mysql_fetch_assoc($player);

echo 'imie:'.$player['imie']; //i tak resztę tablicy

}

mysql_close(); // Zamknij połączenie z bazą danych.

?>

W strukturze bazy i reszcie skryptu jest wszystko ok.

 

Może osoby bardziej ogarnięte w php mi pomogą;)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Może tak zadziała?:

 

<?php
  require_once ('mysql/mysql_connect.php');
  if(!is_numeric($_GET['id'])){
  $sql=mysql_query("SELECT * FROM player");
  while($lista=mysql_fetch_assoc($sql)){
  echo '<a href="zawodnik.php?id='.$lista['id'].'">'.$lista['imie'].'</a><br/>';
  }
  }else{
  $id=$_GET['id'];
  $sql2=mysql_query("SELECT * FROM player WHERE id_usera='".$id."'");
  while($player=mysql_fetch_assoc($sql2))
	echo 'imie:'.$player['imie'];
  mysql_close();
?>

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
A skąd wiesz, że się połączyłeś z bazą?

Wcześniej za pomocą /mysql/mysql_connect.php łącze się z bazą w formularzu z którego dane wędrują do bazy..więc łączy się na bank.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Wcześniej za pomocą /mysql/mysql_connect.php łącze się z bazą w formularzu z którego dane wędrują do bazy..więc łączy się na bank.
Ale głupia odpowiedź ;)

 

$player=mysql_query("SELECT imie, nazwisko, kraj, urodzony, miejsce, wzrost, waga, pozycja FROM player WHERE id_usera='$id'");
if (!$player) {
 echo mysql_errno() . ": " . mysql_error();
 exit;
}

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Ale głupia odpowiedź ;)

Nie głupia tylko normalna, zawartość tamtego pliku się nie zmienia, polecenie takie same więc czemu miałby się nie połączyć?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Nie głupia tylko normalna, zawartość tamtego pliku się nie zmienia, polecenie takie same więc czemu miałby się nie połączyć?

Głupia

 

Ale do sena mysql_fetch_assoc() zwraca Ci warning mówiący, że argumentem nie jest nie ma prawidłowego "result resource" czyli $sql=mysql_query("SELECT * FROM player"); nie daje prawidłowego "result resource" zrób to co napisał p i będziesz wiedział w czym problem.

 

Materiały pomocnicze

http://pl.php.net/manual/en/function.mysql-fetch-assoc.php

http://pl.php.net/manual/en/function.mysql-query.php

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Dokładnie tak jak poprzednicy. Na samo połączenie i wybór bazy nie zapomnij dać jakiegoś 'or die' lub daj na to if i sprawdzaj czy się łączy.

 

Natomiast jeśli chodzi o ten jeden konkretny błąd to nigdzie nie sprawdzasz czy zapytanie wykonało się poprawie. Jeśli będzie błąd, lub zwróci 0 rekordów to będzie wyskakiwał Ci właśnie taki błąd.

 

if($player=mysql_fetch_assoc($player)){

echo 'imie:'.$player['imie'];

}else{

echo 'Brak takiego gracza!';

}

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Zrobiłem 2 plik o nazwie zawodnik2.php z tą treścią co p pisał:

<?php

require_once ('mysql/mysql_connect.php'); //

$player=mysql_query("SELECT imie, nazwisko, kraj, urodzony, miejsce, wzrost, waga, pozycja FROM player WHERE id='$id'");

if (!$player) {

echo mysql_errno() . ": " . mysql_error();

exit;

}

mysql_close();

?>

i wyświetla się biała strona czyli rozumiem, że wszystko ok? wcześniej błąd powodowała literówka, którą poprawiłem. No i to chyba był błąd bo teraz całość działa..

dzięki za pomoc ;)

kosz

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się

Zaloguj się, aby obserwować  

×