Проблем с обновяване

Dizasterr

Registered
Здравейте! Въпросът ми може да е малко тъп, но не се сещам как мога да направя, така че като извеждам от базата данни и след всеки запис да има бутон - до тук всичко е наред, но как да стане когато натиснеш бутона и той да оновява спрямо своите показатели в базата данни. Пробвах с $_GET, но несатава. Когато натисна бутона и ме пренасочва всеки път към едно и също нещо. Благодаря предварително.
 
Нещо такова ще е:
Код:
<?php
if(isset($_POST['id']) && is_numeric($_POST['id'])) {
$id = $_POST['id'];
pravish neshto...
} else {

while(drundrun) {
....
izkarvash si
....
$id = $row['id'];
echo <<<FORMA
<form action="" method="post">
<input type="hidden" name="id" value="$id"/>
<input type="submit" name="submit" value="Butona"/>
</form>
FORMA;
} //while
} //if
?>
 
Пример:
include("conn.php");
if(isset($_GET['id'])){
mysql_query("UPDATE table SET pole='stojnost' WHERE id='".$_GET['id']."') or die(mysql_error()); //update на това поле, чието ID е равно на получената чрез GET стойност
} else {
$select_all_ids = mysql_query("SELECT * FROM table") or die(mysql_error());
while($row = mysql_fetch_object($select)){
echo "<a href='?id={$row->id}'>Линк с ID $row->id</a><br />"; //извеждаме всички налични в БД записи и техните ID -та
}
}
Това ти е само DEMO!Ako има нещо питай :wink:
 
Аз съм го направил така:
Код:
		while($row=mysql_fetch_array($select)) {
		echo "<form method='get' action=''>";
		echo "Име: ".$row['name']."<br/>";
		echo "Описание: ".$row['description']."<br/>";
		echo "Цена: ".$row['price']."<br/><br/>";
		echo "Атака: ".$row['attack']."<br/><br/>";
		echo "Защита: ".$row['defence']."<br/><br/>";
		echo "<img src='".$row['picture']."' width='100px' height='100px'><br/><br/>";
		echo "<input type='submit' name='submit' value='Построй'>";
				echo "</form>";
			if(isset($_GET['submit'])) {
		
		header("Location: ****.php?name=".$row['name']."&&id=".$row['id']."");
		
		}
Има и още едно, а кода, който го обработва е така:
Код:
<?php
		require_once("../connection.php");
		mysql_query("SET NAMES cp1251");
		
	
		
		$name=$_GET['name'];
		$pid=$_GET['id'];
		
				echo "<br/><br/>";
				echo $name;
				echo "<br/><br/>";
				
		$logged=$_SESSION['login'];
		
		$user=mysql_query("SELECT * FROM `users` WHERE `user`='$logged'") or die(mysql_error());
		
		$rows=mysql_fetch_assoc($user);
		
		$mymoney=$rows['money'];
		$myattack=$rows['attack'];
		$mydefence=$rows['defence'];
		$myexp=$rows['exp'];
		
		$select=mysql_query("SELECT * FROM `extras` WHERE `name`='$name'") or die(mysql_error());
		
		$row=mysql_fetch_assoc($select);
		$attack=$row['attack'];
		$defence=$row['defence'];
		$price=$row['price'];
		$exp=$row['exp'];
		
		$allattack=$myattack + $attack;
		$alldefence=$mydefence + $defence;
		$allexp=$myexp + $exp;
		
		echo "<br/><br/>";		
		echo $allattack;
		echo "<br/><br/>";
		echo $alldefence;
		echo "<br/><br/>";
		echo $allexp;
		echo "<br/><br/>";
		
		if($mymoney >= $price) {
		
		$update=mysql_query("UPDATE `users` SET `attack`='$allattack', `defence`='$alldefence', `exp`='$allexp' WHERE `user`='$logged'") or die(mysql_error());
		
			if($update) {
				echo "Вие успешно закупихте подобрението!";
			}else{
				echo "Възникна грешка пр закупуването на подобрението!";
			}
			
		}else{ 
			echo "Нямате достатъчно пари!";
		}
		
		
		
		

?>
 
Кода не работи. И при натискане върху някое от другите пак си отваря едно и също нещо - говоря за запис в базата данни и не прави обновление.
 
Dizasterr каза:
emagi каза:
Еми дай едно :
echo $_GET['id'];
да видиш какво ти праща!
И на двете изпраща едно и също.
КОи са тези двете, ве човек!
Всяка дума ли трябва да ти се вади с ченгел от устата!
Имам вече два поста, които можеше да не ги пиша!
Научете се като искате нещо да давате инфо, и то изчерпателно.
Тука никой не може да гадае!
 
Извинявам се! Ето целия код:
Код:
<?php
		require_once("../connection.php");
		mysql_query("SET NAMES cp1251");
		
		$logged=$_SESSION['login'];

		$sql=mysql_query("SELECT * FROM `users` WHERE `user`='$logged'") or die(mysql_error());
		$r=mysql_fetch_assoc($sql);
		$id=$r['id'];
		$myattack=$r['attack'];
		$mydefence=$r['defence'];
		$mymoney=$r['money'];
		
		echo "<td width='300px' valign='top'>";
		$select=mysql_query("SELECT * FROM `extras`") or die(mysql_error());

		while($row=mysql_fetch_array($select)) {
		echo "<form method='get' action=''>";
		echo "Име: ".$row['name']."<br/>";
		echo "Описание: ".$row['description']."<br/>";
		echo "Цена: ".$row['price']."<br/><br/>";
		echo "Атака: ".$row['attack']."<br/><br/>";
		echo "Защита: ".$row['defence']."<br/><br/>";
		echo "<img src='".$row['picture']."' width='100px' height='100px'><br/><br/>";
		echo "<input type='submit' name='submit' value='Построй'>";
		echo "</form>";
		echo "<br/><br/>";
				echo "</form>";
			if(isset($_GET['submit'])) {
		
		header("Location: buyupgrades.php?name=".$row['name']."&&id=".$row['id']."");
		
		}
		
		}
		
?>
В тази база данни имам два записа, но и двата водят към второто записано с ид 2.
 
Код:
<?php
      require_once("../connection.php");
      mysql_query("SET NAMES cp1251");
      
      $logged=$_SESSION['login'];

      $sql=mysql_query("SELECT * FROM `users` WHERE `user`='$logged'") or die(mysql_error());
      $r=mysql_fetch_assoc($sql);
      $id=$r['id'];
      $myattack=$r['attack'];
      $mydefence=$r['defence'];
      $mymoney=$r['money'];
      
         if(isset($_GET['submit'])) {
      
      header("Location: buyupgrades.php?name=".$_GET['name']."&id=".$_GET['id']."");
      
      }

      echo "<td width='300px' valign='top'>";
      $select=mysql_query("SELECT * FROM `extras`") or die(mysql_error());

      while($row=mysql_fetch_array($select)) {
      echo "<form method='get' action=''>";
      echo "Име: ".$row['name']."<br/>";
      echo "Описание: ".$row['description']."<br/>";
      echo "Цена: ".$row['price']."<br/><br/>";
      echo "Атака: ".$row['attack']."<br/><br/>";
      echo "Защита: ".$row['defence']."<br/><br/>";
      echo "<img src='".$row['picture']."' width='100px' height='100px'><br/><br/>";
echo "<input type='hidden' name='id' value='".$row['id']."'/>";
echo "<input type='hidden' name='name' value='".$row['name']."'/>";
      echo "<input type='submit' name='submit' value='Построй'>";
      echo "</form>";
      echo "<br/><br/>";
            echo "</form>";

      
      }


      
?>
:roll:
 
alex95_bg_2 каза:
Код:
<?php
      require_once("../connection.php");
      mysql_query("SET NAMES cp1251");
      
      $logged=$_SESSION['login'];

      $sql=mysql_query("SELECT * FROM `users` WHERE `user`='$logged'") or die(mysql_error());
      $r=mysql_fetch_assoc($sql);
      $id=$r['id'];
      $myattack=$r['attack'];
      $mydefence=$r['defence'];
      $mymoney=$r['money'];
      
         if(isset($_GET['submit'])) {
      
      header("Location: buyupgrades.php?name=".$_GET['name']."&id=".$_GET['id']."");
      
      }

      echo "<td width='300px' valign='top'>";
      $select=mysql_query("SELECT * FROM `extras`") or die(mysql_error());

      while($row=mysql_fetch_array($select)) {
      echo "<form method='get' action=''>";
      echo "Име: ".$row['name']."<br/>";
      echo "Описание: ".$row['description']."<br/>";
      echo "Цена: ".$row['price']."<br/><br/>";
      echo "Атака: ".$row['attack']."<br/><br/>";
      echo "Защита: ".$row['defence']."<br/><br/>";
      echo "<img src='".$row['picture']."' width='100px' height='100px'><br/><br/>";
echo "<input type='hidden' name='id' value='".$row['id']."'/>";
echo "<input type='hidden' name='name' value='".$row['name']."'/>";
      echo "<input type='submit' name='submit' value='Построй'>";
      echo "</form>";
      echo "<br/><br/>";
            echo "</form>";

      
      }


      
?>
:roll:
Така стана. Благодаря. А имате ли идея защо не обновява чрез втория код ?
 
Правиш го грешно, никъде не подаваш id-то на записа към който е бутона ;) И той винаги ще редиректва на последния, защото си сложил кода в while-то
 

Back
Горе