Primo approccio con mysqli

paperinik4

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

Mi servirebbe gentilmente una mano o da modicare qualcosina nel codice. Ho iniziato con l'estensione mysqli e su internet si trova ancora poco. Ho provato questo codice ma non mi memorizza niente nella tabella.

questo è il codice: connettimysqli.php

PHP:
<?php


// connessione a MySQL per istanza

// definizione delle variabili
$host = "nas";
$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);

}
?>

Questo 'è l'intero codice riguardante alla parte d'inserimento dei campi. L'ho fatta molto semplice con due campi soli: nome e cognome.

PHP:
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
      <script src='http://code.jquery.com/jquery-1.9.1.js'></script>
      <script src='http://code.jquery.com/jquery-migrate-1.1.1.min.js'></script>
      <script>
  $.ajax({ 
      type:'post', 
      url:'controllodati.php', 
      data: id + '=' + value, 
      success:function(data) { 
          data = data.split(); 
         
          $.each(data,function(key, val)) { 
              if(val == 'F') { 
                  $('#' + id).css('border','1px solid red'); $(id).html(''); 
              } else { 
                  $('#' + id).css('border','1px solid green'); 
              } 
          }
                  ); 
          $(id).html(val);
      } 
              )
  };
      </script>
    </head>
      <body>
        
        <<form action="" method="POST">
        <!--Nome:  <input type='text' id='nome' name='nome'>   <nome> </nome>
             Cognome:  <input type='text' id='cognome' name='cognome'>  <cognome></cognome>-->
            
Nome: <input type='text' onfocus="this.style.borderColor='blue'"  name="nome"/> <nome> </nome>

        <p> <p>
            Cognome: <input type='text' onfocus="this.style.borderColor='blue'"  name="cognome"/> <cognome></cognome>
        <div align ="center">
            <button type='submit'>Invio dati </button>
            </div>
        
        </p></p>
        </form>
        <?php
    include 'connettimyslqi.php';
  $result = $mysqli->query("INSERT INTO uty VALUES(nome, cognome)");

// controllo l'esito della query
if (!$result) {
	echo 'Errore nella query';
}
else {
	echo 'Dati inseriti correttamente';
}

        ?>
    </body>
</html>

E questo è il file che controlla i dati chiamato controllodati.php

PHP:
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <?php
        include 'connettimysqli.php'; 
        foreach($_POST as $key => $val) { 
            if($key == 'nome') { 
                $res = $con->query("SELECT nome FROM uty WHERE nome = '$val' "); 
                if($res->num_rows == 0) { 
                    echo "V"; 
                    
                } else {
                    echo "F"; 
                    
                } 
                
                } else if($key == 'cognome') { 
               $res = $con->query("SELECT cognome FROM uty WHERE cognome = '$val' "); 
                if($res->num_rows == 0) { 
                  echo "V"; 
                  
              } else { 
                  echo "F"; 
                 
              } 
             }
             } 
            
        ?>
    </body>
</html>

Innanzi tutto non mi visualizza ne la "f" se è occupato o meno che starebbe per false = F e ne la V che starebbe per libero. Dove sbaglio nell'approccio ??? In compenso se si prova a far girare il tutto, i bordi diventano di colore blu. Spero che anche stavolta mi date un piccolo aiutino grazie.
 
La funzione javascript è sbagliata
ma non usi netbeans anche tu?
nb.png
 
è incorreggibile!
riscrivilo con un po più di accortezza :
la chiamata ajax dovrebbe avvenire su un evento (click change onkeyup etc), scrivendo come hai fatto tu forse avviene solo al caricamento della pagina
il plugin migrate a cosa ti serve?
la funzione each serve per ciclare un array; non lo vedo
$(id).html('')
??? non esiste id in quel ciclo, al massimo $("#" + id) ma cmq id non esiste
 
ciao

Ciao cricric,

Premesso che mi hanno aiutato step by step, ma già dall'inizio c'era un qualche cosa che non andava. Difatti questa è la dimostrazione di ciò che sospettavo. A riscriverlo sinceramente avrei qualche difficoltà in quanto sono quasi a digiuno su ajax e gli esempi che ho visto sono sempre incomprensibili o incompleti. Ecco spiegato il motivo per cui non funzionava....... Tu mi potresti dare una mano ?????
 
Te lo avevo già riscritto quasi tutto
mi pareva di ricordalmelo questo codice
non posso riscrivertelo ogni mese
 

Discussioni simili