Visualizzazione risultati 1 fino 8 di 8

Discussione: Problema con condizione if

  1. #1
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito Problema con condizione if

    Buonasera,
    ho questo codice:

    Codice PHP:
    $double = mysql_fetch_array(mysql_query("SELECT * FROM tabella"));

    $newcount = mysql_num_rows(mysql_query("SELECT * FROM altratab WHERE id = '".$id."'"));

    if((
    eregi($id,$double['acceptid'])) || $newcount == 1){

    // OK

    }else{

    // KO

    }
    E' riassumento il tutto l'if non funge...in pratica ho:

    tabella
    acceptid
    7,3,19

    altratab
    id
    1
    3
    3
    7
    15
    9

    Penso che dall'if si capisca cosa voglio fare...ragà sto impazzendo ma non ci riesco...qualche riga in più pur di farlo funzionare non mi importa...aspetto pazientemente...

    RIASSUMENTO: Una pagina aperta con lo stesso ID contemporaneamente non può essere visualizzata tranne se l'id è presente nella prima tabella...capito?
    Ultima modifica di miki92 : 06-06-2009 alle ore 21.59.01
    Apprezzi l'aiuto? Offrimi un caffè!

  2. #2
    Guest

    Predefinito

    Codice PHP:
    $double = mysql_query("SELECT acceptid FROM tabella");
    $aID = array();

    while(
    $row = mysql_fetch_array($double))
    $aID[] = $row['acceptid'];

    $newcount = mysql_num_rows(mysql_query("SELECT * FROM altratab WHERE id = '".$id."'"));

    if(
    in_array($id, $aID) || $newcount == 1){

    // OK

    }else{

    // KO

    }

  3. #3
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Purtroppo comunque non funge...non riesco ad aprire due identici ID nonostante si trovino nel database (2,5):
    Codice PHP:
    $double = mysql_query("SELECT * FROM tab");

    $newcount = mysql_num_rows(mysql_query("SELECT * FROM altratab WHERE id = '".$id."'"));

    $aID = array();

    while(
    $row = mysql_fetch_array($double))
    $aID[] = $row['acceptid'];

    if(
    in_array($id, $aID) || $newcount <= 1){
    Apprezzi l'aiuto? Offrimi un caffè!

  4. #4
    Guest

    Predefinito

    Scusa ma non dovrebbe essere
    Codice:
    if(in_array($id, $aID) && $newcount >= 1)
    cioè, l'id della pagina è presente nella prima tabella, e, nella seconda, è presente almeno una volta.

  5. #5
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Nella seconda tabella memorizzo uno o più ID uguali...qualora l'ID inviato tramite GET ($id) non sia presente nella prima tabella $id deve trovarsi solo una volta nella seconda altrimenti visualizza errore.

    Spero di essermi spiegato...
    Apprezzi l'aiuto? Offrimi un caffè!

  6. #6
    Guest

    Predefinito

    ah.. adesso si.
    Codice PHP:
    if(!in_array($id, $aID)) {
    if(
    $newcount == 1) {
    //qui entra solo se non è presente nella prima ma è presente nella seconda una volta
    }else {
    //qui entra se non è presente nella prima ma è presente nella seconda più di una volta o zero volte
    }
    }else {
    //qui entra solo se è prensente nella prima
    }
    Vedi se va bene.

  7. #7
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Mi dispiace nemmeno funge:
    Codice PHP:
    $time = time(); $scadenza = $time - (60);

    $newquery = mysql_query("SELECT * FROM seconda WHERE id = '".$id."'");

    mysql_query("DELETE FROM seconda WHERE time<'".$scadenza."'");
    mysql_query("INSERT INTO seconda(id,time) VALUES (\"".$id."\",\"".$time."\")");
    mysql_query("UPDATE seconda SET time = '".$time." WHERE id = '".$id."'");

    $double = mysql_query("SELECT acceptid FROM prima");
    $aID = array();

    while(
    $row = mysql_fetch_array($double))
    $aID[] = $row['acceptid'];

    $newcount = mysql_num_rows($newquery);
    $abc = false;
    if(!
    in_array($id, $aID)) {
    if(
    $newcount == 1) {
    $abc = true;
    }else {
    $abc = false;
    }
    }else {
    $abc = true;
    }
    if(
    $abc){

    // ESEGUI

    }else{

    // ERRORE

    }
    Nella seconda tabella ci sarà sicuramente l'ID perchè all'apertura della pagina (che sia 1, 2 o più volte) viene sempre memorizzata nella seconda tabella l'ID.

    Ora se $id non è presente nella prima tabella (valore restituito: "2,5") PHP deve mostrare la pagina a condizione che nella seconda l'id sia presente una sola volta (o non ci sia proprio) altrimenti mostra errore.
    Se invece l'ID è presente nella prima tabella può trovarsi anche 10.000 volte nella seconda senza problemi...

    Ricapitolando in parole più semplici voglio far in modo che la stessa pagina non sia visibile allo stesso ID contemporaneamente salvo eccezzioni.
    Ultima modifica di miki92 : 08-06-2009 alle ore 18.56.20
    Apprezzi l'aiuto? Offrimi un caffè!

  8. #8
    Guest

    Predefinito

    Ma è ovvio, la riga
    Codice:
    $newquery = mysql_query("SELECT * FROM seconda WHERE id = '".$id."'");
    l'hai messa prima di fare le modifiche, mentre dovresti metterla dopo
    Prova a modificare così
    Codice PHP:
    $time = time(); $scadenza = $time - (60);

    mysql_query("DELETE FROM seconda WHERE time<'".$scadenza."'");
    mysql_query("INSERT INTO seconda(id,time) VALUES (\"".$id."\",\"".$time."\")");
    mysql_query("UPDATE seconda SET time = '".$time." WHERE id = '".$id."'");

    $newquery = mysql_query("SELECT * FROM seconda WHERE id = '".$id."'");

    $double = mysql_query("SELECT acceptid FROM prima");
    $aID = array();

    while(
    $row = mysql_fetch_array($double))
    $aID[] = $row['acceptid'];

    $newcount = mysql_num_rows($newquery);
    $abc = false;
    if(!
    in_array($id, $aID)) {
    if(
    $newcount == 1) {
    $abc = true;
    }else {
    $abc = false;
    }
    }else {
    $abc = true;
    }
    if(
    $abc){

    // ESEGUI

    }else{

    // ERRORE

    }

Regole di scrittura

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