problemi ricerca record con mysqli

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Salve a tutti,


Auguri e buon anno a tutto lo staff. Vengo subito al dunque. Ho iniziato a cimentarmi con la programmazione mysqli. La connessione al db me la fa regolarmente, anche l'inserimento di dati me lo fa regolarmente. L'unica cosa che non sono riuscito a fare è la verifica in contemporanea dei dati inseriti. Prima ero riuscito a farla con mysql, ora con l'integrazione di mysqli non riesco più a farla. dato due campi:

1) username

2) password

Mentre sto scrivendo lo username mi dovrebbe comparire o una "V" che sta per libero o una "X" che sta per occupato sia sullo username che sulla password. Ho questo codice qua che ho modificato e preso dal manuale php:

PHP:
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <?php
        require_once("connettimysqli.php");
       
 
#Controlla se esiste l'email nel db

   # $checkemail=mysql_query("SELECT email FROM uty WHERE email='$email'");

 $checkemail = $mysqli->query("SELECT email FROM uty WHERE email='$email'");
 
$vuota=$checkmail->mysqli_num_rows($checkemail);
if($vuota > 0){
	echo '<img src="X-ICONA.png" alt="Icona OK" width="15" height="15">';

}else {
        #    echo "Questo username che hai scelto è perfetto!"; 
        echo '<img src="V-ICONA.jpg" alt="Icona KO" width="15" height="15">';
    }
?>

Ma sembra non andare dove sbaglio ??? Mi potete aiutare per favore ???? Grazie.
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
ciao

Ciao edin,

Grazie lo provo subito e ti dico il risultato. Ho fatto così pensi che possa nadare ben ???? Se c'è da correggere fai pure:

PHP:
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <?php
        require_once("connettimysqli.php");
       
 
#Controlla se esiste l'email nel db

   # $checkemail=mysql_query("SELECT email FROM uty WHERE email='$email'");

 
 $checkemail = $con->query("SELECT email FROM uty WHERE email = '$email' ")
 
         if($vuota=$checkemail->num_rows) {

	echo '<img src="X-ICONA.png" alt="Icona OK" width="15" height="15">';

}else {
        #    echo "Questo username che hai scelto è perfetto!"; 
        echo '<img src="V-ICONA.jpg" alt="Icona KO" width="15" height="15">';
    }
?>
 
Ultima modifica:

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
problea inserimento dati

Allora non va,

Ti posto la squela dei file, così magari in due si riesce a trovare cosa c'è che non gli piace.

iscrizione.html

PHP:
<html>
    <head> 
        <script src='http://code.jquery.com/jquery-1.9.1.min.js'></script>
        <script type="text/javascript"> 
            $(document).ready(function() { $("input").keyup(function(){ 
                    var id = this.id; 
                    $.ajax({ type: "POST", 
                        url: "checkdate.php", 
                        data: id+"="+this.value, 
                        success: function(response){ 
                            $("#check_" + id).html(response); 
                        } 
                    });
                }); 
            });
        </script> 
    </head> 
    <body> 
        <div align ="center">
            <h2>Esempio form di registrazione</h2> 
        </div> 
        <form action="salvadati.php" method="POST">
   
                <label>
                    Username: <input type="text" name="username" id="username"/>
                    <span id="check_username"></span>
                </label> 
            
           
                <label>
                    <p> <p>
                    E-Mail: <input type="text" name="email" id="email"/>
                    <span id="check_email"></span>
                    </p> </p>
                </label> 
            
            <div align ="center">
              <input type="submit" value="Invia dati">
              
            </div> 
        </form> 
    </body>
</html>

checkdate.php

PHP:
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <?php
        require_once("connettimysqli.php");
       
 
#Controlla se esiste l'email nel db

   # $checkemail=mysql_query("SELECT email FROM uty WHERE email='$email'");

 
 $checkemail = $con->query("SELECT email FROM uty WHERE email = '$email' ")
 
         if($vuota=$checkemail->num_rows) {     //su questa riga mi da errore

	echo '<img src="X-ICONA.png" alt="Icona OK" width="15" height="15">';

}else {
        #    echo "Questo username che hai scelto è perfetto!"; 
        echo '<img src="V-ICONA.jpg" alt="Icona KO" width="15" height="15">';
    }

