Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    91

    [PHP]controllo dati uguali in ciclo while

    ciao a tutti...
    volevo avere un suggerimento per fare un controllo su dati inviati tramite form...
    ogni riga ha un campo select option con nome = arrivo_$id dove $id è il numero id del record in questione
    vorrei controllare che nn siano inserti gli stessi numero quindi i campi arrivo_1, arrivo_2
    arrivo_3 devono sempre essere diversi uno dall'altro
    il problema è che i dati vengono inviati e inseriti nel DB tramite un cicolo while che prende in esame ed inserisce una record alla volta....



    nn so se mi sono spiegato...come posso fare a fare un controllo che nn ci siano doppino..?!? grazie1000 a tutti

    questo è parte del form :


    <input type="hidden" name="id_gara" value="<?=$id_gara?>" />
    <select name="arrivo_1" >
    <option value=0>0</option>
    <option value=1>1</option>
    <option value=2>2</option>
    <option value=3>3</option>
    </select>

    <select name="arrivo_2" >
    <option value=0>0</option>
    <option value=1>1</option>
    <option value=2>2</option>
    <option value=3>3</option>
    </select>

    <select name="arrivo_3" >
    <option value=0>0</option>
    <option value=1>1</option>
    <option value=2>2</option>
    <option value=3>3</option>
    </select>


    e questo è il senso del codice che esegue l'update

    select * from tabella WHERE id_gara = $id_gara;


    for ($rows as $row ) {
    $id = $row['id'];

    $position = $_POST['arrivo_$id'];

    update tabella set position = $position WHERE id = $id ;
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    91
    help me....

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    892
    Guarda hai due soluzioni:

    1. piazzi un controllo javascript con un return sulla pagina di invio che ti legge i dati dai campi select e inibisce la prosecuzione per eventuali doppioni;

    2. con php nella pagina di arrivo inizializzi tre variabili (p.e.: $miavar1=$_REQUEST['arrivo_1']; $miavar2=$_REQUEST['arrivo_2']; ecc.) e poi con un if controlli i doppioni

    codice:
    If (($miavar1==$miavar2) OR ($miavar1==$miavar3) OR ($miavar2==$miavar3)){
    ...
    Nel qual caso o rimandi alla pagina di inserimento o stampi un errore e magari linki alla pagina di invio.
    }
    else{
    codice di modifica
    }

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    91
    grazie per la risposta...
    il problema è che

    l'id che identifica univocamente ciascuna variabile viene stampato ad ogni ciclo all'interno dell parentesi graffe

    quindi questo codice nn funziona
    $miavar1=$_REQUEST['arrivo_1'];
    $miavar2=$_REQUEST['arrivo_2'];
    ecc....

    If ((($miavar1==$miavar2) OR ($miavar1==$miavar3) OR ($miavar2==$miavar3))

    questa è la struttura per poter recuperare tutte le variabili:
    select * from tabella WHERE id_gara = $id_gara; //l'$id_gara viene passato in un campo hidden

    for ($rows as $row ) {

    $id = $row['id'];

    $position = $_POST['arrivo_$id'];

    update tabella set position = $position WHERE id = $id ;
    }

  5. #5
    Codice PHP:
    //select * from tabella WHERE id_gara = $id_gara;

    $vecchiePosizioni = array();
    for (
    $rows as $row ) {
      
    $id $row['id'];

      
    $position $_POST['arrivo_$id'];

      if(
    in_array($position$vecchiePosizioni)) //genero errore
      
    else {
        
    $vecchiePosizioni[] = $position

        
    //update tabella set position = $position WHERE id = $id ;

      
    }

    ps non l'ho testato
    www.gext.it

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    91
    grazie.....appena posso lo testo...al momento putroppo nn posso....ciao

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.