2016-05-19 6 views
0

lassen Sie mich den Code erklären, ich bekomme Daten von der db und zeigen Sie die Daten in Texteingabe dann wenn der Benutzer Änderungen vornehmen, bekomme ich die Benutzereingaben und aktualisieren Sie die Tabelle jedoch, wenn es aktualisiert zu leeren Daten PHP Update immer aktualisieren leere Zeichenfolge

<?php 
echo "<form action='' method='get'>"; 

echo "<td class='data'><input type='product_name' id='product_name' value=" . $row['product_name'] . "> </td>"; 
echo "<td class='data'><input type='products_price' id='products_price' value=" . $row['products_price'] . "> </td>"; 
echo "<td class='data'><input type='products_desc' id='products_desc' value=" . $row['products_desc'] . "> </td>"; 

echo "</form>"; 

echo "</tr>"; 
echo "</table>"; 
echo "<form action='' method='POST'> 
       <input name='update' type='submit' value='Update' style='margin-left: 720px'> 
       </form>"; 
$product_name = isset($_GET['product_name']) ? $_GET['product_name'] : ''; 

$products_desc = isset($_GET['products_desc']) ? $_GET['products_desc'] : ''; 

$products_price = isset($_GET['products_price']) ? $_GET['products_price'] : ''; 
if (isset($_POST["update"])) { 




    $sql1 = "UPDATE tbl_products SET products_desc='" . $products_desc . "',product_name='" . $product_name . "',products_price='" . $products_price . "' WHERE products_id='" . $product_id . "'"; 

    mysqli_query($conn, $sql1) or die(mysqli_error($conn)); 
    echo "yess"; 

} 
?> 
+0

Sie haben erklärt, was Sie tun, aber Sie haben uns nicht gesagt, was falsch ist oder was nicht funktioniert oder wenn es irgendwelche Fehler ...... etc. usw. etc. –

+0

mögliches Duplikat von [PHP: "Notice: Undefinierte Variable" und "Notice: Undefined Index"] (http://stackoverflow.com/questions/4261133/php-notice-undefined-variable-and-notice-) undefined-index) –

Antwort

1

Ihre input Elemente haben keine name Attribut, so Dinge wie $_GET['product_name'] immer leer sein wird. Das name Attribut ist der Schlüssel in dem Schlüssel/Wert-Paar, das an den Server gesendet wird. Die type Attribute sind alle gebrochen. (Obwohl ich der Browser vermuten ist automatisch "Korrektur", die von einer Texteingabe säumigen.)

Fügen Sie das name Attribut (und beheben type):

<input type='text' name='product_name' id='product_name' ... 

Zusätzlich, Sie haben zwei Formen. Wenn Sie also auf Ihre Schaltfläche klicken, gibt das Formular keinen der Eingaben ab. Weil sie in einer anderen Form sind.

Setzen Sie sie alle in die gleiche form, und entscheiden, ob Sie GET oder POST (seit Ihrem serverseitigen Code, brauchen wird zu wissen) verwenden möchten.

+0

danke ich kann nicht glauben, dass ich diesen fehler verpasst habe –

0

Sie definiert in einem Formular-Tag und einreichen Form in der eine andere Form-Tag Ihre Daten Form:

<form action='' method='POST'> 
    <input name='update' type='submit' value='Update' style='margin-left: 720px'> 
</form> 

echo "<form action='' method='get'>"; 

echo "<td class='data'><input type='product_name' id='product_name' value=" . $row['product_name'] . "> </td>"; 
echo "<td class='data'><input type='products_price' id='products_price' value=" . $row['products_price'] . "> </td>"; 
echo "<td class='data'><input type='products_desc' id='products_desc' value=" . $row['products_desc'] . "> </td>"; 

echo "</form>"; 

Wenn Sie Ihre erste Form einreichen, aber Ihre Daten auf eine andere Form

das ist, was ist falsch