Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di andbaz
    Registrato dal
    Jul 2011
    Messaggi
    441

    Mostruoso problema con while!

    Questo è il completo codice php:
    Che cos'è? E' un codice che mediante l'inserimento dei dati di un form di registrazione si viene iscritti in una pagina web. E il problema? Il problema è questo: verso le parti più esterne del codice ho un ciclo while che assegna un dato ad una variabile per poi questo essere confrontato con un'altro e via dicendo. Però se questo dato non dovesse esistere, come ho scritto nel if, viene eseguito un'altra parte di codice.
    Il codice funziona solo e dico solo se è presente almeno un dato nella tabella, invece se non ne è presente nemmeno un record all'interno di essa (utenti) nel database non viene registrato nulla, come risolvo?

    Codice PHP:
    <?php
        
        $sub 
    $_POST['vai'];
        
    $nom $_POST['nome'];
        
    $cog $_POST['cognome'];
        
    $gg $_POST['gg'];
        
    $mm $_POST['mm'];
        
    $aaaa $_POST['aaaa'];
        
    $sex $_POST['sesso'];
        
    $cod1 $_POST['codice1'];
        
    $cod2 $_POST['codice2'];
        
    $email $_POST['email'];
        
    $dob $gg '-' $mm '-' $aaaa;
        
        if (
    $sub) {        
            if (
    $nom&&$cog&&$gg&&$mm&&$aaaa&&$sex&&$cod1&&$cod2&&$email) {                
                if (
    $cod1==$cod2) {            
                    
    mysql_connect('localhost','root','') or die (mysql_error());
                    
    mysql_select_db('noteit') or die (mysql_error());

                    
    $sql 'SELECT EMAIL FROM utenti';
                    
    $query mysql_query($sql) or die (mysql_error());
                    while (
    $row mysql_fetch_assoc($query)) { /* QUI */                                            
                        
    $dbemail $row['EMAIL'];
                        if (
    $dbemail) {
                            if (
    $dbemail!=$email) {
                                
    mysql_query("INSERT INTO utenti VALUES ('',(UCASE('$nom')),(UCASE('$cog')),'$dob','$sex','$cod1','$email')")
                                    or die (
    mysql_error());
                                
    $sql 'SELECT IDU,EMAIL FROM utenti';
                                
    $query mysql_query($sql);
                                while (
    $row mysql_fetch_assoc($query)) {
                                    
    $idu $row['IDU'];
                                }
                                
    mysql_query("INSERT INTO io VALUES ('".$idu."','')")
                                    or die (
    mysql_error());
                            } else {
                                die (
    'Errore, questa email risulta essere di un altro utente');
                            }
                        } else {                            
                            
    mysql_query("INSERT INTO utenti VALUES ('',(UCASE('$nom')),(UCASE('$cog')),'$dob','$sex','$cod1','$email')")
                                or die (
    mysql_error());
                        }
                    }            
                } else {
                    die (
    'Errore, i due codici non risultano uguali');
                }        
            } else {
                die (
    'Errore, controlla i dati inseriti');
            }        
        }
        
    ?>

  2. #2
    puoi fare un ciclo for, che controlli se i dati sono pieni o meno...

    Naturalmente è una soluzione in 1m, poi potrai migliorartela a tuo piacimento...

  3. #3
    Quel codice è un casino
    [PHP]
    In primi fai una cosa del genere
    mysql_connect('localhost','root','') or die (mysql_error());
    mysql_select_db('noteit') or die (mysql_error());
    $check = false ;
    $sub = $_POST['vai'] ;
    if(!empty($sub))
    {
    $check = true ;
    }

    /*FALLO PER TUTTI
    $nom = $_POST['nome'];
    $cog = $_POST['cognome'];
    $gg = $_POST['gg'];
    $mm = $_POST['mm'];
    $aaaa = $_POST['aaaa'];
    $sex = $_POST['sesso'];
    $cod1 = $_POST['codice1'];
    $cod2 = $_POST['codice2'];
    $email = $_POST['email'];
    */

    if($check)
    {
    if($cod1==$cod2)
    {
    $sql = "SELECT * FROM utenti WHERE EMAIL = '".$email."'" ;
    $rows = mysql_num_rows(mysql_query($sql)) ;
    if($rows != 0)
    {
    die("email già esistente") ;
    }
    else
    Programmatore - Consulenza informatica -
    Web Design - Professionista I.T.
    ---------------------------------------
    http://www.malorgio.it

  4. #4
    Quel codice è un casino
    Codice PHP:
    //In primis fai una cosa del genere
    mysql_connect('localhost','root','') or die (mysql_error()); 
    mysql_select_db('noteit') or die (mysql_error()); 
    $check false 
    $sub $_POST['vai'] ;
    if(!empty(
    $sub))
    {
    $check true 
    }

    /*FALLO PER TUTTI
        $nom = $_POST['nome']; 
        $cog = $_POST['cognome']; 
        $gg = $_POST['gg']; 
        $mm = $_POST['mm']; 
        $aaaa = $_POST['aaaa']; 
        $sex = $_POST['sesso']; 
        $cod1 = $_POST['codice1']; 
        $cod2 = $_POST['codice2']; 
        $email = $_POST['email']; 
    */

    if($check)
    {
      if(
    $cod1==$cod2)
      {
         
    $sql "SELECT * FROM utenti WHERE EMAIL = '".$email."'" 
         
    $rows mysql_num_rows(mysql_query($sql)) ; 
         if(
    $rows != 0)
         {
             die(
    "email già esistente") ; 
          }
          else
         { 
            
    mysql_query("INSERT INTO utenti VALUES ('',(UCASE('$nom')),(UCASE('$cog')),'$dob','$sex','$cod1','$email')")  or die (mysql_error()); 
             
    $sql 'SELECT IDU,EMAIL FROM utenti'
             
    $query mysql_query($sql); 
             while (
    $row mysql_fetch_assoc($query)) 
             { 
                      
    $idu $row['IDU']; 
             } 
              
    mysql_query("INSERT INTO io VALUES ('".$idu."','')")   or die (mysql_error());
         }
    }
    else die (
    "i codici sono uguali") ; 
    }
    else die (
    "Errore controlla i dati") ; 
    Sinceramente non capisco quello che deve fare un pezzo di codice l'ultima query
    Programmatore - Consulenza informatica -
    Web Design - Professionista I.T.
    ---------------------------------------
    http://www.malorgio.it

  5. #5
    Utente di HTML.it L'avatar di andbaz
    Registrato dal
    Jul 2011
    Messaggi
    441
    No lascia stare l'ultimo codice della query, è un'altra tabella, cmq vedendo è troppo un casino, faccio che come record numero 1 inserisco dei dati senza alcun senso o peso, così da far funzionare il codice, cosa dite?

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.