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

    problema con una condizione

    Salve a tutti.

    Sto avendo dei problemi con una condizione vi posto lo scirpt:

    Codice PHP:
    $nickname=trim($_POST["nickname"]);
    $errore=false;
    $QueryMod=@mysql_query("Select Moderatori from forum_settori") or die (mysql_error());
    $totrec=mysql_num_rows($QueryMod);
    $ciclo0;
    while(
    $RecMod=mysql_fetch_array($QueryMod)){
    $ciclo++;
    $moderatori.=$RecMod["Moderatori"];
    if(
    $ciclo<$totrec$moderatori.=",";
    }
    $arrmod=explode(",",$moderatori);
    foreach(
    $arrmod as $modver){
    if(
    $modver===$nickname){
    $errmod=false;
    exit;
    }else{
    $errmod=true;
    }
    }
                        
    if(
    $errmod==true){
    ... 
    condizione di errore
    }else{
    ... 
    condizione esatta

    allora quello che faccio e prendere tutti imoderatori per ciascun forum li inseirsco in una stringa e poi li separo con explode.
    Fin qui tutto ok po passo l'array dell'esplosione in un ciclo foreach per verificare se uno di questo array è identico alla variabile $nickname se lo trova imposta $errmod in false ed esce dal ciclo se non lo trova mi imposta $errmod su true

    ma ce il problema che anche se $nickname è vuoto mi da sempre $errmod false e non dovrebbe mi date un aiuto???? Grazie.

  2. #2
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,746
    Potresti aggiungere un controllo su $nickname

    Codice PHP:
    $nickname=trim($_POST["nickname"]);
    $errore=false;
    $QueryMod=@mysql_query("Select Moderatori from forum_settori") or die (mysql_error());
    $totrec=mysql_num_rows($QueryMod);
    $ciclo0;
    while(
    $RecMod=mysql_fetch_array($QueryMod)){
    $ciclo++;
    $moderatori.=$RecMod["Moderatori"];
    if(
    $ciclo<$totrec$moderatori.=",";
    }
    $arrmod=explode(",",$moderatori);
    foreach(
    $arrmod as $modver){
    if(
    $modver===$nickname){
    $errmod=false;
    exit;
    }else{
    $errmod=true;
    }
    }

    // aggiungere questa riga
    if ( empty($nickname) ) $errmod false ;
                        
    if(
    $errmod==true){
    ... 
    condizione di errore
    }else{
    ... 
    condizione esatta

    Errare humanum est, perseverare ovest

  3. #3
    grazie carlo per la rispsota ma a che mi serve aggiungere questa riga se la condizione dentro al foreach è chiarissima.

    se $nickname è vuoto mi deve dare $errmod=true

  4. #4
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,746
    pardon ora l'ho corretta

    Codice PHP:
    $nickname=trim($_POST["nickname"]);
    $errore=false;
    $QueryMod=@mysql_query("Select Moderatori from forum_settori") or die (mysql_error());
    $totrec=mysql_num_rows($QueryMod);
    $ciclo0;
    while(
    $RecMod=mysql_fetch_array($QueryMod)){
    $ciclo++;
    $moderatori.=$RecMod["Moderatori"];
    if(
    $ciclo<$totrec$moderatori.=",";
    }
    $arrmod=explode(",",$moderatori);
    foreach(
    $arrmod as $modver){
    if(
    $modver===$nickname){
    $errmod=false;
    exit;
    }else{
    $errmod=true;
    }
    }

    // aggiungere questa riga
    if ( empty($nickname) ) $errmod true ;
                        
    if(
    $errmod==true){
    ... 
    condizione di errore
    }else{
    ... 
    condizione esatta

    Errare humanum est, perseverare ovest

  5. #5
    poi niente ho provato sempre al stessa cosa

  6. #6
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,746
    io lo farei in modo più semplice

    Codice PHP:

    if ( empty($_POST['nickname']) ) $errmod "true" 
    else {

          
    $result =  mysql_query("SELECT COUNT(*) AS totale FROM  forum_settori WHERE  Moderatori = '".trim($_POST['nickname'])."'") or die("Errore alla linea ".__LINE__.": ".mysql_error()) ;

          
    $conteggio mysql_fetch_array($result) ;
          if ( 
    $conteggio['totale'] > $errmod "true" 

    }





    if ( 
    $errmod == "true" ) {

          ... 
    condizione di errore

    } else {

          ... 
    condizione esatta


    Errare humanum est, perseverare ovest

  7. #7
    be non va come dici te perchè in un campo del database ci sono + moderatori separati da una, ecco perchè ho dovuto fare tutto questo.

  8. #8
    Originariamente inviato da techno
    be non va come dici te perchè in un campo del database ci sono + moderatori separati da una, ecco perchè ho dovuto fare tutto questo.
    Beh non e' un buon modo di progettare una tabella di un database, comunque perche' non fai una semplice query tipo

    SELECT * FROM forum_settori WHERE Moderatori LIKE '%$nickname%'

    ?

  9. #9
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,746
    Non lo avevo capito. Allora prova con LIKE
    Codice PHP:

    if ( empty($_POST['nickname']) ) $errmod "true" 
    else {

          
    $result =  mysql_query("SELECT COUNT(*) AS totale FROM  forum_settori WHERE  Moderatori LIKE '%".trim($_POST['nickname'])."%'") or die("Errore alla linea ".__LINE__.": ".mysql_error()) ;

          
    $conteggio mysql_fetch_array($result) ;
          if ( 
    $conteggio['totale'] > $errmod "true" 

    }





    if ( 
    $errmod == "true" ) {

          ... 
    condizione di errore

    } else {

          ... 
    condizione esatta


    Errare humanum est, perseverare ovest

  10. #10
    grazie raga ho risolto il problema era in una condizione if successiva comunque anche con like non va bene perchè con like mi cerca tutto anche se inserisco tipo pinco ed nel dataabse ce pincopallino mi da risultato favorevole io devo testare con esattezza che il nickname ce nel database non so se mi avete capito comunque anche con like non va bene

    ora però ho questo errore:
    Parse error: syntax error, unexpected '{'

    su questa linea:
    if(!isset($_COOKIE["regidu"])&&!isset($_COOKIE["web"])){

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.