[ROZWIĄZANE] Zapis do bazy sql po wybraniu...
Najlepsza odpowiedź plx211 11.04.2015 09:30
wyświetl sobie zawartość zmiennych, oraz odpal zapytanie z konsoli (aby zobaczyć czy na pewno działa)
Przejdź do postu
kijkol
11.04.2015
Witam.
Mam mały problem, pobieram dane z bazy sql, wyświetlają się tak jak powinny, ale jak chce wykonać zapis do bazy sql wciskając button to zapisuje mi zawsze ostatni wyświetlony wpis - nie ważne ile ich jest czy 2 czy 10 zawsze ostatni.
Mój kod:
if(mysql_num_rows($wynik) > 0) { while($r = mysql_fetch_assoc($wynik)) { $cena = $r['cena']; $id = $r['id_budynek']; echo '<tr> <th style="width: 100px" style="vertical-align: middle;"> <font size="4" color="green">'.$r['nazwa'].'</font> </th> <th style="width: 100px" style="vertical-align: middle;">'.$r['ilosc'].' szt</th> <th style="width: 100px" style="vertical-align: middle;">$'.$r['zysk'].'</th> <th style="width: 100px" style="vertical-align: middle;">$'.round($r['cena']).'</th> <th style="width: 100px" style="vertical-align: middle;">'; if ($kasa >= $cena ){ echo "<input type=\"hidden\" name=\"id\" value='$id' /> <input type='submit' name='ok' class='medium blue niceButton' value='Kup'</th></tr></form>"; } else { echo '<a href="#" class="medium red niceButton">Brak $</a></th></tr>'; } } } if(isset($_POST['ok']) && $kasa >= $cena) { $id = $_POST['id']; $sprawdz = mysql_query("SELECT * FROM `gra_budynki` WHERE nick='$nick' && id_budynek = '$id'"); $s = mysql_fetch_assoc($sprawdz); $cena=$s['cena']; $ilosc=$s['ilosc']; $zysk=$s['zysk']; $ulepsz=$s['ulepsz']; $ilosc1=$ilosc+1; $zysk1=$zysk+$ulepsz; $cena2=$cena+($cena*0.1); $cena1=round($cena2); $kasa1=$kasa-$cena1; $query = "UPDATE gra_budynki SET ilosc = '$ilosc1' WHERE nick='$nick' && id_budynek = '$id'"; $query2 = "UPDATE gra_budynki SET zysk = '$zysk1' WHERE nick='$nick' && id_budynek = '$id'"; $query3 = "UPDATE gra_budynki SET cena = '$cena1' WHERE nick='$nick' && id_budynek = '$id'"; $query4 = "UPDATE gra_dane SET kasa = '$kasa1' WHERE nick='$nick'"; if(mysql_query($query) && mysql_query($query2) && mysql_query($query3) && mysql_query($query4)) echo "wykonałem ".$id.""; }
ParadisO
11.04.2015
Problemem jest && w
$query = "UPDATE gra_budynki SET ilosc = '$ilosc1' WHERE nick='$nick' && id_budynek = '$id'"; $query2 = "UPDATE gra_budynki SET zysk = '$zysk1' WHERE nick='$nick' && id_budynek = '$id'"; $query3 = "UPDATE gra_budynki SET cena = '$cena1' WHERE nick='$nick' && id_budynek = '$id'";
Zamień w te 3 && na AND i powinno zadziałać.
ParadisO
11.04.2015
Zamiast 3 pierwszych query zrób jedno bo Ci tyle nie potrzeba
$query = "UPDATE gra_budynki SET ilosc = '$ilosc1' , zysk = '$zysk1' , cena = '$cena1' WHERE nick='$nick' AND id_budynek = '$id'";
Czasami problemem są ' ' spróbuj je usunąć i zobacz czy przejdzie.
Jeżeli nie to podaj jakie kolumny masz w tabeli gra_budynki
kijkol
11.04.2015
Wiem, że mi nie potrzeba 3, ale to ma na razie tylko zadziałać, a potem zajmę się upiększaniem
Dalej coś nie trybi ;/
Moje kolumny
id, id_budynek, nick, ilosc, cena, zysk, nazwa, cena, ulepsz
nick oraz nazwa jest na varchar, a reszta na int
Błąd jest raczej z pobraniem $id niż zapisem do bazy
Użytkownik kijkol edytował ten post 11.04.2015 08:53
Najlepsza odpowiedź
plx211
11.04.2015
wyświetl sobie zawartość zmiennych, oraz odpal zapytanie z konsoli (aby zobaczyć czy na pewno działa)
Użytkownik plx211 edytował ten post 11.04.2015 09:30
kijkol
11.04.2015
Błąd odnaleziony w złym miejscu było <form action="#" method="POST">
Za próby pomocy po plusiku
Użytkownik kijkol edytował ten post 11.04.2015 10:10
plx211
11.04.2015
... nick oraz nazwa jest na varchar, a reszta na int
$query = "UPDATE gra_budynki SET ilosc = $ilosc1 , zysk = $zysk1 , cena = $cena1 WHERE nick='$nick' AND id_budynek = $id";
MAGNET
12.04.2015
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL