Няколко заявки

Nihtewalk

Registered
Имам проблем,в кода които е показан по доло аз се опитвам да ъпдейтна няколко реда в MySQL таблица на веднъж (то се получи веднъж но след като добавих и ъпдейт за Prefix полето нещо се бъгна)така бъга е:
на тази страница се показват толкова форми,колкото записи има в цялата таблица,но някъде съм допуснал грешка и тя прави така че ВСЕКИ ред в таблицата се ъпдейтва,но с информацията от последната форма (нали ви обясних колко са) а не от всяка ко отделно.Надявам се да сте разбрали проблема,ако не не се притеснявайте да питате.Моят стремеж е да се ъпдейтва секи ред по отделно с информацията от формата която е за него.

Код:
<?php
include "common.php";
if ($_SESSION['is_loged'] !=true){
echo "You need to login as admin to view this page";
}
$sql = "SELECT * FROM countrys ORDER BY name ASC";
$result = mysql_query($sql) or die (mysql_error());
$broi = mysql_num_rows($result);
echo "<form method='post' action=''>";
while($row = mysql_fetch_assoc($result)){
$country = $row['name'];
$rate = $row['rate'];
$prefix = $row['prefix'];

echo "<table>";
echo "<tr><td><input type ='text' name='country_prefix[]' value = '$prefix'/></td>";
echo "<td><input type ='text' name='country_name[]' value = '$country'/></td>";
echo "<td><input type ='text' name='country_rate[]' value = '$rate'/></td></tr>";
echo "<input type = 'hidden' name='hidden' value='1' />";

if ($_POST['hidden'] ==1){

				$sql1 = "SELECT * FROM countrys WHERE name = '$country'";
				$result1 = mysql_query($sql1) or die (mysql_error());
				
				while($rowa = mysql_fetch_assoc($result1)){
				$id = $rowa['id'];
				}
				for($i=0;$i<$broi;$i++){
				$country_name = $_POST['country_name'];
				$country_rate = $_POST['country_rate'];
				$country_prefix = $_POST['country_prefix'];
				
				while(list($key,$name) = each($country_name) AND list($key1,$rate) = each($country_rate) 
				AND list($key2,$prefix) = each($country_prefix)){
				
				
				$id = $id + $i;
				$zaqvka = "UPDATE countrys SET name = '$name',rate ='$rate',prefix = '$prefix'  WHERE id='$id'";	
				$resulta = mysql_query($zaqvka) or die(mysql_error());
				
					
				}
				unset($country_name,$country_rate,$country_prefix);
				
				
				
			
				}
				
echo "changes are maded <a href='index.php'>back</a>";			
}

}

echo "<tr><td align='center'><input type='submit' name='submit' value='Change' /></tr></td>";
echo "</table>";
echo "</form>";
		
?>
 
Пробвай така:
Код:
<?php
include "common.php";
if ($_SESSION['is_loged'] !=true){
echo "You need to login as admin to view this page";
}
$sql = "SELECT * FROM countrys ORDER BY name ASC";
$result = mysql_query($sql) or die (mysql_error());
$broi = mysql_num_rows($result);
echo "<form method='post' action=''>";
while($row = mysql_fetch_array($result)){
$country = $row['name'];
$rate = $row['rate'];
$prefix = $row['prefix'];

echo "<table>";
echo "<tr><td><input type ='text' name='country_prefix[]' value = '$prefix'/></td>";
echo "<td><input type ='text' name='country_name[]' value = '$country'/></td>";
echo "<td><input type ='text' name='country_rate[]' value = '$rate'/></td></tr>";
echo "<input type = 'hidden' name='hidden' value='1' />";

if ($_POST['hidden'] ==1){

            $sql1 = "SELECT * FROM countrys WHERE name = '$country'";
            $result1 = mysql_query($sql1) or die (mysql_error());
            
            while($rowa = mysql_fetch_array($result1)){
            $id = $rowa['id'];
            }
            for($i=0;$i<$broi;$i++){
            $country_name = $_POST['country_name'];
            $country_rate = $_POST['country_rate'];
            $country_prefix = $_POST['country_prefix'];
            
            while(list($key,$name) = each($country_name) AND list($key1,$rate) = each($country_rate)
            AND list($key2,$prefix) = each($country_prefix)){
            
            
            $id2 = $id + $i;
            $zaqvka = "UPDATE countrys SET name = '$name',rate ='$rate',prefix = '$prefix'  WHERE id='$id2'";   
            $resulta = mysql_query($zaqvka) or die(mysql_error());
            
               
            }
            unset($country_name,$country_rate,$country_prefix);
            
            
            
         
            }
            
echo "changes are maded <a href='index.php'>back</a>";         
}

}

echo "<tr><td align='center'><input type='submit' name='submit' value='Change' /></tr></td>";
echo "</table>";
echo "</form>";
      
?>
 
Код:
	<?php
include "common.php";
if ($_SESSION['is_loged'] !=true){
echo "You need to login as admin to view this page";
}
else
{
$sql = mysql_query("SELECT * FROM countrys ORDER BY name ASC") or die(mysql_error());
$broi = mysql_num_rows($sql);
echo "<form method='post' action=''>";
while($row = mysql_fetch_assoc($sql)){
$country = $row['name'];
$rate = $row['rate'];
$prefix = $row['prefix'];

echo "<table>";
echo "<tr><td><input type ='text' name='country_prefix[]' value = '$prefix'/></td>";
echo "<td><input type ='text' name='country_name[]' value = '$country'/></td>";
echo "<td><input type ='text' name='country_rate[]' value = '$rate'/></td></tr>";
echo "<input type = 'hidden' name='hidden' value='1' />";

if ($_POST['hidden']){

            $sql1 = mysql_query("SELECT * FROM countrys WHERE name = '$country'") or die(mysql_error());
           
            
            while($rowa = mysql_fetch_assoc($sql1)){
            $id = $rowa['id'];
            }
            for($i=0;$i<$broi;$i++){
            $country_name = $_POST['country_name'];
            $country_rate = $_POST['country_rate'];
            $country_prefix = $_POST['country_prefix'];
            
            while(list($key,$name) = each($country_name) AND list($key1,$rate) = each($country_rate)
            AND list($key2,$prefix) = each($country_prefix)){
            
            
            $id = $id + $i;
            $zaqvka = mysql_query("UPDATE `countrys` SET `name` = '$name', `rate` = '$rate', `prefix` = '$prefix'  WHERE id='$id'";   
            
            if ($zaqvka)
			{
			echo "changes are maded <a href='index.php'>back</a>";   
			}
			else
			{
			echo "Error !";
			}
               
            }
            unset($country_name,$country_rate,$country_prefix);
            
            
            
         
            }
            
      
}

}
}

echo "<tr><td align='center'><input type='submit' name='submit' value='Change' /></tr></td>";
echo "</table>";
echo "</form>";
      
?>
 

Back
Горе