[RISOLTO]Problema connessione + insert mysqli

  • Creatore Discussione Creatore Discussione Hackx
  • Data di inizio Data di inizio

Hackx

Utente Attivo
20 Ago 2013
108
0
16
Ciao a tutti,

Ho un problema riguardante l'inserimento dei dati nel DB

config.php:

PHP:
<?php

$host = "localhost";
$username = "root";
$password = "password";
$database = "DB";

//connessione DB

$conn = mysqli_connect($host, $username, $password, $database)
        or die (mysqli_connect_error());

?>


ed ecco il controllo del nome e del cognome ... che poi dovranno essere inseriti nel DB

PHP:
<?php

include "config.php";

if(isset($_POST['submit']))
{

if ($_POST['nome'] == '')
{
echo "Non hai compilato il campo nome.<br/>";
} else {
$nome = $_POST['nome'];
}


     if ($_POST['cognome'] == '')
     {
     echo "Non hai compilato il campo cognome.<br/>";
     } else {
     $cognome = $_POST['cognome']; 
     }	  
	 
	
echo "registrazione effettuata!";
} else {	
mysqli_query($conn,"INSERT INTO 'prova iscrizione' ('nome', 'cognome') VALUES "
. "('{$_POST['nome']}', '{$_POST['cognome']}')");

echo "Registrazione ";
?>

Dove sbaglio ?... non mi restituisce nessun errore è come se ogni volta che faccio invia ...i dati sono scritti sul DB in maniera corretta, ma quando vado a vedere il DB su phpmyadmin, quest'ultimo è vuoto !

Come posso fare ??

Ringrazio,
Andrea
 
Ciao, gli errori ci sono ma non li stampi
non puoi concatenare una stringa in quel modo e ti conviene separare la stringa della query dall'esecuzione. almeno fino a che non diventi super esperto allora potrai scrivere tutto il codice su una riga sola
PHP:
$query = "INSERT INTO 'prova iscrizione' ('nome', 'cognome') 
                         VALUES ('{$_POST['nome']}', '{$_POST['cognome']}') ";
$res = mysqli_query($conn, $query);
if (!$res)
    echo mysqli_error($conn);
così è più ordinato
 
Ultima modifica:
Ciao !

Innanzitutto ti volevo ringraziare per l'aiuto ! e per il consiglio !... ho corretto tutto ed ecco gli errori che mi stampa:

1° errore : Undefined index: nome

2° errore : Undefined index: cognome

3° errore : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''prova iscrizione' ('nome', 'cognome') VALUES ('', ''' at line 1Registrazione (presumo sia l'errore del mysqli)

Ringrazio,
Andrea
 
Per i primi due ci sono degli errori di logica nelle if e else che hai messo
puoi fare semplicemente cosi
PHP:
<?php

include "config.php";

if (isset($_POST['submit'])) {

    if (!empty($_POST['nome']) && !empty($_POST['cognome'])) {

        $query = "INSERT INTO prova_iscrizione ('nome', 'cognome') 
                         VALUES ('{$_POST['nome']}', '{$_POST['cognome']}')";
        $res = mysqli_query($conn, $query);
        if (!$res)
            echo mysqli_error($conn);
        else
            echo "registrazione effettuata!";
    } else {
        echo "Non hai compilato tutti i campi ";
    }
}
?>
il terzo riguarda gli apici che hai messo per racchiudere il nome della tabella, sarebbe consigliato non mettere spazi vuoti nel nome dei campi o delle tabelle, in altrnativa si devono usare altri tipi di apici che non mandano in errore la query ( ` )
 
Ciao,

Ti volevo dire che ho risolto! :D ! finalmente!
Ho impostata tutto con gli elseif ed ho messo le variabili di sotto, infondo al codice sopra la query d'inserimento e tutto funziona !

Grazie mille :) !
Andrea
 
ciao
io metterei almeno un trim, altrimenti qualcuno può iscriversi con una serie di spazi
PHP:
<?php
//....
if (!empty(trim($_POST['nome'])) && !empty(trim($_POST['cognome']))) {
//....
?>
e fare anche altro es controllare che il nome e/o cognome non siano es pin**|+co cioè con caratteri strani e verificherei che non esistano di già
 
ciao
io metterei almeno un trim, altrimenti qualcuno può iscriversi con una serie di spazi
PHP:
<?php
//....
if (!empty(trim($_POST['nome'])) && !empty(trim($_POST['cognome']))) {
//....
?>
e fare anche altro es controllare che il nome e/o cognome non siano es pin**|+co cioè con caratteri strani e verificherei che non esistano di già

Ciao,

Adesso riguarderò tutto il codice ed aggiungerò, oltre all'empty, il comando trim.
Mentre per controllare nome e cognome ho usato preg_match (sole lettere) e per verificare se è presente già nel DB o no posso usare una cosa del genere:

PHP:
$query = "SELECT nome FROM prova_iscrizione WHERE nome = '$nome'";
$risultato = mysql_query($query, $db);
$num = mysql_num_rows ($risultato);
if($num == '0'){
puoi salvare il record
}else{
errore record gia esistente
}

Un'altra domanda.. se è corretto, lo script sopra lo devo usare per il nome e cognome. Ovvero ne devo scrivere due distinti oppure li posso unire in qualche modo ??

Ringrazio,
Andrea
 
cioa
mi ero dimenticato (l'avevo saltato nel copy/paste)

PHP:
$query = "SELECT nome FROM prova_iscrizione WHERE nome = '$nome' AND cognome='$cognome'";
devi verificare che non ci siano es due mario rossi
 

Discussioni simili

M
Risposte
12
Visite
3K
HTML e CSS
Membro cancellato 26246
M