Visualizzazione risultati 1 fino 8 di 8
Like Tree3Likes
  • 1 Post By phollia
  • 1 Post By phollia
  • 1 Post By NLSweb

Discussione: select and delete allo stesso momento è possibile ?

  1. #1
    puntifedelta non è connesso Utente giovane
    Data registrazione
    08-10-2020
    Messaggi
    92

    Predefinito select and delete allo stesso momento è possibile ?

    ciao ragazzi chiedo scusa ho questo codice

    Codice PHP:
    <?php
    include_once('../config/pdo.php');
    $pdo->query('SET CHARACTER SET utf8');
    $sql = "SELECT studente.*, premi.*
    FROM cliente
    INNER JOIN premi ON studente.id_studente = premi.id_studente
    where premi.id_studente='"
    . $_GET["id_studente"] . "'
    GROUP BY premi.id_cliente"
    ;
    $stmt = $pdo->prepare($sql);
    $stmt->execute();
    $users = $stmt->fetchAll();
    ?>

    <div class="form-group row">
    <label class="col-form-label col-md-3 col-sm-3 label-align">Premio</label>
    <div class="col-md-6 col-sm-6">
    <select class="form-control" name="premio" required>
    <option>Seleziona Premio</option>
    <?php foreach($users as $user): ?>
    <option value="<?= $user['premio']; ?>"> <?= $user['premio']; ?></option>
    <?php endforeach; ?>
    </select>
    </div>
    </div>
    che con un dropdown mi mostra al raggiungimento di un tot di punti il premio ottenuto

    vorrei che allo stesso tempo che scalo i punti e dopo aver cliccato sul pulsante submit questo premio venga cancellato salvando solo i punti da scalare

    spero di essermi spiegato al meglio grazie per il vostro aiuto

  2. #2
    phollia non è connesso Utente giovane
    Data registrazione
    05-02-2015
    Messaggi
    68

    Predefinito

    Le cose si fanno ad una ad una.

    Prima cerchi la chiave primaria relativa al premio (di solito impostata su un ID)

    Codice PHP:
    SELECT ID FROM premi ...
    e dopo cancelli quella voce impostatndo il vincolo nella condizioni WHERE

    Codice PHP:
    DELETE FROM premi WHERE id = ...
    puntifedelta likes this.

  3. #3
    puntifedelta non è connesso Utente giovane
    Data registrazione
    08-10-2020
    Messaggi
    92

    Predefinito

    grazie per la gentile risposta, saresti così gentile da farmi un esempio pratico ? oppure se mi puoi fornire un punto di partenza perchè non trovo nulla online

    grazie

  4. #4
    phollia non è connesso Utente giovane
    Data registrazione
    05-02-2015
    Messaggi
    68

    Predefinito

    Non conoscendo la struttura del DB è difficile azzardare esempi concreti.

    Dunque, a te serve, se non ho capito male, è una routine che estragga dal DB un valore e contemporaneamente lo elimini in modo da non poterlo più visualizzare/usare.

    Se dunque è questa la situazione per prima cosa devi recuperare il record che ti interessa in modo da poterlo lavorare come meglio ti serve e subito dopo eliminare il record.

    Ecco quindi che fai una SELECT per il primo punto e una DELETE per la seconda fase limitando però quest'ultima al solo record interessato.

    Mi permetto però di farti notare come al di là dell'aspetto puramente accademico della questione questo modo di operare non mi sembra il migliore.
    Personalmente IO utilizzerei un campo nella tabella contenente i dati "da cancellare" che mi indichi lo stato (ad esempio attivo/non attivo) e modificherei questo per renderlo non utilizzabile e magari puoi anche conservare notizie che ti possono aiutare in analisi future. Che so, ad esempio puoi aggiungere la data dell'operazione o il motivo della disabilitazione, o l'operatore che la effettua e così via.
    Questo ti permetterà anche ti poter tornare indietro ed "annullare" l'operazione.

    Se hai bisogno di aiuti più mirati dovresti indicare quanto meno la struttura del DB e come i dati sono in relazione, e quello che vorresti fare o il risultato che vorresti ottenere.
    puntifedelta likes this.

  5. #5
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    Ciao, da quello che vedo nel tuo codice tu hai due tabelle :
    1) PREMI
    2) STUDENTE

    Avendo preso ID dello studente tu elenchi dalla tabella <Premi> solo quelli relativi allo studente.
    Quindi generi un menù di selezione <select> in cui però nelle opzioni il valore non è ID del premio ma la voce del premio che visualizzi per lo studente.

    Poi dici "..questo premio venga cancellato salvando solo i punti da scalare",

    Quindi in sostanza vuoi eliminare il premio selezionato dalla tabella <premi> , ecco perchè si serve il suo ID , infatti nella query DELETE FROM premi WHERE ID= dovrai inserire id del premio selezionato.

    Poi per il resto concordo con phollia (Follia mi piace il tuo nickname) , che dovresti dare delle indicazioni più precise del quadro generale.

    Ciao
    puntifedelta likes this.

  6. #6
    puntifedelta non è connesso Utente giovane
    Data registrazione
    08-10-2020
    Messaggi
    92

    Predefinito

    grazie a tutti voi per la risposta, questi sono compiti da fare a casa sono uno studente il professore ci indica degli scenari e noi dobbiamo svilupparli in base alle sue richieste che mano mano che vengono sviluppate ci indica le varie modifiche che lui(come eventuale cliente) ci chiede di apportare. Non abbiamo optato per una tabella ed attivo/non attivo perchè il cliente (in questo caso il professore) ci ha chiesto di cancellare il record in questo caso il premio che lo studente ha ottenuto fino a quel momento, adesso vediamo di estrarre l'id dello studente vi tengo aggiornati

    grazie ancora

  7. #7
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    le varie modifiche che lui(come eventuale cliente) ci chiede di apportare
    Consiglio per il futuro: quando il cliente ti chiede una modifica, tu chiedigli un compenso.
    Fidati, ne avrai bisogno.

    I suggerimenti che do più spesso:


  8. #8
    puntifedelta non è connesso Utente giovane
    Data registrazione
    08-10-2020
    Messaggi
    92

    Predefinito

    Citazione Originalmente inviato da mzanella Visualizza messaggio
    Consiglio per il futuro: quando il cliente ti chiede una modifica, tu chiedigli un compenso.
    Fidati, ne avrai bisogno.

    grazie!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •