kabukiman
17.04.2002, 14:02:09
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?
Seth
17.04.2002, 16:15:45
Wydaje mi sie, ze chodzi o query powinno byc SELECT * FROM telefony
Mistycus
17.04.2002, 16:46:42
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.
kryr
17.04.2002, 17:19:41
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']);
Mistycus
17.04.2002, 18:05:35
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.
kryr
17.04.2002, 19:26:03
Mistycus: Bez urazy, ale powinienes postudiowac jakiegos manuala, najlepiej do c++ (tam chyba zdobedziesz najobszerniejsze info o operatorach)...
kabukiman
17.04.2002, 19:49:38
nie bardzo, nie pomaga... z czym to może mieć związek?
kryr
17.04.2002, 20:01:58
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...)
kabukiman
17.04.2002, 20:07:49
ta, serwer jest, pola są odpowiednie tylko ten $%^# błąd ciągle wyskakuje!
Seth
17.04.2002, 20:38:27
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
kabukiman
18.04.2002, 11:31:48
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?
castor
18.04.2002, 12:14:25
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:
kabukiman
18.04.2002, 20:16:49
kurcze, dalej nie dziala.... fuck... chyba jednak coś źle skonfigurowałem bo teraz nawet zdalnie (przez www) bazy się nie da założyć.
kabukiman
19.04.2002, 11:51:03
aargh... dosowy monitor działa ale jak już próbuję zarządzać bazą przez skrypt w php wtedy wszystko się wali.
castor
19.04.2002, 11:57:37
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:
msulik
21.04.2002, 23:02:05
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!]).
msulik
21.04.2002, 23:19:46
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;
Mistycus
22.04.2002, 13:56:35
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

:?: 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
msulik
22.04.2002, 14:16:34
Cytat
w rezultacie otrzymamy
$a równe
31.
I co studenciku

:?:
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
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ć.
Mistycus
22.04.2002, 14:23:38
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]
Mistycus
22.04.2002, 14:34:34
Cytat
Wiem z własnego doświadczenia, że bazując na kursach w internecie, nie można się wiele nauczyć.
Ja swą naukę rozpocząłem sprawdzając kody źródłowe (tak było w przypadku HTML'a i BAT). Kursy internetowe nauczyły mnie JavaScriptu, a obecnie pokazują mi czym jest php i nie wiem czemu sądzisz, że takie kursy wiele mnie nie nauczą. W najbliższym czasie tą samą metodą mam zamiar nauczyć się C++ i Java'y. Masz lepszy pomysł?
msulik
22.04.2002, 17:26:41
Cytat
Masz lepszy pomysł?
Parę złotych i masz dobrą książkę, ale nie taką w stylu "Nauka C++ w weekend".
Takie kursy w internecie piszą amatorzy, którzy może mają doświadczenie w programowaniu lub obsłudze jakiegoś programu, ale zazwyczaj nie potrafią tej wiedzy przekazać. Mogą one posłużyć jedynie jako wstęp do omawianego problemu, jednak jest to bardzo powierzchowny opis.
Naprawdę - warto zainwestować w dobrą książkę. Strzeż się książek wydawnictwa Hel**n (nie chcę podawać nazwy) - są one tłumaczone przez ludzi, którzy nie znają się na rzeczy, a sam ich poziom też nie jest za wysoki. To samo z serią "...dla opornych". Warto rozejrzeć się za książkami wydawnictw WNT i MIKOM.
Dobra książka informatyczna to taka, w której nie leje się wody, a z drugiej strony taka, w której nie podaje się suchej teorii, tylko dużo przykładów.
Seth
22.04.2002, 18:45:56
Jesli chodzi o dobry (a nawet bardzo dobry) ksiazkowy kurs to polecam ARKANA "C++ Programowanie" Harvey'a M. Deitel i Paul'a J. Deitel. Ja tak jaki i ty Miscytus jestem samoukiem i ta ksiazka naprawde wiele mnie nauczyla. Jest tylko jedno ale: kosztuje ok 100zl. Lacznie stron ma 1082. Wyjasniona jest cala skladnia, funkcje, klasy itd.
Ja po kupieniu ksiazki wydawnictwa Helion podchodzilem sceptycznie do tego typu opracowan ale ta ksiazka jest naprawde SUPER :!:
haiaw
22.04.2002, 21:29:18
Panowie, prosze trzymac sie tematu, a jakiekolwiek inne dygresje umieszczac w nowych watkach, a dyskusje bardzo odbiegajace od tematow php,MYSQL,PGSQL,APACHE umieszczac w nieistniejacym niestety jeszcze ( Hyper- miales zalozyc

) forum Hydepark.
Forum Hydepark bedzie zalozone w ciagu kilku dni.
Na przyszlosc prosze tam kierowac tego typu rozmowy.
W innym wypadku, forum zostanie zasmiecone, co znacznie obnizy jego wartosc merytoryczna,albo watki beda blokowane. :/
Mistycus
22.04.2002, 22:59:50
Dzięki Msulik - jak odłoże trochę kasy, to napewno kupię sobie którąś z książek MIKOMA'a lub WNT'a. Tobie Seth również dzięki
Co do Ciebie Haiaw, to dałbyś spokojnie porozmawiać. Ok? Jak sam piszesz nie ma jeszcze forum "Hydepark", więc póki co nie usuwaj postów o podobnej tematyce. Swoją drogą temat książek o php nie odbiega chyba bardzo tematyce tego forum. Czyż nie :?:
em1X
22.04.2002, 23:39:51
Cytat
<?
$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);
?>
ja bym to zrobil tak
<?php
@mysql_connect("localhost","user","passwd") or die(mysql_error());
$exec = mysql_db_query("baza", "select imie, nazwisko, telefon from telefony") or die(mysql_error());
print("<table><tr><td>");
while($row = mysql_fetch_row($exec))
print("$row[0] $row[1] $row[2]");
print("</td></tr></table>");
?>
jak dalej sie sypie to znaczy ze zle wyciagasz dane z tabeli (inna nazwa, komorki itp)
kryr
23.04.2002, 07:26:09
Mam wrazenie, ze krecicie sie w kolko... te wszystkie skrypty roba dokladnie to samo...
em1X
23.04.2002, 14:27:23
no ale jak tu mu nie dziala to raczej cos zle wyciaga
kabukiman
24.04.2002, 12:46:24
AHHAHAHAHAHAHAH!!!!!
działa, działa! sorki za ten wybuch ale nie mogłem się powstrzymać. Kurcze, już wiem gdzie jest błąd!!! Skrypt był w porządku, a ja wam trułem głowę bez powodu. Jak tworzyłem bazę to zamiast "baza1" zrobiłem baze o nazwie "bza1". Dopiero WCZORAJ to zauważyłem.
Seth
25.04.2002, 21:33:42
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.