Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: co tu jest nie tak??
Forum PHP.pl > Forum > Bazy danych > MySQL
tomeg
<?
$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
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 ? smile.gif
tomeg
Dzieki!

Tak czulem, ze to jakis "czeski" blad.

Juz dziala.

pozdrowka
tomeg
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">&nbsp&nbsp%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:&nbsp%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
>>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
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
Kwoty najlepiej przechowywać w polach typu FLOAT(10,2) - masz do dyspozycji osiem cyfr przed i dwie po przecinku (zaokrągla sam).
tomeg
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 smile.gif

pozdrowka
scanner
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.