Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    IF all'interno di WHILE non cicla

    Salve a tutti,

    Sono a proporvi un quesito che mi sta facendo diventare matto da un po di tempo.

    Vi scrivo la parte di codice.

    Codice PHP:
    while($row mysqli_fetch_array$result )) {unset($conferma);$conferma $row['conferma'];    $data date("d/m/Y"strtotime($row['online']));if ($data == "01/01/1970"){ $data "";}if ($row['IP'] == "::1") { $IPU "LocalHost";} else { $IPU $row['IP']; }    // emissione del contenuto di ogni riga in una tabellaecho "<tr>";echo '<td><center>' . $row['id'] . '</center></td>'; echo '<td>' . $row['user'] . '</td>';echo '<td>' . $row['nome'] . '</td>';echo '<td>' . $row['cognome'] . '</td>';echo '<td>' . $row['pass'] . '</td>';

    if ($conferma <> "SI"){
    echo 
    '<td><a href="javascript:void(0)" onclick = "document.getElementById(\'light\').style.display=\'block\';document.getElementById(\'fade\').style.display=\'block\'" title="' $row['conferma'] . '">NO</a> <div id="light" class="white_content"><p style="text-align:right"><a href = "javascript:void(0)" onclick = "document.getElementById(\'light\').style.display=\'none\';document.getElementById(\'fade\').style.display=\'none\'">Chiudi</a></p><br>Codice Attivazione:<br>' $row['conferma'] . '<br>Link Attivazione:<br><a href="http://greenbox/arcadia/conferma/?conf=' $row['conferma'] . '&u=' $row['id'] . '">http://greenbox/arcadia/conferma/?conf=' $row['conferma'] . '&u=' $row['id'] . '</a></div><div id="fade" class="black_overlay"></div></td>';}else{echo '<td>SI</td>';}
    echo 
    '<td>' $row['mail'] . '</td>'; echo '<td>' $row['lvl'] . '</td>';echo '<td>' $row['desc_lvl'] . '</td>';echo '<td>' $IPU '</td>';echo '<td>' $data '</td>';echo '<td>' $row['pc'] . '</td>';
    echo 
    '<td><center><a href="modifica.php?ID=' $row['id'] . '" ><img src="img/mod.jpg" title="Modifica '.$row['user'].'"  width="15" height="15"></a></center></td>';echo '<td><center><a href="cancella.php?ID=' $row['id'] . '"><img src="img/canc.jpg" title="Cancella '.$row['user'].' ATTENZIONE: la cancellazione e IRREVERSIBILE!!!" width="15" height="15"></a></center></td>';echo "</tr>";} 
    Tutto funziona perfettamente solo all'interno della condizione:
    Codice PHP:
    if ($conferma <> "SI"
    il risultato sarà, quando vera, solo il primo riscontrato su DB
    esempio su db ho questa situazione
    ID UserName Nome Cognome Password Conferma Mail LVL Descrizione permesso IP Data Online Nome PC Modifica Cancella
    1 xxxxxx Alan SI 1 SuperAdmin 08/02/2018
    2 xxxxxx Camillo SI 1 SuperAdmin 19/02/2016
    3 xxxxxx Ospite SI 1 SuperAdmin 01/03/2016
    4 xxxxxx Marco NO 1 SuperAdmin 07/02/2018
    5 xxxxxx Caterina SI 0 Utente 07/02/2018
    6 xxxxxx Federica NO 1 SuperAdmin 07/02/2018
    ( ho cancellato i dati sensibili)

    Nella colonna "Conferma" i no dovrebbero avere nel link l'ID proprio, invece mi ritrovo per ogni "NO" il primo id con "NO" in questo caso sempre l'ID = 4


    Spero si capisca.

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Sistema l'indentazione ed i ritorni a capo perché così è un incubo.

  3. #3
    Dato che non mi fa modificare il codice lo riscrivo qui sotto
    Codice PHP:
    while($row mysqli_fetch_array$result )) {
    unset(
    $conferma);
    $conferma $row['conferma'];
           
    $data date("d/m/Y"strtotime($row['online']));
    if (
    $data == "01/01/1970"){ $data "";}
    if (
    $row['IP'] == "::1") { $IPU "LocalHost";} else { $IPU $row['IP']; }
           
    // emissione del contenuto di ogni riga in una tabella
    echo "<tr>";
    echo 
    '<td><center>' $row['id'] . '</center></td>'
    echo 
    '<td>' $row['user'] . '</td>';
    echo 
    '<td>' $row['nome'] . '</td>';
    echo 
    '<td>' $row['cognome'] . '</td>';
    echo 
    '<td>' $row['pass'] . '</td>';
     
     
    if (
    $conferma <> "SI"){
     
    echo 
    '<td><a href="javascript:void(0)" onclick = "document.getElementById(\'light\').style.display=\'block\';document.getElementById(\'fade\').style.display=\'block\'" title="' $row['conferma'] . '">NO</a> <div id="light" class="white_content"><p style="text-align:right"><a href = "javascript:void(0)" onclick = "document.getElementById(\'light\').style.display=\'none\';document.getElementById(\'fade\').style.display=\'none\'">Chiudi</a></p><br>Codice Attivazione:<br>' $row['conferma'] . '<br>Link Attivazione:<br><a href="http://greenbox/arcadia/conferma/?conf=' $row['conferma'] . '&u=' $row['id'] . '">http://greenbox/arcadia/conferma/?conf=' $row['conferma'] . '&u=' $row['id'] . '</a></div><div id="fade" class="black_overlay"></div></td>';
    }
    else{
    echo 
    '<td>SI</td>';
    }
     
    echo 
    '<td>' $row['mail'] . '</td>'
    echo 
    '<td>' $row['lvl'] . '</td>';
    echo 
    '<td>' $row['desc_lvl'] . '</td>';
    echo 
    '<td>' $IPU '</td>';
    echo 
    '<td>' $data '</td>';
    echo 
    '<td>' $row['pc'] . '</td>';
     
    echo 
    '<td><center><a href="modifica.php?ID=' $row['id'] . '" ><img src="img/mod.jpg" title="Modifica '.$row['user'].'"  width="15" height="15"></a></center></td>';
    echo 
    '<td><center><a href="cancella.php?ID=' $row['id'] . '"><img src="img/canc.jpg" title="Cancella '.$row['user'].' ATTENZIONE: la cancellazione e IRREVERSIBILE!!!" width="15" height="15"></a></center></td>';
    echo 
    "</tr>";


  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Se $row['user'], $row['nome'] e gli altri sono giusti, deve esserlo anche l'id, verifica nel database se i dati sono effettivamente quelli che hai in mente.

  5. #5
    Si tutto corretto a parte quello all'interno del IF maledetto printa sempre il primo valore trovato

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Non ha senso che mysqli_fetch_array() riassegni a $row tutti i dati giusti, tranne l'id.

    Tu sei sicuro che gli altri dati della riga in questione siano esatti ed anche nel db hai verificato, non è che pensi che i dati siano corretti, giusto?

  7. #7
    Infatti i dati se li metto esterni all' IF funzionano perfettamente e si sono sicuro della correttezza dei dati e ripeto solo all'interno dell'IF rimangono invariati.

  8. #8
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Guarda, ho replicato in un mio db i dati della tabella che hai postato, ho fatto copia/incolla del tuo codice e gli id vengono stampati correttamente.

    Verifica bene i tuoi dati, il codice è corretto.

  9. #9
    Grazie per la risposta.

    Anche io ho provato su due db diversi ma niente la parte

    Codice PHP:
    echo '<td><a href="javascript:void(0)" onclick = "document.getElementById(\'light\').style.display=\'block\';document.getElementById(\'fade\').style.display=\'block\'" title="' $row['conferma'] . '">NO</a> <div id="light" class="white_content"><p style="text-align:right"><a href = "javascript:void(0)" onclick = "document.getElementById(\'light\').style.display=\'none\';document.getElementById(\'fade\').style.display=\'none\'">Chiudi</a></p><br>Codice Attivazione:<br>' $row['conferma'] . '<br>Link Attivazione:<br><a href="http://greenbox/arcadia/conferma/?conf=' $row['conferma'] . '&u=' $row['id'] . '">http://greenbox/arcadia/conferma/?conf=' $row['conferma'] . '&u=' $row['id'] . '</a></div><div id="fade" class="black_overlay"></div></td>'
    no è corretta

  10. #10
    Soluzione trovata il problema era nel javascript =)

    Grazie lo stesso ^_^

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