tomeg
13.02.2003, 21:40:53
<?
$db = mysql_connect("localhost", "kosmetyki", "");
mysql_select_db("pani");
$sql = "select * from pani";
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result))
{
printf ($row["nazwa"]);
printf ($row["id"]);
}
?>
Chce pobrac dane z bazy by sie wyswiatklaly na stronie.
baza - "kosmetyki
tabela - "pani"
pola - "id", "nazwa" (1. dezodorant)
Chce zeby "1" oraz "dezodorant" bylo widoczne na stronce.
Wydaje mi sie ze wszystko jest ok. Wyskakuje jednak blad:
Warning: Supplied argument is not a valid MySQL result resource in c:inetpubstrona_sphptest1.php on line 6
czyli w okolicy "while".
Co jest nie tak? Zaznaczam ze jestem poczatkujacy w te klocki.
Dziekuje za kazda pomoc.
pozdrawiam
zalew
13.02.2003, 22:53:20
gdy wyskakuje blad na linii while result= to oznacza ze podane zapytanie do bazy (choc jest zdefiniowane wyzej) nie zgadaza sie.. czyli albo nazwa tabeli jest zla albo skladnia, albo tabela pusta, itp..
o wlasnie cos upatrzylem
>> mysql_select_db("pani"); <<<
>>> baza - "kosmetyki <<<
skoro baza to kosmetyki to czemu slectujesz baze pani ?
tomeg
13.02.2003, 23:02:23
Dzieki!
Tak czulem, ze to jakis "czeski" blad.
Juz dziala.
pozdrowka
tomeg
17.02.2003, 23:04:12
Brne dalej w walce z php i mysql.
Wyswietlam na stronie dane. Tyle ze chce by odwiedzajacy mial do wyboru sortowanie wedlug kilku pol. Jednego nie kumam. Co ma byc w linku?
baza="kosmetyki"
tabela="kosmetyki"
sortowanie wedlug:
nazwa, marka, cena.
Poza tym gdy sortuje wedlug ceny 112 jest mniejsze od 20. Jak zrobic by dobrze rozroznial liczby - trzycyfrowa by zawsze byla wieksza od dwucyfrowej.
Probuje cos takiego:
Uporządkuj wiadomości według: <a href="data_out.kosmetyki?orderby=nazwa">nazwa</a>
//ten link to "zgadywuje" ;-))
<table bgcolor="blue" border="1">
<?
if ($orderby == 'nazwa'): //tu pokazuje blad
$sql = "select * from kosmetyki order by 'nazwa'";
else:
$sql = "select * from kosmetyki";
endif;
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result))
{
print("<tr><td>");
printf("<b><font color="white">  %s</font></b></td>n",
$row["id"]);
printf("<td><center><b><font color="yellow">%s</b></td>n",
$row["nazwa"]);
printf("<td><center><b><font color="yellow">cena: %s</b></td></tr>n",
$row["cena"]);
}
?>
</table>
Na poczatek probuje sortowac wedlug nazw. Jesli to "pojdzie" to z reszta sobie poradze. To jest wersja robocza wiec brakuje chocby "kategorii".
Wyskakuje blad:
Warning: Undefined variable: orderby in c:inetpubstrona_steksty3.txt on line 5
Dziekuje za wszelka pomoc
zalew
18.02.2003, 17:05:21
>>Poza tym gdy sortuje wedlug ceny 112 jest mniejsze od 20. Jak zrobic by dobrze rozroznial liczby - trzycyfrowa by zawsze byla wieksza od dwucyfrowej. <<
a pole w bazie masz typu integer ?
>>sql = "select * from kosmetyki order by 'nazwa'"; <<
order by nazwa nie 'nazwa'
tomeg
19.02.2003, 19:30:44
mimo poprawienia 'nazwa' na nazwa
nadal nie dziala.
i nadal nie mam pojecia jak
podlinkowac sortowanie gdy uzywam funcji z if.
Zrobic calkiem nowy pliki dac do niego hiperlacze?
Czy jak wstawie cos w stylu:
<a href="data_out.kosmetyki?orderby=nazwa">nazwa</a>
to wyswietli mi pola odpowiednio juz posortowane??
ceny teraz sortuje dobrze tyle, ze ucina ulamki.
Jaki typ pola ustawic by wyswietlac liczbe np.
122,22
Moze ktos pomoze??
Dzieki za juz i prosze o jeszcze.
i pozdrawiam
dragossani
20.02.2003, 13:45:08
Kwoty najlepiej przechowywać w polach typu FLOAT(10,2) - masz do dyspozycji osiem cyfr przed i dwie po przecinku (zaokrągla sam).
tomeg
20.02.2003, 20:55:46
Dzieki za pomoc.
Jednak nadal prosze o pomoc w sprawie sortowania i dodania do tego hiperlacza.
Jakis schemacik? Jak sie to robi?
pliz pliz pliz
pozdrowka
scanner
20.02.2003, 22:38:26
Link:
Kod
<a href="index.php?where=costam&orderby=costam2&order_dir=<?php $tmp = ($_GET['order_dir']=='DESC') ? 'ASC' : 'DESC'; echo $tmp; ?>">
Zapytanie:
Kod
$query = sprintf("SELECT * FROM tabela WHERE pole = %s ORDER BY %s %s", $_GET['where'] ,$_GET['orderby'],$_GET['order_dir'])
U mnie taka konstrukcja dziala na stronie
http://www.alpn.prv.pl - mozliwosc sortowania tabel wzgledem dowolnego pola i dowolnej kolejnosci.
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.