Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2017
    Messaggi
    119

    Update set sottrazione variabile

    Codice PHP:
    $barcode $_GET['barcode_da_index2'];
    $quantita_vendita $_GET['quantita_vendita'];

    if(
    $quantita_vendita 1)
    {
    echo 
    "quantità deve essere superiore a zero";    
    }

    else{
    $sql "UPDATE inventario SET Quantita_rimaste='Quantita_rimaste - $quantita_vendita' WHERE Cod_prodotto='$barcode'"
    Temo di sbagliare la query sql... come faccio quella operazione? (voglio sottrarre alle quantita rimaste le quantita di vendita che mi prendo dalla variabile $quantita_vendita)

  2. #2
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,578
    Se quantita_rimaste è un intero/decimale, togli gli apici:

    Quantita_rimaste = Qauntita_rimaste - $quantita_vendita

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    53
    In realtà devi aggiornare quantità rimaste e solo alla prima occasione crei quantità iniziale (per puro debug lato amministrativo).
    Le variabili da fonti esterne possono anche cancellare il tuo database se usate da utenti malintenzionati.
    Codice PHP:
    $quantita_vendita null;
    if (isset(
    $_GET['quantita_vendita'])) {
    if(
    is_int($_GET['quantita_vendita'])){
    $quantita_vendita = (int) $_GET['quantita_vendita'];
    //codice sql che recupera un numero intero da 0 a quantita_rimaste che crea una variabile $quantita_rimaste impostata a intero , ergo il cast esplicito (int)
    if ($quantita_rimaste && ! ($quantita_vendita $quantita_rimaste))) {
    $quantita_rimaste $quantita_rimaste-$quantita_vendita;
    }
    //codice sql che imposta la nuova quantita_rimasta.
    }

    In creazione prodotto dovrebbe esistere un campo dove memorizzi la prima quantità iniziale e poi comunque potrai aggiungere nuove quantità a quantita_rimaste che sarà equivalente a quantita totale di quel prodotto con esempio: se inizialmente ho 200 quantità iniziale sarà comunque 200 mentre se poi aggiungo altri 400 prodotti 200+400=600 quantità dell'intero ciclo di vita del prodotto.
    Ultima modifica di darbula; 04-12-2020 a 20:09

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2017
    Messaggi
    119
    grazie mi siete stati molto di aiuto...ho un ultima questione:

    ho 3 file php (index1.php , index2.php, index3.php)

    su index1.php ho il seguente form:
    codice:
    <form action='index2.php' method='get'>
    <input type='text' id='barcode' name='barcode' placeholder='BarCode'>
    <input type='submit' id='submit' name='sendbarcode'  placeholder='sendbarcode'>
    </form>
    dove mando un valore e lo ricevo su index2.php nel seguente modo:
    codice:
    $barcode = $_GET['barcode'];
    questo stesso valore barcode che mi arriva su index2.php adesso ho la necessità di spedirlo anche a index3.php, solo che non riesco... ho provato a creare un form del genere su index2 per mandarlo a index3, ma su index 3 non arriva nulla:

    codice:
    <form action="index3.php" method="get">
    <input type="hidden" name="barcode_da_index2" value="$barcode">
    <input type="submit" name="sendbarcode">
    </form>
    e di riceverlo su index3 cosi:
    codice:
    $barcode2 = $_GET['barcode_da_index2'];
    perchè non arriva nulla su index3? dove sbaglio mi fate capire?

    EDIT: pensavo: io su index2 ho gia un <form action="index3.php" method="get"> per mandare un altro valore a index3 e funziona ..non è che inserendo sulla stessa pagina un altro <form action="index3.php" method="get"> per spedire un altro valore allora i 2 form vanno in conflitto?

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,076
    Un thread un problema, riproproni aprendone uno nuovo.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2021 vBulletin Solutions, Inc. All rights reserved.