Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Utpade nie działa.
Forum PHP.pl > Forum > Przedszkole
Kenexos
Witam mam takie bazy:
cena
accounts
player_depo
I skrypt który wiele przeszedł i jest chyba zgubiony:(
  1. <form action="index.php?show=wymien" method="post">
  2. <select name="rzecz">
  3.  
  4. <option value="748">748 za 10PKT</option>
  5. <option value="5">234 za 5PKT</option>
  6. <option value ="cena">Przedmiot</option>
  7.  
  8. </select>
  9.  
  10. <input type="submit" name="sumbit" value="sumbit" />
  11.  
  12. </form>
  13.  
  14. <?php
  15.  
  16. $mysql= mysql_connect("localhost", "root", "");
  17.  
  18. $cenax=mysql_query("select cena from cena where id_rzecz='".$rzecz."'");
  19.  
  20.  
  21.  mysql_query("UPDATE accounts SET pkt=pkt-'".$cena."' WHERE accno='".$numer."'");
  22. mysql_query("INSERT INTO player_depotitems(player_id, depot_id, pid, sid, itemtype, count, attributes) values('$playerid','','783','','$item','1','')");
  23.  
  24. $result=mysql_query($cenax);
  25. $row=mysql_fetch_array($result);
  26. echo $row[0]
  27. or die("Zapytanie niepoprawne");
  28. ?>

W sesji posiadam $numer !
Chodzi o:
Mam w account pole PKT i w rekordzie 40 wpisane. W cena mam id rzecz i cena id rzecz 748 a cena 10. Chciałbym aby po wybraniu z select cyfr jakiś np 748 odejmowało od account pkt tyle ile jest wpisane w cena (id rzecz (748) cena 10) czyli by z accoount odjeło 10 pkt i zostanie 30! smile.gif I na koncu dodało nowy rekord do players_depoitems oczywiśćie jeśli niema wymaganej ilosci PKT to nie dodaje rekordu i wyświetla sie błąd że niema wymaganej ilości..
Skrypt wydaje się łatwy ale mi niechce działać :/
Skrypt działał wcześniej dodał rekord do depot ale i tak nie odjął PKT i przestał działać.
Męczę się z tym od paru dni i nie działa sad.gif

Dziękuje i pozdrawiam!
Solimo
Jak to działał i nagle sam z siebie przestał? W sesji posiadasz numer, ale czy posiadasz go w zmiennej $numer? Przy pokazanej bazie masz nazwę "player_depo" a w zapytaniu "player_depoitems". Nie widze też deklaracji wartości zmiennych, które chcesz wprowadzić do bazy. Z tego kodu wynika, że one są puste.
Kenexos
Nie bo nie działał jak miał coś przestawiłem i już nie działa nic.
Zmienną posiadam.
player_depotitems poprawna nazwa.
Solimo
Dobrze, ale o ile z formularza wychodzi $_POST[rzecz]=748 lub 5 lub 'cena' to nie wiem skąd ma się wziąć $cena, którą wprowadzasz do formularza. Gdzie masz zdeklarowane $rzecz oraz $cena?

Kod
$cenax=mysql_query("select cena from cena where id_rzecz='".$rzecz."'"
$result=mysql_query($cenax););


To chyba daje nam coś takiego

Kod
$result=mysql_query(mysql_query("select cena from cena where id_rzecz='".$rzecz."'"));


Tak wolno? Może pokaż jakie błędy zwraca skrypt.
Kenexos
Niema żadnych błędów biggrin.gif

@edit
Pomoże ktoś?

Znalazłem tutka na select..:S
http://www.kess.snug.pl/index.php?sid=10&pid=30
może to coś pomorze?? Bo widzę że nikt chętny do pomocy
luck
Zrób to w oparciu o triggery i będziesz miał spokój raz na zawsze.
rzymek01
Cytat(Kenexos @ 24.08.2008, 11:56:25 ) *
może to coś pomorze??

nie, bo kujawsko-pomorskie albo mazowieckie sadsmiley02.gif
Kenexos
Napisałem tak na szybko takie coś:
  1. <?
  2. $nickk = ''.$_SESSION['nickk'].'';
  3. ?>
  4. <?
  5. echo $nickk;
  6. ?>

  1. <form action="" method="post">
  2. <select name="rzecz" onchange="this.form.submit()">
  3. <option value="">Wybierz dział</option>
  4. <option value="454">454</option>
  5. <option value="333">333</option>
  6. <option value="222">222</option>
  7. </form>

  1. <?php
  2.  
  3. // parametry serwera
  4. $serwer = "localhost"; // nazwa serwera mysql
  5. $login = "root"; // login do bazy
  6. $haslo = ""; // haslo do bazy
  7. $baza  = "ots"; // nazwa bazy
  8. $tabela = "ceny"; // nazwa tabeli
  9. $rzecz = $_POST['rzecz']; 
  10. if($rzecz) {
  11.  
  12. // łączymy się z bazą danych
  13. if (mysql_connect($serwer, $login, $haslo) and mysql_select_db($baza)) { 
  14.  
  15. $wynik = mysql_query("SELECT * FROM ceny WHERE rzecz='$rzecz'")
  16. or die("Błąd w zapytaniu!");
  17.  
  18. }
  19. else echo "Nie mogę połączyć się z bazą danych!"; 
  20.  
  21. // wyświetlany wyniki zapytania
  22. while($rek = mysql_fetch_array($wynik)) {
  23. echo $rek['cena']."<br />";
  24. }
  25. }
  26.  
  27.  mysql_query("UPDATE accounts SET pkt=pkt-'".$rek['cena']."' WHERE accno='$nickk'");
  28. mysql_query("INSERT INTO player_depotitems(player_id, depot_id, sid, pid, itemtype, count, attributes, enchantable) values('$nickk','0','".$rek['rzecz']."','0','0','0','0','0')");
  29.  
  30.  
  31.  
  32. ?>


I pojawiają się rekordy cena ale nie dodaje rekordu do player depoitems i nie odejmuje z accounts pkt sad.gif
Kicok
  1. <?php
  2.  
  3. $sql = 'SELECT tresc, twojego, zapytania, z, jakimis, ' . $zmiennymi . ' FROM tabela';
  4.  
  5. $result = mysql_query( $sql ) or die( '<b>SQL:</b> ' . $sql . '<br><br><b>Error:</b> ' . mysql_error() );
  6.  
  7. ?>

i tak z każdym zapytaniem które podejrzewasz o niedziałanie.


PS. Coś mi mówi, że twój następny post w tym temacie to będzie pytanie "dlaczego zmienne: $rek['cena'] i $rek['rzecz'] są puste?" smile.gif
Kenexos
yy zrobiłem coś takiego:
  1. <?php
  2. // łączymy się z bazą danych
  3. if (mysql_connect($serwer, $login, $haslo) and mysql_select_db($baza)) { 
  4.  
  5. $wynik = mysql_query("SELECT cena FROM ceny WHERE rzecz='$rzecz'")
  6.  or die("Błąd w zapytaniu!");
  7. $result = mysql_query( $wynik ) or die( '<b>SQL:</b> ' . $wynik . '<br><br><b>Error:</b> ' . mysql_error() );
  8.  
  9. }
  10. else echo "Nie mogę połączyć się z bazą danych!"; 
  11.  
  12. // wyświetlany wyniki zapytania
  13. while($rek = mysql_fetch_array($wynik)) {
  14. echo $rek['cena']."<br />";
  15. }
  16. }
  17.  
  18. $wynik1 = mysql_query("UPDATE accounts SET pkt=pkt-'".$rek['cena']."' WHERE accno='$nickk'")
  19. or die('Błąd zapytania');
  20.  $result = mysql_query( $wynik1 ) or die( '<b>SQL:</b> ' . $wynik1 . '<br><br><b>Error:</b> ' . mysql_error() );
  21. echo 'Dane zostały zaktualizowane<br>'; 
  22.  
  23.  $wynik2 = mysql_query("INSERT INTO player_depotitems(player_id, depot_id, sid, pid, itemtype, count, attributes, enchantable) values('$nickk','0','".$rek['rzecz']."','0','0','0','0','0')")
  24. or die('Błąd zapytania');
  25. echo 'Dane zostały zaktualizowane'; 
  26. $result = mysql_query( $wynik2 ) or die( '<b>SQL:</b> ' . $wynik2 . '<br><br><b>Error:</b> ' . mysql_error() );
  27.  
  28.  
  29. ?>

SQL: Resource id #8

Error: Something is wrong in your syntax obok 'Resource id #8' w linii 1

SQL: 1

Error: Something is wrong in your syntax obok '1' w linii

;D
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.