Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie
PHP

[ROZWIĄZANE] Zapis do bazy sql po wybraniu danych z pętli

php

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


  • Zamknięty Temat jest zamknięty
8 odpowiedzi w tym temacie

#1 kijkol

    Profesjonalista

  • Użytkownik

Reputacja: 31
Życzliwy

  • Postów:174
  • Lokalizacja:Witów
Offline

Napisano 11.04.2015 08:05

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."";
	}

  • +
  • -
  • 0

#2 ParadisO

    Wszechmogący

  • Power User

Reputacja: 128
Zaawansowany

  • Postów:689
  • Lokalizacja:Częstochowa
Offline

Napisano 11.04.2015 08:11

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ć.


  • +
  • -
  • 0

#3 kijkol

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 31
Życzliwy

  • Postów:174
  • Lokalizacja:Witów
Offline

Napisano 11.04.2015 08:14

Dalej wykonuje ostatni wpis ;/


  • +
  • -
  • 0

#4 ParadisO

    Wszechmogący

  • Power User

Reputacja: 128
Zaawansowany

  • Postów:689
  • Lokalizacja:Częstochowa
Offline

Napisano 11.04.2015 08:21

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


  • +
  • -
  • 1

#5 kijkol

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 31
Życzliwy

  • Postów:174
  • Lokalizacja:Witów
Offline

Napisano 11.04.2015 08:33

Wiem, że mi nie potrzeba 3, ale to ma na razie tylko zadziałać, a potem zajmę się upiększaniem ;P

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

  • +
  • -
  • 0

#6 plx211

    Wszechpomocny

  • Użytkownik

Reputacja: 231
Wszechwidzący

  • Postów:397
  • Lokalizacja:Polska
Offline

Napisano 11.04.2015 09:30   Najlepsza odpowiedź

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

  • +
  • -
  • 1

#7 kijkol

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 31
Życzliwy

  • Postów:174
  • Lokalizacja:Witów
Offline

Napisano 11.04.2015 10:06

Błąd odnaleziony w złym miejscu było <form action="#" method="POST">

 

Za próby pomocy po plusiku ;P

 


Użytkownik kijkol edytował ten post 11.04.2015 10:10

  • +
  • -
  • 0

#8 plx211

    Wszechpomocny

  • Użytkownik

Reputacja: 231
Wszechwidzący

  • Postów:397
  • Lokalizacja:Polska
Offline

Napisano 11.04.2015 10:15


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

  • +
  • -
  • 0

#9 MAGNET

    SourceLearned ;)

  • Moderator

Reputacja: 661
Wszechmogący

  • Postów:1 535
  • GG:
  • Imię:Olek
  • Lokalizacja:Dalekoo
Offline

Napisano 12.04.2015 16:00

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, report.png raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: php

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych