2016-03-22 29 views
0

Ich versuche gerade ein kleines Programm in php/sqlite zu erstellen (ich bin SEHR neu in php und sqlite), wo ich die Menge bereits gespeicherter Produkte befüllen und auch neue Produkte hinzufügen kann.PHP/sqlite Datenbank gibt kein Ergebnis zurück

Ich habe bereits eine Datenbank erstellt, die zahlreiche Einträge enthält.

Ich habe es geschafft, diesen Code zu erstellen, aber es gibt nichts zurück oder gibt mir irgendwelche Fehler.

Kann jemand darauf hinweisen, was ich falsch gemacht habe oder eine mögliche Lösung ?!

Hier ist mein Code ...

<?php 

$db=sqlite_open("warehouse.db"); 

if(isset($_POST['warehouse']) && strcmp($_POST['warehouse'],"") !=0){ 

    $ItemID = sqlite_escape_string($_POST["warehouse"]); 

    $ItemName=$_POST['warehouse']; 

    $Quantity=$_POST['warehouse']; 

$qr="UPDATE warehouse SET Quantity = $Quantity WHERE ItemName = (SELECT id FROM warehouse WHERE itemName='$ItemName')"; 

    sqlite_query($db,$qr); 

echo "<h2>". "Show warehouse"."</h2>"; 

echo "<table border=1>\n"; 

echo "</br>\n"; 

$result=sqlite_query($db,"SELECT * from warehouse WHERE warehouse.ItemName = warehouse.id"); 

echo "<th>Item ID</th><th>Item Name</th><th>Item Quantity</th>\n"; 

while($row=sqlite_fetch_array($result,SQLITE_ASSOC)) 
{ 
    echo "<tr>\n"; 
    echo "<td>" . $row['warehouse.ItemId'] . "</td>\n"; 
    echo "<td>" . $row['warehouse.ItemName'] . "</td>\n"; 
    echo "<td>" . $row['warehouse.Quantity'] . "</td>\n"; 
    echo "</tr>\n"; 
} 
echo "</table>\n"; 


} 
sqlite_close($db); 

?> 
+0

Wahrscheinlich ist '$ _POST ['warehouse']' nicht gesetzt oder leer. Dann wird der gesamte Code übersprungen. Bitte ändern Sie Ihren Code, um einige Debug-Informationen zu drucken und versuchen Sie, das Problem zu erkennen. Wenn es nicht hilft, versuchen Sie, einen minimalen Code zu erstellen, der das Problem veranschaulicht. – infiniteRefactor

Antwort

0

Der Code, den Sie in gewickelt gezeigt haben, ist:

if(isset($_POST['warehouse']) && strcmp($_POST['warehouse'],"") !=0){ 
    // all your code, including showing the current data 
} 

So wird es nur dann ausgegeben generieren, wenn Sie etwas, um es zu veröffentlichen, dh einreichen eine Form dazu. Wenn Sie diese Seite nur in einem Browser aufrufen, führen Sie einen GET aus. Das einzige, was passiert, ist, dass Ihre Datenbank geöffnet und sofort geschlossen wird, nichts innerhalb des POST-Tests ausgeführt wird und keine Ausgabe für den Browser generiert wird.

Wahrscheinlich möchten Sie die "}", die den POST-Test bis knapp über Ihrem "Show Warehouse" -Titel schließt, verschieben, so dass Sie zumindest Ihre Datentabelle sehen, wenn Sie nur GET verwenden.

if(isset($_POST['warehouse']) && strcmp($_POST['warehouse'],"") !=0){ 
    // code for updating data 
} 
echo "<h2>". "Show warehouse"."</h2>"; 
// rest of your display code 
+0

@TheBiz Hat diese Hilfe geholfen? –

Verwandte Themen