Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][mysql]
kamioool
post
Post #1





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 1.01.2008

Ostrzeżenie: (10%)
X----


$kopy = mysql_query("SELECT kopy FROM osoba WHERE id='$id'");
$kop = mysql_fetch_array($kopy);
mysql_query("UPDATE osoba SET kopy='++$kop[0]' WHERE id='$id'");


Nie wywala żadnego błedu. Nie działa poprawnie poprostu zeruje wartośc. Z 5 na 0. Skrypt ma polegac na tym że po wejsciu na .../kop/index.php?id=33 ma zawiekszyc sie wartosc rekordu kopy dla danego ID o 1.

Ten post edytował kamioool 3.01.2008, 22:03:47
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




To co chcesz zrobic zalatwia sie jednym zapytaniem:
  1. UPDATE osoba SET kopy=kopy+1 WHERE id=TWOJEID
Go to the top of the page
+Quote Post
kamioool
post
Post #3





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 1.01.2008

Ostrzeżenie: (10%)
X----


Pewnie problem polega na tym że w składni coś jest nie tak. Musze pobrac rekord dla danego ID a pozniej zapisac go spowrotem z wartośćia +1.
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Pewnie problem polega na tym że w składni coś jest nie tak.
No twoja skladnia jest zla.
  1. <?php
  2. $kopy = mysql_query("SELECT kopy FROM osoba WHERE id='$id'");
  3. $kop = mysql_fetch_array($kopy);
  4. $kopn = $kop[0]+1;
  5. mysql_query("UPDATE osoba SET kopy=$kopn WHERE id=$id");
  6. ?>
Go to the top of the page
+Quote Post
kamioool
post
Post #5





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 1.01.2008

Ostrzeżenie: (10%)
X----


To jeszcze jedno pytanko:
id = 1 kopy = 5
id = 2 kopy = 6
id = 3 kopy = 7
id = 4 kopy = 9
Potrzebuje zrobic aby pobrał wyniki z bazy danych, ustawił je w kolejnosci pod wzgledem ilosci kopow a pozniej przyporzadkował miejsce w rankingu dla danego ID.
Cytat
ID 3 jest na 2 miejscu pod wgledem ilosci kopow.


Ten post edytował kamioool 4.01.2008, 10:13:14
Go to the top of the page
+Quote Post
Cezar708
post
Post #6





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

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


  1. SELECT id, kopy
  2. FROM osoba ORDER BY kopy DESC


będziesz miał posegregowane i po kolei możesz sobie (od największej liczby kopy) pobierać już w PHP
Go to the top of the page
+Quote Post
kamioool
post
Post #7





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 1.01.2008

Ostrzeżenie: (10%)
X----


Najwidoczniej mnie nie zrozumiałeś (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Nie chodzi mi o to jak będzie wyglądać zapytanie tylko jak będzie wyglądać kod php.
Nie wiem jak znaleść pozycje na liscie danego id pod wzgledem ilosci kopow.
Go to the top of the page
+Quote Post
Cezar708
post
Post #8





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

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


hmm być może nie rozumiem, więc napiszę Ci jak wyświetlić listę z miejscami:

  1. <?php
  2. $result = mysql_query('SELECT id, kopy FROM osoba ORDER BY kopy DESC ');
  3. $i=1;
  4. while ($row = mysql_fetch_assoc($result)) {
  5. echo "ID {$row['id']} jest na $i miejscu pod wgledem ilosci kopow. (posiada {$row['kopy']} kopy)<br />";
  6. $i++;
  7. }
  8. ?>
Go to the top of the page
+Quote Post
kamioool
post
Post #9





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 1.01.2008

Ostrzeżenie: (10%)
X----


Z tym ze chce wyswietlic dla konkretnego ID jego numerek (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Nie chce całej listy (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Kurcze za duzo już mieszam (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
Cezar708
post
Post #10





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

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


AAACHAAA!!!

no to wystarczy jedno zapytanie mysql (mam nadzieje, że w PHP już sobie to poradzisz, jak nie daj znać)
  1. SELECT count(*)+1
  2. FROM osoby WHERE kopy > (
  3. SELECT kopy
  4. FROM osoby WHERE id=$idKtoregoMiejscaSzukasz
  5. )
Go to the top of the page
+Quote Post
kamioool
post
Post #11





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 1.01.2008

Ostrzeżenie: (10%)
X----


W niezrozumiałej dla mnie formie mi to napisałeś, jednak nie umiem sobie poradzic z php a sądziłem że dam rade. Moge prosić znowu o pomoc?

Ten post edytował kamioool 5.01.2008, 01:28:48
Go to the top of the page
+Quote Post
Cezar708
post
Post #12





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

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


No z tego co ja rozumiem, to masz konkretne ID i chcesz sprawdzić na którym miejscu w rankingu jest ten ID.

Czyli dla konkretnego ID chcesz pobrać z bazy jego numerek (czyli na którym jest miejscu).

Wykorzystujesz tamto zapytanie i do dzieła, czyli:

  1. <?php
  2. // zakładam, że jesteś połączony na tym etapie z bazą danych
  3.  
  4. $id = $_GET['id']; // na przykład ID dla którego szukasz wyniku, możesz pobrać z adresu URL (ale to tylko propozycja)
  5. $res = mysql_query("
  6. SELECT count(*)+1
  7. FROM osoby WHERE kopy > (
  8. SELECT kopy
  9. FROM osoby WHERE id=$id
  10. ");
  11. $row = mysql_fetch_row($res);
  12. $numerek = $row[0]; // czyli piersza kalumna (bo tylko taka jest) (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)  
  13.  
  14. // no i na końcu wyświetelenie rezultatu, czyli 
  15.  
  16. echo "ID $id jest na $numerek miejscu pod wgledem ilosci kopow.";
  17. ?>
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 13.10.2025 - 19:00