Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL] Nadpisywanie rekordu
screv
post
Post #1





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 3.08.2009

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


Mam baze. Mniej więcej wyglada tak:

(IMG:http://img35.imageshack.us/img35/5025/przechwytywaniee.png)

Jest oczywiscie wiecej wierszy niż jeden. Chcę, napisać skrypt który, po wywołaniu będzie pobierał wartość z kolumny 'liczba' od danego użytkownika (user), następnie aktualizował ją o 1 (czyli updateował tabelę). Jak to osiągnąć? Proszę o szczegółowe porady a nie ogólniki, mam wrażenie że to wcale nie takie trudne.

Ten post edytował screv 4.08.2009, 14:39:47
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 28)
marian2299
post
Post #2





Grupa: Zarejestrowani
Postów: 272
Pomógł: 9
Dołączył: 6.06.2009

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


  1. <?php
  2. $cos = mysql_query("SELECT liczba FROM tabela WHERE user = 'screv'") or die(mysql_error());
  3. $costam = mysql_fetch_array($cos);
  4. $jeszcze_cos_innego = mysql_query("UPDATE `tabela` SET `liczba` = '".$costam[0]."+1' WHERE user = 'screv'") or die(mysql_error());
  5. ?>


Jakoś tak (IMG:http://forum.php.pl/style_emoticons/default/haha.gif) . Ale pewnie jest łatwiejszy sposób.
Chodziło o użytkownika, już poprawione.

Ten post edytował marian2299 4.08.2009, 14:52:54
Go to the top of the page
+Quote Post
iVorIus
post
Post #3





Grupa: Zarejestrowani
Postów: 145
Pomógł: 18
Dołączył: 11.11.2008
Skąd: Pwo

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


  1. <?php
  2. $query = mysql_fetch_array( mysql_query( "SELECT `liczba` FROM `tabela` WHERE `id` = '1'") );
  3.  
  4. $a = $query['liczba'];
  5.  
  6. mysql_query("UPDATE `tabela` SET `liczba` = '$a + 1' WHERE `id` = '1'");
  7. ?>


Ten post edytował iVorIus 4.08.2009, 14:53:43
Go to the top of the page
+Quote Post
marian2299
post
Post #4





Grupa: Zarejestrowani
Postów: 272
Pomógł: 9
Dołączył: 6.06.2009

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


Twój kod chyba nie będzie działał. Raczej
  1. SET `liczba` = '".$a." + 1'
Go to the top of the page
+Quote Post
screv
post
Post #5





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 3.08.2009

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


Edytowałem pod siebie:

  1. <?php
  2.    $query = mysql_fetch_array( mysql_query( "SELECT `liczba` FROM `users` WHERE `username` = '.$po.'") );
  3.  
  4.    $a = $query['liczba'];
  5.  
  6.    mysql_query("UPDATE `users` SET `liczba` = '".$a." + 1' WHERE `username` = '.$po.'");
  7.    ?>


Wyrzuca mi białą kartkę. Widzicie tu może błąd?
Go to the top of the page
+Quote Post
iVorIus
post
Post #6





Grupa: Zarejestrowani
Postów: 145
Pomógł: 18
Dołączył: 11.11.2008
Skąd: Pwo

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


  1. <?php
  2. $query = mysql_fetch_array( mysql_query( "SELECT `liczba` FROM `users` WHERE `username` = '$po' ") );
  3.  
  4. $a = $query['liczba'];
  5.  
  6. mysql_query("UPDATE `users` SET `liczba` = '$a + 1' WHERE `username` = '$po' ");
  7. ?>


Sprawdź baze czy rekord został nadpisany.

Ten post edytował iVorIus 4.08.2009, 15:06:18
Go to the top of the page
+Quote Post
screv
post
Post #7





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 3.08.2009

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


Ciągle jest taki jaki był. Dodatkowo pusta strona.
Go to the top of the page
+Quote Post
marian2299
post
Post #8





Grupa: Zarejestrowani
Postów: 272
Pomógł: 9
Dołączył: 6.06.2009

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


Zobacz tak:

  1. <?php
  2.   $query = mysql_fetch_array(mysql_query( "SELECT `liczba` FROM `users` WHERE `username` = '".$po."'") );
  3.  
  4.   $a = $query['liczba'];
  5.  
  6.   mysql_query("UPDATE `users` SET `liczba` = '".$a." + 1' WHERE `username` = '".$po."'");
  7.   ?>
Go to the top of the page
+Quote Post
iVorIus
post
Post #9





Grupa: Zarejestrowani
Postów: 145
Pomógł: 18
Dołączył: 11.11.2008
Skąd: Pwo

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


Spróbuj:
  1. <?php
  2. $query = mysql_fetch_array( mysql_query( "SELECT `liczba` FROM `users` WHERE `username` = '$po' ") );
  3.  
  4. $a = $query['liczba'] + 1;
  5.  
  6. mysql_query("UPDATE `users` SET `liczba` = '$a' WHERE `username` = '$po' ");
  7. ?>
Go to the top of the page
+Quote Post
screv
post
Post #10





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 3.08.2009

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


Teraz nie ma pustej strony, ale i tak dalej nie nadpisuje. Moze dam wam caly kod pliku.

  1. <?php
  2. include ('header.php');
  3. ?>
  4.  
  5. <a href="index.php"> Wróć </a> <br />
  6.  
  7.  
  8. <?php
  9. $name = $_SESSION["username"];
  10. $str = "http://".$_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"];
  11.  
  12. $podzielonyUrl = split("=", $str);
  13. $po = $podzielonyUrl[1];
  14.  
  15. $conn = mysql_connect("xxxx","xxxx","private") or die(mysql_error());
  16. $db = mysql_select_db("xxxxxx", $conn);
  17.  
  18. if ($name==$po) {
  19.    echo "Twoj link to";
  20.    echo "$str";
  21. }
  22. else {
  23.    echo "Dzieki";
  24.  
  25.  
  26.  
  27.  $query = mysql_fetch_array(mysql_query( "SELECT `liczba` FROM `users` WHERE `username` = '".$po."'") );
  28.  
  29.  $a = $query['liczba'];
  30.  
  31.  mysql_query("UPDATE `users` SET `liczba` = '".$a." + 1' WHERE `username` = '".$po."'");
  32.  
  33.  
  34. }
  35.  
  36.  
  37.  
  38.  
  39. ?>
  40. <br />
  41.  
  42. <?php include ('footer.php'); ?>
Go to the top of the page
+Quote Post
marian2299
post
Post #11





Grupa: Zarejestrowani
Postów: 272
Pomógł: 9
Dołączył: 6.06.2009

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


Daj za " mysql_query("UPDATE `users` SET `liczba` = '".$a." + 1' WHERE `username` = '".$po."'");"
  1. <?php
  2. ?>

I napisz co tam ci się pokazało.

Edit: Czy zamast $po nie powinno być $name ?

Ten post edytował marian2299 4.08.2009, 15:15:36
Go to the top of the page
+Quote Post
screv
post
Post #12





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 3.08.2009

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


Nie wywala błędu. A na sto % powinno być $po.

Może on źle łączy do bazy? Dane dobrze wpsiane, ale moze od strony kodu cos zle?
Go to the top of the page
+Quote Post
marian2299
post
Post #13





Grupa: Zarejestrowani
Postów: 272
Pomógł: 9
Dołączył: 6.06.2009

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


Rozumiem, że w bazie się nic nie zmienia ?

Spróbuj może tak:
  1. <?php
  2. $query = mysql_fetch_array(mysql_query( "SELECT `liczba` FROM `users` WHERE `username` = '".$po."'") );
  3.  
  4. $a = $query['liczba'];
  5. $wynik = $a + 1;
  6.  
  7. mysql_query("UPDATE `users` SET `liczba` = '".$wynik."' WHERE `username` = '".$po."'");
  8. ?>


Ten post edytował marian2299 4.08.2009, 15:34:25
Go to the top of the page
+Quote Post
erix
post
Post #14





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Tylko po co tak kombinujecie...?

Przecież:
  1. UPDATE tabela SET pole=pole+1 WHERE user="użyszkodnik"

powinno wystarczyć, przynajmniej tyle zrozumiałem z opisu problemu.
Go to the top of the page
+Quote Post
screv
post
Post #15





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 3.08.2009

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


Jak to zamiescic w moim kodzie? ; o
Go to the top of the page
+Quote Post
marian2299
post
Post #16





Grupa: Zarejestrowani
Postów: 272
Pomógł: 9
Dołączył: 6.06.2009

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


Ach (IMG:http://forum.php.pl/style_emoticons/default/haha.gif) . Wiedziałem że jest jakieś prostsze rozwiązanie (IMG:http://forum.php.pl/style_emoticons/default/haha.gif) .
Działa ?

  1. <?php
  2. $query = mysql_fetch_array(mysql_query( "SELECT `liczba` FROM `users` WHERE `username` = '".$po."'") );
  3.  
  4. mysql_query("UPDATE `users` SET `liczba` = 'liczba+1' WHERE `username` = '".$po."'");
  5. ?>

Zobacz tak.

Ten post edytował marian2299 4.08.2009, 16:02:27
Go to the top of the page
+Quote Post
screv
post
Post #17





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 3.08.2009

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


znowu biała kartka. o co chodzi?
Go to the top of the page
+Quote Post
iVorIus
post
Post #18





Grupa: Zarejestrowani
Postów: 145
Pomógł: 18
Dołączył: 11.11.2008
Skąd: Pwo

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


  1. <?php
  2. include ('header.php');
  3. ?>
  4.  
  5. <a href="index.php"> Wróć </a> <br />
  6.  
  7.  
  8. <?php
  9. $name = $_SESSION["username"];
  10. $str = "http://".$_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"];
  11.  
  12. $podzielonyUrl = split("=", $str);
  13. $po = $podzielonyUrl[1];
  14.  
  15. $conn = mysql_connect("xxxx","xxxx","private") or die(mysql_error());
  16. $db = mysql_select_db("xxxxxx", $conn);
  17.  
  18. if ($name==$po) {
  19.   echo "Twoj link to";
  20.   echo "$str";
  21. }
  22. else {
  23.   echo "Dzieki";
  24.  
  25. $query = mysql_fetch_array(mysql_query( "SELECT `liczba` FROM `users` WHERE `username` = '$po'") );
  26.  
  27. $a = $query['liczba'];
  28.  
  29. mysql_query("UPDATE `tabela` SET `liczba` = '$a +1' WHERE `user` = '$po'");
  30.  
  31.  
  32. }
  33.  
  34.  
  35.  
  36.  
  37. ?>
  38. <br />
  39.  
  40. <?php include ('footer.php'); ?>


Ten post edytował iVorIus 4.08.2009, 16:11:00
Go to the top of the page
+Quote Post
screv
post
Post #19





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 3.08.2009

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


czemu do KU*WY nedzy znowu biała kartka?

przecziez cholera powinno chodzić

Ten post edytował screv 4.08.2009, 16:09:03
Go to the top of the page
+Quote Post
iVorIus
post
Post #20





Grupa: Zarejestrowani
Postów: 145
Pomógł: 18
Dołączył: 11.11.2008
Skąd: Pwo

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


A co ma się niby wyświetlić :?:

Przecież nie zdefiniowałeś żadnej instrukcji, która ma coś wyświetlać.
Go to the top of the page
+Quote Post
marian2299
post
Post #21





Grupa: Zarejestrowani
Postów: 272
Pomógł: 9
Dołączył: 6.06.2009

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


Powinno być "Dzieki". Z tego co widzę.
Edytowałem to wyżej,
  1. <?php
  2. mysql_query("UPDATE `users` SET `liczba` = 'liczba+1' WHERE `username` = '".$po."'");
  3. ?>
.
Ale nie wiem już sam.
Go to the top of the page
+Quote Post
screv
post
Post #22





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 3.08.2009

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


Cytat(iVorIus @ 4.08.2009, 17:11:56 ) *
A co ma się niby wyświetlić :?:

Przecież nie zdefiniowałeś żadnej instrukcji, która ma coś wyświetlać.



No a przyjzyj sie.

  1. <a href="index.php"> Wróć </a> <br />

  1. <?php
  2. echo "Dzieki";
  3. ?>


...
Go to the top of the page
+Quote Post
iVorIus
post
Post #23





Grupa: Zarejestrowani
Postów: 145
Pomógł: 18
Dołączył: 11.11.2008
Skąd: Pwo

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


Okeeej, to widze, a w kodzie html cokolwiek się pokazuje?
Go to the top of the page
+Quote Post
Pawel_W
post
Post #24





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


Cytat(marian2299 @ 4.08.2009, 17:14:27 ) *
Powinno być "Dzieki". Z tego co widzę.
Edytowałem to wyżej,
  1. <?php
  2. mysql_query("UPDATE `users` SET `liczba` = 'liczba+1' WHERE `username` = '".$po."'");
  3. ?>
.
Ale nie wiem już sam.

Twoje zmiany nic nie dają, kod jest tylko mniej przejrzysty (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

w tym wypadku chyba lepiej zrobić
  1. <?php
  2. mysql_query("UPDATE `users` SET `liczba` = 'liczba+1' WHERE `username` = '$po'");
  3. ?>

bo mu wtedy tak nie mieszasz
Go to the top of the page
+Quote Post
erix
post
Post #25





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
czemu do KU*WY nedzy znowu biała kartka?

Koleś, to że masz jakieś błędy w składni, to nie znaczy, że masz bluzgać na forum. Przystopuj, jeszcze jeden taki post i dostaniesz moderkę na postowanie.

Zainstaluj sobie IDE z funkcją sprawdzania składni, dopiero leć na forum.
Go to the top of the page
+Quote Post
screv
post
Post #26





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 3.08.2009

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


Cytat(erix @ 4.08.2009, 17:54:08 ) *
Koleś, to że masz jakieś błędy w składni, to nie znaczy, że masz bluzgać na forum. Przystopuj, jeszcze jeden taki post i dostaniesz moderkę na postowanie.

Zainstaluj sobie IDE z funkcją sprawdzania składni, dopiero leć na forum.


Dobra, wielkie sorry, że sie unioslem. Ale przez stronę na, którą idzie ten skrypt zarwalem dobre pare nocy. I poprostu nie chce zarwac kolejnej, bo uwierz mi, jestem już niewyspany.

@EDIT
Po wielu probach, po meczeniu kodu znalezlem pare drobnych bledow, ktore wyrzucaly mi pusta strone. Po naprawieniu tego, powklejalem wasze kody i w końcu dziala na tym:
  1. <?php
  2. $query = mysql_fetch_array( mysql_query( "SELECT `liczba` FROM `users` WHERE `username` = '$po' ") );
  3.  
  4. $a = $query['liczba'] + 1;
  5.  
  6. mysql_query("UPDATE `users` SET `liczba` = '$a' WHERE `username` = '$po' ");
  7. ?>


Jeszcze raz wielkie dzięki dla wszystkich co się właczyli : )

Ten post edytował screv 4.08.2009, 21:17:26
Go to the top of the page
+Quote Post
iVorIus
post
Post #27





Grupa: Zarejestrowani
Postów: 145
Pomógł: 18
Dołączył: 11.11.2008
Skąd: Pwo

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


Czyli moje rozwiązanie działa (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
screv
post
Post #28





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 3.08.2009

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


Dokładnie. Gratuluję i dziękuję ; )
Go to the top of the page
+Quote Post
scanner
post
Post #29





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Jednym zapytaniem będzie szybciej, taniej i wygodniej...
  1. <?php
  2. mysql_query("UPDATE users SET liczba = liczba + 1 WHERE username = '".$po."'");
  3. ?>


Już kilka osób sugerowało takie rozwiązanie, ale zamiast pomyśleć, wolisz bluzgać.
A pozostałych proszę, aby pisząc kod, pisali go bez błędów - bo błędny kod w niczym nie pomaga.
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 14.09.2025 - 14:28