<!DOCTYPE html>
<html>
<script>
function funzione(){
var xhttp=new XMLHttpRequest();
xhttp.onreadystatechange=function(){
if(this.readyState==4 && this.status == 200){
document.getElementById("testo").innerHTML=this.responseText;
}
};
xhttp.open("GET","testo.txt",true);
xhttp.send();
}
</script>
<body>
<div id="testo"></div>
<input type="button" value="cambia testo" onClick="funzione()">
</body>
</html>
Eccolo funzionante! Però avevo commesso un errore nel punto evidenziato in rosso: invece che onreadystatechange avevo scritto onreadystatuschange.
JavascriptProva
domenica 27 maggio 2018
Esercizi con l'Ajax.
Esercizio di corretta scrittura di una XMLHttpRequest.
martedì 8 maggio 2018
Istruzioni preparate per il database MySqli in php.
Che cosa sono questi "comandi preparati" per il database in SQL?
Se io ho inserito i nomi dei sette nani con questa sintassi
Ecco, si fa proprio con la sintassi $conn->prepare. E poi con bind_param.
Proviamo un po'...
Ci aggiungo gli altri:
Perfetto!!!
Se io ho inserito i nomi dei sette nani con questa sintassi
$sql="INSERT INTO SetteNani(nome) VALUES('Pisolo');";
$sql.="INSERT INTO SetteNani(nome) VALUES('Brontolo');";
$sql.="INSERT INTO SetteNani(nome) VALUES('Cucciolo');";
$sql.="INSERT INTO SetteNani(nome) VALUES('Eolo');";
$sql.="INSERT INTO SetteNani(nome) VALUES('Dotto');";
$sql.="INSERT INTO SetteNani(nome) VALUES('Gongolo');";
$sql.="INSERT INTO SetteNani(nome) VALUES('Mammolo')";
if($conn->multi_query($sql)===TRUE){
echo "Tabella compilata";
}else{
echo "Compilazione non effettuata";
}
posso farlo anche con un solo comando in cui cambio i parametri. Questo è quanto sono riuscito finora a capire.Ecco, si fa proprio con la sintassi $conn->prepare. E poi con bind_param.
Proviamo un po'...
<?php
$servername = "localhost";
$username = "XXXX";
$password = "XXXX";
$database = "id3147737_questodatabase";
$conn=new mysqli($servername, $username, $password,$database);
if($conn->connect_error){
die("Connessione non riuscita ".$conn->connect_error);
}
echo "Connessione riuscita
";
$stmt=$conn->prepare("INSERT INTO SetteNani(nome) VALUES(?)");
$stmt->bind_param("s",$nome);
$nome="Brontolo";
$stmt->execute();
$nome="Pisolo";
$stmt->execute();
$conn->close();
?>
Sì, ha funzionato!Ci aggiungo gli altri:
$stmt=$conn->prepare("INSERT INTO SetteNani(nome) VALUES(?)");
$stmt->bind_param("s",$nomedelnano);
$nomedelnano="Cucciolo";
$stmt->execute();
$nomedelnano="Eolo";
$stmt->execute();
$nomedelnano="Dotto";
$stmt->execute();
$nomedelnano="Mammolo";
$stmt->execute();
$nomedelnano="Gongolo";
$stmt->execute();
Vediamo...Perfetto!!!
lunedì 7 maggio 2018
Esercizio con la compilazione di una tabella di database MySqli
Ora mi esercito a ottenere l'ultimo ID.
Con questa scusa mi ricostruisco tutto il codice...
L'inserimento multiplo l'ho capito, credo, abbastanza bene. Basta sostituire al metodo $conn->query il metodo $conn->multi_query.
Non era così semplice: bisogna porre molta attenzione a questa struttura dei dati da immettere (la tabella creata si chiamava SetteNani.
Ecco il codice completo per la creazione di una tabella e la sua compilazione: lo riscrivo ancora una volta:
E infatti poi vado a vedere la tabella di database e vedo che i sette nani sono lì tutti al loro posto!
Con questa scusa mi ricostruisco tutto il codice...
<?php
$servername = "localhost";
$username = "XXXX";
$password = "XXXX";
$database = "id3147737_questodatabase";
$conn=new mysqli($servername, $username, $password,$database);
if($conn->connect_error){
die("Connessione non riuscita ".$conn->connect_error);
}
echo "Connessione riuscita";
$sql="INSERT INTO Tabella(nome,cognome) VALUES('Ciccio','Formaggio')";
$conn->query($sql);
$last_id = $conn->insert_id;
echo $last_id
?>
E ottengo infatti:
Connessione riuscita9
L'inserimento multiplo l'ho capito, credo, abbastanza bene. Basta sostituire al metodo $conn->query il metodo $conn->multi_query.
Non era così semplice: bisogna porre molta attenzione a questa struttura dei dati da immettere (la tabella creata si chiamava SetteNani.
$sql="INSERT INTO SetteNani(nome) VALUES('Pisolo');";
$sql.="INSERT INTO SetteNani(nome) VALUES('Brontolo');";
$sql.="INSERT INTO SetteNani(nome) VALUES('Gongolo');";
$sql.="INSERT INTO SetteNani(nome) VALUES('Mammolo');";
$sql.="INSERT INTO SetteNani(nome) VALUES('Eolo');";
$sql.="INSERT INTO SetteNani(nome) VALUES('Dotto');";
$sql.="INSERT INTO SetteNani(nome) VALUES('Cucciolo')";
laddove è necessario il punto dopo il nome della variabile dal secondo record in poi e un punto e virgola accessorio tranne che nell'ultimo record da inserire.
Inoltre il nome della tabella è case sensitive, e scrivere Settenani invece che SetteNani è stato un'altra fonte di errore.
Ecco il codice completo per la creazione di una tabella e la sua compilazione: lo riscrivo ancora una volta:
<?php
$servername = "localhost";
$username = "XXXX";
$password = "XXXX";
$database = "id3147737_questodatabase";
$conn=new mysqli($servername, $username, $password,$database);
if($conn->connect_error){
die("Connessione non riuscita ".$conn->connect_error);
}
echo "Connessione riuscita
";
$sql="CREATE TABLE SetteNani(
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR(30)
)";
if($conn->query($sql)===TRUE){
echo "Tabella creata";
}else{
echo "Tabella non creata";
}
$sql="INSERT INTO SetteNani(nome) VALUES('Pisolo');";
$sql.="INSERT INTO SetteNani(nome) VALUES('Brontolo');";
$sql.="INSERT INTO SetteNani(nome) VALUES('Cucciolo');";
$sql.="INSERT INTO SetteNani(nome) VALUES('Eolo');";
$sql.="INSERT INTO SetteNani(nome) VALUES('Dotto');";
$sql.="INSERT INTO SetteNani(nome) VALUES('Gongolo');";
$sql.="INSERT INTO SetteNani(nome) VALUES('Mammolo')";
if($conn->multi_query($sql)===TRUE){
echo "Tabella compilata";
}else{
echo "Compilazione non effettuata";
}
$conn->close();
?>
E vediamo...Connessione riuscita Tabella creataTabella compilataCiò che appare sul documento è incoraggiante.
E infatti poi vado a vedere la tabella di database e vedo che i sette nani sono lì tutti al loro posto!
Esercizio sulla connessione e creazione di tabelle in MySqli con php
Ora mi devo esercitare a scrivere il codice in php per la connessione al database del server.
Riscrivo soltanto fino alla creazione della connessione, al momento in modo molto guidato e sbirciando abbondantemente:
Per essere sicuro devo inserire il codice che verifica la connessione.
Il codice va messo prima di "Connessione creata con successo".
La proprietà connect_error della connessione viene saggiata, ossia se esiste $conn->connect_error, allora la connessione "muore" (die?) e si mostra a video "Connessione non riuscita più l'errore $conn->connect_error.
Sembra di sì: "Connessione riuscita". Non ho modo di provare se funzioni la connessione fallita perché non so come inficiarla di proposito...
Ora vado a scrivere il codice per la creazione di una tabella. Qui si tratta di impostare la variabile $sql con il linguaggio SQL.
Vediamo se ricordo...
<?php
$servername = "localhost";
$username = "XXXX";
$password = "XXXX";
$database = "id3147737_questodatabase";
// Create connection
$conn = new mysqli($servername, $username, $password, $database);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
$sql="CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)";
if ($conn->query($sql) === TRUE) {
echo "Table MyGuests created successfully";
} else {
echo "Error creating table: " . $conn->error;
}
$conn->close();
?>
Fatto il salvataggio, cancello tutto e ricomincio.
Riscrivo soltanto fino alla creazione della connessione, al momento in modo molto guidato e sbirciando abbondantemente:
<?php $servername = "localhost"; $username = "XXXX"; $password = "XXXX"; $database = "id3147737_questodatabase"; $conn=new mysqli($servername,$username,$password,$database); ?>Non ho ottenuto messaggi di errore, quindi la connessione si è sicuramente creata bene.
Per essere sicuro devo inserire il codice che verifica la connessione.
Il codice va messo prima di "Connessione creata con successo".
La proprietà connect_error della connessione viene saggiata, ossia se esiste $conn->connect_error, allora la connessione "muore" (die?) e si mostra a video "Connessione non riuscita più l'errore $conn->connect_error.
$conn=new mysqli($servername,$username,$password,$database);
if($conn->connect_error){
die("Connessione fallita " . $conn->connect_error);
}
echo "Connessione riuscita";
?>
Riscrivo il tutto senza guida, se ci riesco.
<?php
$servername = "localhost";
$username = "XXXX";
$password = "XXXX";
$database = "id3147737_questodatabase";
$conn=new mysqli($servername,$username,$password,$database);
if($conn->connect_error){
die("Connessione fallita ".$conn->connect_error);
}
echo "Connessione riuscita";
?>
Vediamo se funziona...Sembra di sì: "Connessione riuscita". Non ho modo di provare se funzioni la connessione fallita perché non so come inficiarla di proposito...
Ora vado a scrivere il codice per la creazione di una tabella. Qui si tratta di impostare la variabile $sql con il linguaggio SQL.
Vediamo se ricordo...
<?php
$servername = "localhost";
$username = "XXXX";
$password = "XXXX";
$database = "id3147737_questodatabase";
$conn=new mysqli($servername,$username,$password,$database);
if($conn->connect_error){
die("Connessione fallita ".$conn->connect_error);
}
echo "Connessione riuscita";
$sql="CREATE TABLE Tabellina(
id INT AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR(30),
cognome VARCHAR(30)
)";
if($conn->query($sql)===TRUE){
echo "Tabella creata";
}else{
echo "Tabella non creata";
}
$conn->close();
?>
Funziona.
Iscriviti a:
Commenti (Atom)