Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> error
kabukiman
post 17.04.2002, 14:02:09
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 17.03.2002
Skąd: zamość

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


Hmm, teraz mam problem. Rozwiązanie pewnie jest prościutkie, ale ja dopiero się uczę... przy poleceniu mysql_fetch_array wyskakuje error "Supplied argument is not a valid MySQL result resource" .
Jakby ktoś chciał skrypt, to

<?

$sql=mysql_connect("localhost","user","password");
$baza="baza1";
echo ("<table><tr><td>");
$query = "SELECT imie,nazwisko,telefon FROM telefony";
$result = mysql_db_query($baza,$query);

while ($wiersz = mysql_fetch_array ($result) )

{
echo ($wiersz[imie]);
echo ($wiersz[nazwisko]);
echo ($wiersz[telefon]);
}

echo ("</tr></td></table>");
mysql_close ($sql);

?>

hmm, nie wiem gdzie jest błąd, według moich manuali powinno wszystko być o.k. Może ktos wie jak mi pomoc?
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
Seth
post 17.04.2002, 16:15:45
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 335
Pomógł: 6
Dołączył: 7.03.2002

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


Wydaje mi sie, ze chodzi o query powinno byc SELECT * FROM telefony
Go to the top of the page
+Quote Post
Mistycus
post 17.04.2002, 16:46:42
Post #3





Grupa: Zarejestrowani
Postów: 234
Pomógł: 0
Dołączył: 9.04.2002
Skąd: Łódź

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


Cytat
while ($wiersz = mysql_fetch_array ($result) )

Nie znam się na MySQL, ale zauważyłem, że popełniłeś błąd porównując zmienne w warunkach pętli - powinnno być $wiersz == mysql_fetch_array ($result). Pamiętaj, że pojedyńcze '=' to przypisanie, a nie porównanie.


--------------------
Pozdrawiam,
Mistycus
Go to the top of the page
+Quote Post
kryr
post 17.04.2002, 17:19:41
Post #4





Grupa: Zarejestrowani
Postów: 268
Pomógł: 0
Dołączył: --
Skąd: kielce

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


Cytat
kabukiman napisał:  
while ($wiersz = mysql_fetch_array ($result) )  
Nie znam się na MySQL, ale zauważyłem, że popełniłeś błąd porównując zmienne w warunkach pętli - powinnno być $wiersz == mysql_fetch_array ($result) . Pamiętaj, że pojedyńcze ' = ' to przypisanie, a nie porównanie.

To akurato jest dobrze! Bo wlasnie chodzi o przypisanie, a nie porownanie.
Kod
echo ($wiersz[imie]);

powinno byc:
Kod
echo ($wiersz['imie']);
Go to the top of the page
+Quote Post
Mistycus
post 17.04.2002, 18:05:35
Post #5





Grupa: Zarejestrowani
Postów: 234
Pomógł: 0
Dołączył: 9.04.2002
Skąd: Łódź

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


Cytat
To akurato jest dobrze! Bo wlasnie chodzi o przypisanie, a nie porownanie.

Od kiedy wewnątrz okrągłego nawiasu pętli wykonuje się jakieś operacje. Ten nawias służy do podawania warunków, a nie przypisywania wartości zmiennym.


--------------------
Pozdrawiam,
Mistycus
Go to the top of the page
+Quote Post
kryr
post 17.04.2002, 19:26:03
Post #6





Grupa: Zarejestrowani
Postów: 268
Pomógł: 0
Dołączył: --
Skąd: kielce

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


Mistycus: Bez urazy, ale powinienes postudiowac jakiegos manuala, najlepiej do c++ (tam chyba zdobedziesz najobszerniejsze info o operatorach)...
Go to the top of the page
+Quote Post
kabukiman
post 17.04.2002, 19:49:38
Post #7





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 17.03.2002
Skąd: zamość

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


nie bardzo, nie pomaga... z czym to może mieć związek?
Go to the top of the page
+Quote Post
kryr
post 17.04.2002, 20:01:58
Post #8





Grupa: Zarejestrowani
Postów: 268
Pomógł: 0
Dołączył: --
Skąd: kielce

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


A z baza na pewno jest wszytsko OK? Zalozyles tabele z odpowiednimi polami? Wpisales cos do ich? Na localhoscie masz serwer MySQL? (sory za desperackie pytania, ale ja chyba nic wiecej nie pomoge...)
Go to the top of the page
+Quote Post
kabukiman
post 17.04.2002, 20:07:49
Post #9





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 17.03.2002
Skąd: zamość

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


ta, serwer jest, pola są odpowiednie tylko ten $%^# błąd ciągle wyskakuje!
Go to the top of the page
+Quote Post
Seth
post 17.04.2002, 20:38:27
Post #10