salvadati.php

PHP:
<?php
include 'connettimysqli.php';

// Lancio una query per inserire tre righe nella tabella
$successo = $con->query("INSERT INTO uty (username, email) VALUES ('$username', '$email')"); 

// controllo l'esito della query
if ($successo) {#se va bene....
	echo 'Dati inseriti correttamente';
}
else {
	echo 'Errore nella query';
}?>


Dove sbaglio ???? L'inserimento dati dovrebbe avvenire sincrono, ossia appena digiti lo username el'email mi dovrebbe segnalare se esiste o meno nel db.
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
problea inserimento dati

appunto

prendi prima il valore e poi passi alla condizione IF

PHP:
$vuota=$checkemail->num_rows;
if($vuota>0)
{
//
}
opppure:
PHP:
if($checkemail->num_rows >0)
{
//
}


Ciao,

Ho provato il tuo codice, ma sulla seguente riga mi da errore:

PHP:
      require_once("connettimysqli.php");
       
 
#Controlla se esiste l'email nel db

   # $checkemail=mysql_query("SELECT email FROM uty WHERE email='$email'");

 
 $checkemail = $con->query("SELECT email FROM uty WHERE email = '$email' ")
 if($checkemail->num_rows >0){ 
    echo '<img src="X-ICONA.png" alt="Icona OK" width="15" height="15">';

}else {
        #    echo "Questo username che hai scelto è perfetto!"; 
        echo '<img src="V-ICONA.jpg" alt="Icona KO" width="15" height="15">';
    }

    ?>

Qua mi segnala errore il compilatore:

