2017-11-18 2 views
-2

Das ist process_upcategory.php Ich möchte den Kategorienamen oder die Kategorie-ID mit einem anderen Kategorienamen/ID durch seine Kategorie-ID oder durch seinen Kategorienamen aktualisieren. Ich bin neuWie man zwei Werte in PHP speichert und bekommt?

<?php 
    require('includes/config.php'); 
    if(!empty($_POST)) 
    { 
     $msg=array(); 
     if(empty($_POST['cat'])) 
     { 
      $msg[]="Please full fill all requirement"; 
     } 

     if(!empty($msg)) 
     { 
      echo '<b>Error:-</b><br>'; 

      foreach($msg as $k) 
      { 
       echo '<li>'.$k; 
      } 
     } 
     else 
     { 


      $cat_nm=$_POST['cat[0]']; 
      $cat_id=$_POST['cat[1]']; 

      $query= "UPDATE `category` SET cat_nm='$cat_nm' WHERE cat_id='$cat_id'"; 

      mysqli_query($conn,$query) or die("can't Execute..."); 

      mysql_close($link); 
      header("location:category.php"); 
     } 


    } 

    else 
    { 
     header("location:index.php"); 
    } 
?> 

Nun ist dies category.php, nur ein Code-Snippet PHP. Nicht ganzer Code

Ich möchte den Kategorienamen mit einem anderen Kategorienamen anhand seiner Kategorie-ID oder seines Kategorienamens aktualisieren. Ich bekomme undefinierten Index cat [0] und cat [1]

+0

Prüfung auf Fehler dann uns sagen, was jene –

+0

waren nicht zu erwähnen verschiedenen mysql apis Mischen und die api mit zu verbinden, ist nicht bekannt. –

+0

undefined Index cat [0] und cat [1] – Whateverr

Antwort

0

Wenn Sie einen Eingabe-Namen mit [] beenden, wird es durch php in ein Array konvertiert. Der richtige Weg, um die Werte in diesem Fall zu erhalten, wäre in etwa so:

$cat=$_POST['cat']; 
$cat_nm=$cat[0]; 
$cat_id=$cat[1]; 
+0

Das Setzen der cat_id in ein separates '

0

Ich kombinierte die beiden Routinen in einem Skript.

Ich habe 'sub' zum Formular hinzugefügt, um zu unterscheiden, wann das Formular gesendet wurde oder nicht.

Ich verwendete list() in der Abfrage Ergebnisschleife. Gebrauchte
mysqli_fetch_array($result, MYSQLI_NUM) statt mysqli_fetch_assoc($res)

gebrauchte foreach() in einer Schleife durch die $ _POST [ 'Katze']

Added 'Wert' auf die <option value=""> die ID

ausgesch das Umschalten von HTML-Modus zu halten in den PHP-Modus mit HEREDOC.

<?php 
if (intval($_POST['sub']) == 1){ 
    $newcat = $_POST['new']; 
    foreach($_POST['cat'] as $key=>$value){ 
    if(strlen($newcat[$key]) > 0){ 
     mysqli_query($conn,"UPDATE `category` SET `cat_nm`='$newcat[$key]' WHERE `cat_id`='$value'"); 
    } 
    } 
} 
echo <<<EOT 
<html><head><style>h4,h3{color:darkgreen;margin:.2em;}</style></head><body> 
<form action="#" method='POST'> 
    <h3>UPDATE CATEGORY</h3>  
    <h4>Old Category</h3> 
    <select name="cat[]" multiple> 
EOT; 

$sql="SELECT `cat_nm`, `cat_id` FROM `category` "; 
$result=mysqli_query($conn,$sql); 
while(list($cat_nm,$cat_id) = mysqli_fetch_array($result, MYSQLI_NUM)){ 
    echo " <option value=\"$cat_id\">$cat_nm</option>\n"; 
} 
echo <<<EOT 
    </select> 
    <h3>New Category</h3> 
    <input type="text" name="new[0]" /><br/> 
    <input type="text" name="new[1]" /><br/> 
    <input type="hidden" name="sub" value="1" /><br/> 
    <input type="submit" value=" UPDATE /> 
</form> 
</body></html> 
EOT; 
?> 
Verwandte Themen