Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16

Discussione: Aggiornamento

  1. #1

    Aggiornamento

    Ho una tabella con 5 campi: numero_tessera-cognome-nome-corso-soldi,
    tramite una pagina inserimento inserisco i vari dati,e fino a qui tutto ok.
    Il campo corso puo assumere 3 valori (Lun-Mer-Ven-13:30-14:30-Lun-Mer-Ven-19:30-20:30-Lun-Mer-Ven-20:30-21:30) e ho aggiunto un controllo che piu' di 15 iscritti con lo stesso corso non possono essere,se cosi fosse non mi fa l'inserimento e mi va ad una pagina che l'ho chiamata completo.html
    Adesso se volessi modificare i dati del cliente mi richiamo i dati del cliente tramite numero_tessera su una pagina modifica.
    Mettiamo che voglia modificare il campo soldi di un cliente iscritto a un corso,e il numero degli iscritti di questo corso e' al completo(15),modifico il dato e premo il pulsante modifica, non mi fa l'aggiornamento e mi va direttamente alla pagina completo.html questo xche' quando va a leggere e riscrivere il campo corso il controllo =15 me lo blocca,anche se il socio e' gia iscritto a quel corso.

    Ho provato una marea di possibilità e sono 3 giorni che ci sto sbattendo la
    questa mi sembra quella piu' attendibile ma non mi prende in considerazione if,continua ad andararmi alla pagina completo.html

    codice:
    if ($row_Recordset3['corso']!='$corso') {
    $updateSQL = sprintf("UPDATE musica SET musica.corso= '$corso' WHERE musica.numero_tessera='$numero_tessera"); 
    mysql_select_db($database_musica, $musica);
    $Result1 = mysql_query($updateSQL, $musica) or die(mysql_error());
    }	
    ?>

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Non mi sembra sia ben organizzato strutturalmente, per questo incontri delle difficoltà che altrimenti non dovrebbero esistere.

    Per esempio, io farei una tabella con tutti i corsi:

    codice:
    id_corso, nome_corso, note_corso
    una tabella con tutti gli utenti
    codice:
    id_utente, tessera_utente, nome_utente, cognome_utente, note_utente
    e una tabella in cui metti in relazione i corsi con gli utente
    codice:
    id, id_corso, id_utente
    Quando modifichi un utente in questo modo non vai a toccare assolutamente la relazioni corso - utenti. Se avessi necessità di aggiornare la partecipazione di un utente ad un dato corso, andresti a fare un'insert (o update o delete) sulla tabella corsi_utenti controllando che il totale degli iscritti a quel corso (e solo in caso di insert) non sia superiore a 15
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    ho 3 tabelle

    una iscritti
    codice:
    numero_tessera,cognome,nome,corso,soldi
    una musica
    codice:
    numero_tessera,cognome,nome,corso
    una soldi
    codice:
    numero_tessera,cognome,nome,,soldi
    Per l'Update estraggo tutti i dati dalla tabella iscritti faccio le varie modifiche e premendo modifica mi va ad aggiornare tutte e 3 le tabelle.Logicamente se mi si verifica la codizione che avevo spiegato prima mi deve saltare l'update per quanto riguarda la tabella musica
    Ma quì casca l'asinello

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Allora se non vuoi cambiare la struttura del database (ma mi sembra di capire che hai tonnellate di dati ridondanti, il che in generale è male), potresti, una volta estratti i dati di un utente, procedere così:

    - se cambia il corso, fai le verifiche del caso, che potrebbero essere
    + controlli che il nuovo corso non sia già al completo. Se non è al completo, iscrivi l'utente a quel corso ed elimini l'iscrizione dal corso precedente
    + se è al completo, non fai niente, mostri solo la pagina completo.html come facevi prima

    - se non cambia il corso
    + non fai nessun controllo sul numero di utenti, andrai a modificare solo i campi della tabella user ed in caso i campi necessari in corso e soldi.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Questo gia lo fa
    codice:
    - se cambia il corso, fai le verifiche del caso, che potrebbero essere
    + controlli che il nuovo corso non sia già al completo. Se non è al completo, iscrivi l'utente a quel corso ed elimini l'iscrizione dal corso precedente
    + se è al completo, non fai niente, mostri solo la pagina completo.html come facevi prima
    Mentre per quanto riguguarda questo
    codice:
    - se non cambia il corso
    + non fai nessun controllo sul numero di utenti, andrai a modificare solo i campi della tabella user ed in caso i campi necessari in corso e soldi.
    dovrei spostare l'if invece di metterlo all'update lodovrei mettere al controllo

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Bene, allora adesso sai che controlli andare ad inibire.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    Non ne vuole proprio sapere della condizione,secondo te e' giusta?

    Update:
    codice:
    <?php
    mysql_select_db($database_scuola, $scuola);
    $query_Recordset3 = "SELECT orario_corso FROM musica";
    $Recordset3 = mysql_query($query_Recordset3, $scuola) or die(mysql_error());
    $row_Recordset3 = mysql_fetch_assoc($Recordset3);
    $totalRows_Recordset3 = mysql_num_rows($Recordset3);
    
    $updateSQL = sprintf("UPDATE musica SET musica.orario_corso = '$orario_corso' WHERE musica.numero_tessera='$numero_tessera'"); 
     
        mysql_select_db($database_scuola, $scuola);
     $Result1 = mysql_query($updateSQL, $scuola) or die(mysql_error());
      ?>
    Controllo:
    codice:
    <?php 
      if ($row_Recordset3['orario_corso']!='$orario_corso') {
      $i=0;
       do {
      switch ($row_Recordset3['orario_corso']) {
        case $orario_corso:$i++;break;
         }
    } while ($row_Recordset3 = mysql_fetch_assoc($Recordset3));
    if($i>=15) 
    { header("Location:corso completo.html");
    exit;
    }}
    ?>

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    non capisco il controllo.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  9. #9
    codice:
    <?php 
    //se il valore memorizzato nel database e' diverso all'orario che seleziono fa il controllo
     
     if ($row_Recordset3['orario_corso']!='$orario_corso') {
    
    //inizia a contare da 0 finche'  
    $i=0;
      do {
      switch ($row_Recordset3['orario_corso']) {
      case $orario_corso:$i++;break;  // $orario_corso=il valore che vado a slezionare per modif.
         }
    
    //finche' la variabile i non e' uguale o maggiore di 15 inserisci altrimenti vai a corso completo
    } while ($row_Recordset3 = mysql_fetch_assoc($Recordset3));
    if($i>=15) 
    { header("Location:corso completo.html");
    exit;
    }}
    ?>

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    ma una query con COUNT no? E' tutto super arzigogolato così.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

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 © 2025 vBulletin Solutions, Inc. All rights reserved.