PHP:
if($checkemail->num_rows >0){


Non capisco dove sta anche se ci metto if separato con la variabile vuota mi da lo stesso errore. Ossia questa:

PHP:
$vuota=$checkemail->num_rows;
if($vuota>0)
{
//
}
 

edin

Utente Attivo
7 Nov 2013
92
0
6
www.edinweb.altervista.org
prova a verificare la query:
PHP:
if($checkemail = $con->query("SELECT email FROM uty WHERE email = '$email' ") )
{

echo $checkemail->num_rows;
}

se tutto ok ti deve stampare un'intero del totale record trovati
 

edin

Utente Attivo
7 Nov 2013
92
0
6
www.edinweb.altervista.org
Quindi ti dovrebbe dare la visualizzazione dell'icona:
PHP:
if($checkemail = $con->query("SELECT email FROM uty WHERE email = '$email' ") )
{

if($checkemail->num_rows > 0)
    {
       echo '<img src="X-ICONA.png" alt="Icona OK" width="15" height="15">';
     }
    else {
            echo "Questo username che hai scelto è perfetto!"; 
            echo '<img src="V-ICONA.jpg" alt="Icona KO" width="15" height="15">';
          } 
}
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
problea inserimento dati

Ciao,

Inoltre volevo approfittare perchè jho provato ad unire i campi in un'unica query con l'operatore AND, ma sembra che ad uno lettera o numero che ci metto, mi dia una "X" di occupato cosa che in realtà non lo è. Questo è il li8stato modificato con l'operatore AND:

PHP:
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <?php
        require_once("connettimysqli.php");
       
 
#Controlla se esiste l'email nel db

  
if($checkemail = $con->query("SELECT email FROM uty WHERE email = '$email' OR username='$username'")){


$vuota=$checkemail->num_rows;
if($vuota>0){ 
echo '<img src="X-ICONA.png" alt="Icona OK" width="15" height="15">';

}else {
        #    echo "Questo username che hai scelto è perfetto!"; 
echo '<img src="V-ICONA.jpg" alt="Icona KO" width="15" height="15">';
}
}
?>
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
ciao

Ciao edin,

Da come puoi vedere l'intero codice che ho postato, purtroppo non c'è nessun focus su nessun campo. E la chiama al server se tu intendi il collegamento di ajax oossia alla pagina checkdate.php, si avviene soio una volta. Sto su ubuntu e non posso ripostare il codice perchè non ho l'accesso al nas (synology), dove lavoro.
 

edin

Utente Attivo
7 Nov 2013
92
0
6
www.edinweb.altervista.org
Solo una volta in pratica significa che, se hai compilato il campo email al passaggio su altro campo parte la chiamata ajax per interrogare se il campo email è presente.
Se vuoi fare anche il controllo dell'username in questto caso devi fare un 'altra chiamata e la relativa query...

Ti conviene farei controllo separatamente...

Poi se riesci a postare il codice lato client, vedo la logica che hai utlizzato...
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
problea inserimento dati

Ciao,

Ma tu riusciresti ad aiutarmi a fare un codice funzionale anche con il focus dei campi che sono obbligatori da compilare ??? Anche se dovessi reiniziare da capo o semplicemente modificare quello che ho gia ??? Ti posto i quattro file:


connettimysqli.php (connessione al db)

PHP:
<?php
// definizione delle variabili 
$host = "xxxxxxx"; 
$user = "fabio"; 
$pass = "xxxxx"; 
$db = "MegaLaboratorio"; 
// connessione al DBMS 
$con= new mysqli($host, $user, $pass, $db); 
if( mysqli_connect_errno()) { 
echo ('Non riesco a connettermi: ' . mysqli_connect_errno() ); 
}else{ 
#echo ("Ti sei connesso al database"." ".$db); 
}
?>

checkdate.php

PHP:
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <?php
        require_once("connettimysqli.php");
       
 
foreach($_POST as $k => $v) {
    $campo = $k;
    $valore = $v; 
    
} 
$$qry = "SELECT ".$campo." FROM uty WHERE ".$campo." = '$valore'"; 
if($checkemail = $con->query($qry) or die (mysql_error())){


    echo '<img src="X-ICONA.png" alt="Icona KO" width="15" height="15">'; 
    
}else { 
# echo "Questo username che hai scelto è perfetto!"; 
echo '<img src="V-ICONA.jpg" alt="Icona OK" width="15" height="15">'; 

}


?>


iscrizione.html


PHP:
<html>
    <head> 
        <script src='http://code.jquery.com/jquery-1.9.1.min.js'></script>
        <script type="text/javascript"> 
            $(document).ready(function() { $("input").keyup(function(){ 
                    var id = this.id; 
                    $.ajax({ type: "POST", 
                        url: "checkdate.php", 
                        data: id+"="+this.value, 
                        success: function(response){ 
                            $("#check_" + id).html(response); 
                        } 
                    });
                }); 
            });
        </script> 
    </head> 
    <body> 
        <div align ="center">
            <h2>Esempio form di registrazione</h2> 
        </div> 
        <form action="salvadati.php" method="POST">
   
                <label>
                    Username: <input type="text" name="username" id="username"/>
                    <span id="check_username"></span>
                </label> 
            
           
                <label>
                    <p> <p>
                    E-Mail: <input type="text" name="email" id="email"/>
                    <span id="check_email"></span>
                    </p> </p>
                </label> 
            
            <div align ="center">
              <input type="submit" value="Invia dati">
              
            </div> 
        </form> 
    </body>
</html>

Questa è la parte riguardante alla chiamata ajax

PHP:
<script type="text/javascript"> 
            $(document).ready(function() { $("input").keyup(function(){ 
                    var id = this.id; 
                    $.ajax({ type: "POST", 
                        url: "checkdate.php", 
                        data: id+"="+this.value, 
                        success: function(response){ 
                            $("#check_" + id).html(response); 
                        } 
                    });
                }); 
            });
        </script>


Infine salvadati.php

PHP:
<?php
include 'connettimysqli.php';

// Lancio una query per inserire tre righe nella tabella
$successo = $con->query("INSERT INTO uty (username, email) VALUES ('$username', '$email')"); 

// controllo l'esito della query
if ($successo) {#se va bene....
    echo 'Dati inseriti correttamente';
}
else {
    echo 'Errore nella query'; 
}
?>


Questo è tutto il programma. ovviamente dove vedi che ci sono le immagini delle iconcine della "V" = libero "X" = occupato, quelle così cpomìè impostato non funzionano correttamente. Se scrivo "aaaa" o "BBBB" lui prende occupato anche se nel db non esiste.

Questo è quanto. Se c'è da apportare modifiche migliorie ecc. ben venga: un aiuto mi fa sempre piacere averlo. Sono un po' imbranato con ajax. Grazie.
 
Discussioni simili
Autore Titolo Forum Risposte Data
P due problemi sulla ricerca tramite titolo PHP 14
P Problemi motore di ricerca PHP 12
M Problemi Motore di RICERCA INTERNA NEL SITO Javascript 0
M com_fabrik (joomla) problemi ricerca Joomla 0
M Problemi di ricerca con parola chiave particolare SEO e Posizionamento 2
A Problemi con ricerca Classic ASP 10
F Problemi visualizzazione mappa Android studio Sviluppo app per Android 0
S Problemi Javascript + Aruba Javascript 2
A Problemi con move_uploaded_file PHP 7
M Problemi con la stampa dei valori in php PHP 1
L Problemi con il login PHP 2
L Problemi form Pagina php HTML e CSS 3
R Tutto su utf-8 ma ancora problemi con i caratteri speciali in mysql MySQL 1
Z problemi con foreach insert into PHP 10
B javascript per problemi con pdf e Safari Javascript 0
N Problemi kit videosorveglianza IP Cam e Videosorveglianza 0
M Problemi con creazione maschere Presentati al Forum 1
M Problemi con query a più tabelle PHP 3
R Problemi anomalo insermento in db PHP 9
S Problemi delle funzioni eliminate con PHP e MySQL PHP 4
S Problemi di un principiante PHP 3
M Problemi con blog Grav CMS (Content Management System) 0
F Problemi di visualizzazione di un sito su più browser WordPress 0
S Problemi di visualizzazione form contatti sito web HTML e CSS 2
S incoerenza di stampa. problemi con il magenta Photoshop 3
A problemi con paypall Java 1
A Problemi di accesso da remoto a Ipcam IP Cam e Videosorveglianza 6
michele81 [WordPress] problemi plug meteo api key WordPress 4
E Problemi in registrazione telecamere Dahua IP Cam e Videosorveglianza 6
felino [Windows 8.1] Problemi con connessione WiFi Windows e Software 0
M [PHP] Problemi su inserimento array nel db PHP 7
E [PHP] problemi nuova riga con fwrite su piattaforma android PHP 5
M [PHP] Problemi di salvataggio su campo calcolato PHP 0
O [HTML] problemi con la regola "background-attachment: fixed" in EDGE HTML e CSS 0
M [PHP] Problemi con query unione PHP 11
M [PHP] Problemi con select PHP 6
Spown [WordPress] Problemi visualizzazione su più browser + voci menu in movimento WordPress 1
ANDREA20 [HTML] problemi con il footer HTML e CSS 1
D [MS Access] problemi con inserimento campo in una maschera MS Access 6
M [PHP] Problemi con il riconoscimento login. PHP 21
A [WordPress] problemi con xampp WordPress 2
M Problemi con database Apache/2.4.37 (Win32) OpenSSL/1.1.1a PHP/7.3.1 PHP 6
P Problemi comunicazioni Comunicazioni dallo Staff 8
G I problemi non vengono solo per nuocere Presentati al Forum 0
A Problemi Wi-Fi Fastweb Reti LAN e Wireless 4
C [WordPress] Url vulnerability e problemi sito da mobile WordPress 0
S [PHP] problemi con le sessioni PHP 3
B Problemi accesso Instagram Smartphone e tablet 1
T [PHP] problemi con il browser PHP 0
M [Flash] Problemi conversione formato swf Flash 20

Discussioni simili