Grupa: Przyjaciele php.pl
Postów: 2 335
Pomógł: 6
Dołączył: 7.03.2002

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


Sprobuj moze
zamien:
$result = mysql_db_query($baza,$query);
na:
$result = mysql_query($query);

Nie wiem, moze to cos da... any way only hope can keep me together biggrin.gif
Go to the top of the page
+Quote Post
kabukiman
post 18.04.2002, 11:31:48
Post #11





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 17.03.2002
Skąd: zamość

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


kurcze nie wiem, nie pomaga.. moze dam sobie z tym na razie spokój. Co to za błąd, tzn. czy moze to być wina źle skonfigurowanego serwera?
Go to the top of the page
+Quote Post
castor
post 18.04.2002, 12:14:25
Post #12





Grupa: Zarejestrowani
Postów: 456
Pomógł: 0
Dołączył: --

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


Cytat
<?
$sql=mysql_connect("localhost","user","password");
$baza="baza1";


a wstaw tu to:
Kod
   $baza_wybierz=mysql_select_db($baza);


Cytat
echo ("<table><tr><td>");
$query = "SELECT imie,nazwisko,telefon FROM telefony";



i to zmien:
Cytat
   $result = mysql_db_query($baza,$query);

na to:
Kod
$result=mysql_query($query,$sql);


Cytat
while ($wiersz = mysql_fetch_array ($result) )

{
echo ($wiersz[imie]);
echo ($wiersz[nazwisko]);
echo ($wiersz[telefon]);
}

echo ("</tr></td></table>");
mysql_close ($sql);

?>


Powinno pojsc :wink:


--------------------
pozdrawiam
CASTOR
Go to the top of the page
+Quote Post
kabukiman
post 18.04.2002, 20:16:49
Post #13





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 17.03.2002
Skąd: zamość

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


kurcze, dalej nie dziala.... fuck... chyba jednak coś źle skonfigurowałem bo teraz nawet zdalnie (przez www) bazy się nie da założyć.
Go to the top of the page
+Quote Post
kabukiman
post 19.04.2002, 11:51:03
Post #14





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 17.03.2002
Skąd: zamość

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


aargh... dosowy monitor działa ale jak już próbuję zarządzać bazą przez skrypt w php wtedy wszystko się wali.
Go to the top of the page
+Quote Post
castor
post 19.04.2002, 11:57:37
Post #15





Grupa: Zarejestrowani
Postów: 456
Pomógł: 0
Dołączył: --

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


Glupia uwaga ale:

dostep do bazy czyli: haslo, user, i nazwa DB jest dobrze podana??

Jakie bledy ci wyskakuja??

ahhaa a jeszcze w tym co ci poprawilem zrob tak jak ci kryr powiedzial:
Kod
$wiersz['imie']


chodzi o uszy :wink:


--------------------
pozdrawiam
CASTOR
Go to the top of the page
+Quote Post
msulik
post 21.04.2002, 23:02:05
Post #16





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 31.03.2002
Skąd: Toruń

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


Zmodyfikuję trochę Twój kod:

Kod
<?

/*

spróbujemy nawiązać połączenie z bazą. Jeśli to się powiedzie, to zmiennej [b]$sql[/b] zostanie przypisany identyfikator połączenia (różny od zera).

Jeśli się to nie powiedzie, to zmiennej [b]$sql[/b] zostanie przypisana wartość zero.

Całe wyrażenie po [b]if[/b] zwróci tę właśnie wartość.

*/

if ($sql=mysql_connect("localhost","user","password"))

{

// połączenie OK.

/*

następnie spróbujemy wykonać zapytanie. Jeśli będzie ono poprawne, to funkcja [b]mysql_db_query[/b] zwróci identyfikator wyniku. W przeciwnym wypadku zwróci [b]0[/b] lub - jak kto woli - [b]FALSE[/b]

*/

$baza="baza1";

echo ("<table><tr><td>");

$query = "SELECT imie,nazwisko,telefon FROM telefony";

if ($result = mysql_db_query($baza,$query))

{

// zapytanie OK.



while ($wiersz = mysql_fetch_array ($result) )

{

echo ($wiersz[imie]);

echo ($wiersz[nazwisko]);

echo ($wiersz[telefon]);

}



echo ("</tr></td></table>");

}

else

{

echo('Zapytanie bylo bledne.');

}

mysql_close ($sql);

}

else

{

echo('Polaczenie z baza nie powiodlo sie.');

}

?>


W ten sposob zidentyfikujesz błąd.

Jeszcze jedno: zwróć uwagę na zamknięcie tabeli w htmlu... Tam jest błąd (ale to oczywiście nie ma znaczenia dla mysql [sic!]).


--------------------
misiu | chór

"Zdeterminowany programista potrafi stworzyć fatalny kod w każdym języku"
Allen Holub
Go to the top of the page
+Quote Post
msulik
post 21.04.2002, 23:19:46
Post #17





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 31.03.2002
Skąd: Toruń

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


Cytat
Nie znam się na MySQL, ale zauważyłem, że popełniłeś błąd porównując zmienne w warunkach pętli - powinnno być $wiersz == mysql_fetch_array ($result). Pamiętaj, że pojedyńcze '=' to przypisanie, a nie porównanie.


To nie ma związku z MySQL. Poza tym TAM BYŁO DOBRZE! Ma być $wiersz = mysql_fetch_array ($result). Inaczej nie ma sensu, a wręcz nic nie da.

O operatorach w php czytaj tu: http://www.php.net/manual/pl/language.oper....assignment.php.

Pytanie na oblanie kiepskiego studenta nie znającego języka C:
Niech $a=0, $b=10, $c=20, $d=30, $e=40. Zastanów się bez komputera, jaką wartość będzie miała zmienna $a po wykonaniu takiej linii:
Kod
$a-=$b=-$c+++$d-$e;


--------------------
misiu | chór

"Zdeterminowany programista potrafi stworzyć fatalny kod w każdym języku"
Allen Holub
Go to the top of the page
+Quote Post
Mistycus
post 22.04.2002, 13:56:35
Post #18





Grupa: Zarejestrowani
Postów: 234
Pomógł: 0
Dołączył: 9.04.2002
Skąd: Łódź

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


Cytat
Pytanie na oblanie kiepskiego studenta nie znającego języka C:
Niech $a=0, $b=10, $c=20, $d=30, $e=40. Zastanów się bez komputera, jaką wartość będzie miała zmienna $a po wykonaniu takiej linii:
Kod
$a-=$b=-$c+++$d-$e;

Skoro $c równa się 20, to $c++ będzie równało się 21, natomiast -$c++ równe będzie -21 (to chyba logiczne). W takim razie -$c+++$d równe będzie 9, a -$c+++$d-$e daje -31 i tyle właśnie równa się $b. Skoro $a równe 0 mamy pomniejszyć o wartość $b, w rezultacie otrzymamy $a równe 31.

I co studenciku laugh.gif :?: Ja uczę się programowania na własną rękę, a nie w jakiejś tam akademii. Na początku był HTML (półtora roku temu), potem JavaScript(rok temu), a od 09.04.2002 php. W między czasie był jeszcze BAT (pliki wykonywalne *.bat w Windowsie). I tak w przeciągu półtora roku nauczyłem się w całości dwóch języków i po części jeszcze kilku. Tak więc niech mi nikt nie sugeruje, że się nie znam na operatorach. :x


--------------------
Pozdrawiam,
Mistycus
Go to the top of the page
+Quote Post
msulik
post 22.04.2002, 14:16:34
Post #19





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 31.03.2002
Skąd: Toruń

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


Cytat
w rezultacie otrzymamy $a równe 31.

I co studenciku laugh.gif  :?:  


A mi jakoś wyszło 30. To dlatego, że wyrażenie $c++ zwiększy wartość zmiennej $c o 1, ale zwróci starą wartość $c, czyli 20.

Gdyby było napisane ++$c zamiast $c++, to wyszłoby, że $a==31.

Miałbyś piękną pałę w indeksie, że aż miło biggrin.gif

Proponuję jednak poczytać o operatorach inkrementacji i dekrementacji: http://www.php.net/manual/pl/language.oper...s.increment.php , a także zajrzeć do jakiejś książki o języku C. Wiem z własnego doświadczenia, że bazując na kursach w internecie, nie można się wiele nauczyć.


--------------------
misiu | chór

"Zdeterminowany programista potrafi stworzyć fatalny kod w każdym języku"
Allen Holub
Go to the top of the page
+Quote Post
Mistycus
post 22.04.2002, 14:23:38
Post #20





Grupa: Zarejestrowani
Postów: 234
Pomógł: 0
Dołączył: 9.04.2002
Skąd: Łódź

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


Ojej, sprawdziłem to przy pomocy php i okazało się, że popełniłem drobniutki błędzik :oops:
Chodzi o to, że wartość $c zostaje zwiększona o 1 w zapisie $c++, ale dopiero po wykonaniu działania. W rezultacie $a równe będzie 30, :oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops: [/b]


--------------------
Pozdrawiam,
Mistycus
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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 - 12:26