PhpAdmin-MySQL com MAMP

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
ciao
non devi togliere values, ma correggere ho fatto un errore di scrittuta
....
'$bandierina'");
devi correggere in
....
'$bandierina')";

ho invertito la parentesi con gli apici
il codice dopo aver letto i valori dei post immessi da un utente li inserisce (salva) in un record della tabella messaggi

Perciò se ho ben capito:

qiuesto prende i dati dal form e li inserisce nel db

PHP:
 $q="INSER INTO messaggi(data_localeS,oggettoS,messaggioS,nomeS,cittaS,suoemailS,ip,bandierina)";

Questo li prende dal db e li mette nella pagina
PHP:
 VALUES('$data_localeS','$oggettoS','$messaggioS','$nomeS','$cittaS','$suoemailS','$ip','$bandierina')";

E questo?

$ris=mysql_query($q);


Io ho fatto una prova i post-successi non si stampano le parole scritte nel form
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
si, hai capito ti faccio un esempio senza scrivere tutti i tuoi dati
l'utente
pippo scrive ciao
topolino scrive come stai
pluto scrive abbastanza bene
.........
nella tabella troverai nei rispettivi campi id, nome, messaggio
1 pippo ciao
2 topolino come stai
3 pluto abbastanza bene
e così via
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
cioa
non avevo visto il tuo ultimo post
no
non puoi staccare INSERT da VALUE
con
$q ="INSERT....
VALUES.....";

prepari solamente cosa inserire, in pratica è la descrizione di cosa vuoi fare, cioe, in questo caso, inserire nella tabella messaggi e nei relativi campi nome ecc... i loro valori
dopo aver preparato la descrizione di quello che devi (vorresti) fare dici a php di eseguire

$ris=mysql_query($q);

quello che hai descritto
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
ciao
si, hai capito ti faccio un esempio senza scrivere tutti i tuoi dati
l'utente
pippo scrive ciao
topolino scrive come stai
pluto scrive abbastanza bene
.........
nella tabella troverai nei rispettivi campi id, nome, messaggio
1 pippo ciao
2 topolino come stai
3 pluto abbastanza bene
e così via

Prima, dimmi se è giusto quello che ho scritto nell'ultimo post,

a me non si stampa niente, questo è il codice coi div

PHP:
...
 echo "<div class=\"stampaS\">";
              
               echo "<div class=\"dataBox\">$data_localeS</div><br />";
                
                echo "<div class=\"campiAltiS\">";
                
                echo "<div class=\"oggettoBox\">$oggettoS</div>";  
                     
                echo "</div>"; // campiAltiS
                
                echo "<div class=\"messaggioBox\">$messaggioS</div>";
                 
                echo "<div class=\"bassoS\"></div>"; // bassoS
                
                echo "<div class=\"nomeBox\">$nomeS,</div>";  
                
                if (!empty($cittaS)) {  // Se il campo è vuoto non stampa neanche la virgola
                echo "<div class=\"cittaBox\">$cittaS,</div>"; 
                }

                if (!empty($suoemailS)) {  // Se il campo è vuoto non stampa neanche il trattino
                echo "<div class=\"mailBox\">$suoemailS&nbsp;&nbsp;-&nbsp;&nbsp;</div>"; 
               }

               echo "<div class=\"ipBox\">Ip: $ip</div>";
                
              echo "<div class=\"bandierinaBox\">$bandierina<div class=\"nazione\">".$countries[$two_letter_country_code][1]."</div></div>";

              echo "</div>"; // stampaS
        
if(isset($_POST['invia'])){
...
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
cioa
non avevo visto il tuo ultimo post
no
non puoi staccare INSERT da VALUE
con
$q ="INSERT....
VALUES.....";

prepari solamente cosa inserire, in pratica è la descrizione di cosa vuoi fare, cioe, in questo caso, inserire nella tabella messaggi e nei relativi campi nome ecc... i loro valori
dopo aver preparato la descrizione di quello che devi (vorresti) fare dici a php di eseguire

$ris=mysql_query($q);

quello che hai descritto
Non capisco una cosa: dal form via S_POST arrivano i dati, come fanno ad entrare nel db?

Eppoi, come fanno ad uscire per essere stampati?

Cosa intendi per tabella: quella nel db o il mio box dove si stampa il messaggio?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
ancora non stampa nulla perchè non abbiamo ancora detto a php e mysql cosa fare (se guardi il mio primo codice ho indicato dove metteremo la parte di lettura e visualizzazione), come facevi col file html dicevi a php di aprire/leggere le righe.
per prima cosa però dovresti dirmi se la parte che scrive nel db scrive effettivamente

edit
per tabella intendo quella del db
S_POST arrivano i dati, come fanno ad entrare nel db?
come ti ho appena detto, prima "descrivi" cosa fare poi dici a php di inseririrli
 
Ultima modifica:

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
ciao
ancora non stampa nulla perchè non abbiamo ancora detto a php e mysql cosa fare (se guardi il mio primo codice ho indicato dove metteremo la parte di lettura e visualizzazione), come facevi col file html dicevi a php di aprire/leggere le righe.
per prima cosa però dovresti dirmi se la parte che scrive nel db scrive effettivamente

edit
per tabella intendo quella del db

come ti ho appena detto, prima "descrivi" cosa fare poi dici a php di inseririrli
C'è un ultimo post che ti ho fatto 3 domande.

Se intendi questo, no

img02sj.jpg
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
si intendo l'ultima immagine che hai postato, sulla linguetta in alto vedi "mostra" cliccando vedi cosa contiene la tabella
(1 pippo ciao ecc)
poi per spiegarci meglio il meccanismo:
cosa facevi col file html?
i valori dei $_POST li allineavi in una stringa "data|nome|...."
aprivi e leggevi il file html (array delle righe)
inserivi all'ultimo posto dell'array la stringa
riscrivevi il file html
con mysql il processo è simile
i valori di $_POST li metti nella "descrizione"
dici a php (mysql_query) di scriverli sul db

è evidente che la "descrizione", come tutto del resto, segue una precisa sintassi.

comunque quello che si può dire a php di fare col db sono diverse cose.
limitandoci al nostro, le "descrizioni" che ci interessano sono:
"INSERT INTO tabella(campo1,...) VALUES('valore1','valore2',...)" che serve a inserire i valori
"SELECT * FROM TABELLA ...." estrae i valori dalla tabella e poi volendo si visualizzano

in seguito potrebbe servirti
"UPDATE tabella SET campo1='nuovo valore'..." che aggiorna il valore di uno o più campi

un altro esempio, invece di farti usare phpmyadmin per crere la tabella avrei potuto dirti di fare un file pinco.php

PHP:
<?php
//dati di connessione
$q="CREATE TABLE IF NOT EXISTS `messaggi` (
`id` INT( 12 ) NOT NULL AUTO_INCREMENT PRIMARY KEY  ,
`data_locale` INT( 12 ) NOT NULL ,
`nome` VARCHAR( 50 ) NOT NULL ,
`citta` VARCHAR( 50 ) NOT NULL ,
`email` VARCHAR( 250 ) NOT NULL ,
`ip` VARCHAR( 20 ) NOT NULL ,
`bandierina` VARCHAR( 50 ) NOT NULL ,
`messaggio` TEXT NOT NULL
) ENGINE = MYISAM" ;
$ris=mysql_query($q);
?>
lanciando lo script php avrebbe creato la tabella come hai fatto tu con phpmyadmin, oppure anche il database
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
ciao
si intendo l'ultima immagine che hai postato, sulla linguetta in alto vedi "mostra" cliccando vedi cosa contiene la tabella
(1 pippo ciao ecc)
poi per spiegarci meglio il meccanismo:
cosa facevi col file html?
i valori dei $_POST li allineavi in una stringa "data|nome|...."
aprivi e leggevi il file html (array delle righe)
inserivi all'ultimo posto dell'array la stringa
riscrivevi il file html
con mysql il processo è simile
i valori di $_POST li metti nella "descrizione"
dici a php (mysql_query) di scriverli sul db

è evidente che la "descrizione", come tutto del resto, segue una precisa sintassi.

comunque quello che si può dire a php di fare col db sono diverse cose.
limitandoci al nostro, le "descrizioni" che ci interessano sono:
"INSERT INTO tabella(campo1,...) VALUES('valore1','valore2',...)" che serve a inserire i valori
"SELECT * FROM TABELLA ...." estrae i valori dalla tabella e poi volendo si visualizzano

in seguito potrebbe servirti
"UPDATE tabella SET campo1='nuovo valore'..." che aggiorna il valore di uno o più campi

un altro esempio, invece di farti usare phpmyadmin per crere la tabella avrei potuto dirti di fare un file pinco.php

PHP:
<?php
//dati di connessione
$q="CREATE TABLE IF NOT EXISTS `messaggi` (
`id` INT( 12 ) NOT NULL AUTO_INCREMENT PRIMARY KEY  ,
`data_locale` INT( 12 ) NOT NULL ,
`nome` VARCHAR( 50 ) NOT NULL ,
`citta` VARCHAR( 50 ) NOT NULL ,
`email` VARCHAR( 250 ) NOT NULL ,
`ip` VARCHAR( 20 ) NOT NULL ,
`bandierina` VARCHAR( 50 ) NOT NULL ,
`messaggio` TEXT NOT NULL
) ENGINE = MYISAM" ;
$ris=mysql_query($q);
?>
lanciando lo script php avrebbe creato la tabella come hai fatto tu con phpmyadmin, oppure anche il database

Ok, ho cliccato su Mostra, appare questo:

SELECT *
FROM `messaggi`
LIMIT 0 , 30
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
Qualcosa non va, da errore quando invio il form

PHP:
$q="INSER INTO messaggi(data_localeS,oggettoS,messaggioS,nomeS,cittaS,suoemailS,ip,bandierina)
       VALUES('$data_localeS','$oggettoS','$messaggioS','$nomeS','$cittaS','$suoemailS','$ip','$bandierina')"; 
            
   $ris=mysql_query($q); 
   // controllo l'esito
	if (!$ris) {
		die("Errore nella query $query: " . mysql_error());
	}

Errore nella query : 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 'INSER INTO messaggi(data_localeS,oggettoS,messaggioS,nomeS,cittaS,suoemailS,ip,b' at line 1
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
ecco la parte per visualizzare i record, devi inseririla in quello che hai gia fatto per l'inserimento
se funzia, poi andremo a mettere la paginazione in modo che volendo si possano leggere tutti i messaggi senza far diventare la pagina un lenzuolo

PHP:
<?php
//devi inserire (senza i tag php) questa parte di scripi al posto di
/*
qui dopo mettermo la visualizzazione dei messaggi
*/
//diciamo a php cosa deve fare
//per ora mettimo un limite ai messaggi da visualizzare
$numero=20;//eventualmente dopo metteremo una paginazione in modo da poterli vedere tutti
//in pratica gli dico di selzionare/leggere tutti i campi avendo messo SELECT * in ordine decrescente di id
//limitando la selezione/lettura a 20 record
$q="SELECT * FROM messaggi ORDER BY id LIMIT $numero";
//esegui
$ris=mysql_query($q);
//convine verificare che ci siano dei record
if(mysql_num_rows($ris) > 0){//conto i record
	//leggo un record alla volta e lo stampo
	while($riga=mysql_fetch_array($ris)){//$riga diventa un array associativo con chiave "nome del campo" e suo valore
		//a scopo didattico faccio cosi, poi se vuoi puoi usare l'array direttamente
		//es. echo "<div class=\"oggettoBox\">".$riga['oggettoS']."</div>";
		//comunque come preferisci
		$data=$riga['data_localeS'];//verifica che le varie chiavi siano perfettamente uguali ai nomi dei campi che hai usato
		$oggetto=$riga['oggettoS'];
		$messaggio=$riga['messaggioS'];//non mi ricordo se ho messi nl2br quiando inserisco, se no mettilo qui
		//uniformo il nome, la citta e l'email in modo che vengano visualizzati sempre uguali indipendentemenete da come l'utente li inserisce
		$nome=ucwords(strtolower($riga['nomes']));//es pInco pALLO diventa Pinco Pallo
		$citta=ucwords(strtolower($riga['cittaS']));
		$email=strtolower($riga['emailS']);
		$ip=$riga['ip'];
		$bandierina=$riga['bandierina'];
		//e visualizzo
		echo "<div class=\"stampaS\">";
		echo "<div class=\"dataBox\">$data</div>"; //non usare il br non è elegante dai un margin both nel css
		echo "<div class=\"campiAltiS\">";
		echo "<div class=\"oggettoBox\">$oggetto</div>";
		echo "</div>"; // campiAltiS 
		echo "<div class=\"messaggioBox\">$messaggio</div>";
		echo "<div class=\"bassoS\"></div>"; // bassoS 
		echo "<div class=\"nomeBox\">$nome</div>";
		if (!empty($citta)) {  // Se il campo è vuoto non stampa neanche la virgola
			echo "<div class=\"cittaBox\">, $citta</div>"; //per non stampare la virgola mettila qui
        }
		if (!empty($suoemail)) {  // Se il campo è vuoto non stampa neanche il trattino
			echo "<div class=\"mailBox\">, $suoemail&nbsp;&nbsp;-&nbsp;&nbsp;</div>"; 
		}
		echo "<div class=\"ipBox\">Ip: $ip</div>";
		echo "<div class=\"bandierinaBox\">$bandierina<div class=\"nazione\">".$countries[$two_letter_country_code][1]."</div></div>";
		echo "</div>";//stampas
	}
}else{
	echo "<div class=\"stampaS\">non ci sono messaggi</div>";
}
//da qui in poi tutta la parte dell'insert e poi il form che hai gia fatto
?>
prova e sappimi dire
p.s.
verifica che non abbia fatto errori di digitazione
se funzioa poi faremo alcune piccole modifiche
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
Nella tabella del db li stampa, ma a video esce la scritta che non ci sono messaggi.

I controlli che hai inserito io li ho già:

Tuoi

PHP:
 $nome=ucwords(strtolower($riga['nomeS']));//es pInco pALLO diventa Pinco Pallo 
        $citta=ucwords(strtolower($riga['cittaS'])); 
        $suoemail=strtolower($riga['suoemailS']);


Miei

PHP:
$data_localeS = $_POST['WebDate_ScrivimiS']; // Questo codice richiama la funzione che si trova in questa pagina - WebDate_ScrivimiS()  
$nomeS = stripslashes(htmlentities(ucfirst(trim($_POST['nomeS']))));
$cittaS = stripslashes(htmlentities(ucfirst(trim($_POST['cittaS'])))); 
$suoemailS = htmlentities($_POST['suoemailS']); 
$suoemailS = str_replace(" ","",$suoemailS); // Toglie gli spazi interni nella mail
$oggettoS = stripslashes(htmlentities(ucfirst(trim($_POST['oggettoS']))));
$messaggioS = stripslashes(htmlentities(ucfirst(trim($_POST['messaggioS'])))); 
$validatorS = stripslashes(htmlentities(trim($_POST['validatorS'])));
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
Ho messo così, adesso stampa, ma non tiene i box-div allineati

PHP:
//diciamo a php cosa deve fare 
//per ora mettimo un limite ai messaggi da visualizzare 
$numero=3;//eventualmente dopo metteremo una paginazione in modo da poterli vedere tutti 
//in pratica gli dico di selzionare/leggere tutti i campi avendo messo SELECT * in ordine decrescente di id 
//limitando la selezione/lettura a 20 record 
$q="SELECT * FROM successi ORDER BY id LIMIT $numero"; 
//esegui 
$ris=mysql_query($q); 
//conviene verificare che ci siano dei record 
if(mysql_num_rows($ris) > 0){//conto i record 
    //leggo un record alla volta e lo stampo 
    while($riga=mysql_fetch_array($ris)){//$riga diventa un array associativo con chiave "nome del campo" e suo valore 
      
        echo "<div class=\"stampaS\">"; 
        echo "<div class=\"dataBox\">".$riga['data_localeS']."</div>"; //non usare il br non è elegante dai un margin both nel css 
        echo "<div class=\"campiAltiS\">"; 
        echo "<div class=\"oggettoBox\">".$riga['oggettoS']."</div>"; 
        echo "</div>"; // campiAltiS  
        echo "<div class=\"messaggioBox\">".$riga['messaggioS']."</div>"; 
        echo "<div class=\"bassoS\"></div>"; // bassoS  
        echo "<div class=\"nomeBox\">".$riga['nomeS']."</div>"; 
        if (!empty($cittaS)) {  // Se il campo è vuoto non stampa neanche la virgola 
            echo "<div class=\"cittaBox\">".$riga['cittaS'].",</div>"; 
        } 
        if (!empty($suoemailS)) {  // Se il campo è vuoto non stampa neanche il trattino 
            echo "<div class=\"mailBox\">".$riga['suoemailS']."&nbsp;&nbsp;-&nbsp;&nbsp;</div>";  
        } 
        echo "<div class=\"ipBox\">Ip: ".$riga['ip']."</div>"; 
        echo "<div class=\"bandierinaBox\">".$riga['bandierina']."<div class=\"nazione\">".$countries[$two_letter_country_code][1]."</div></div>"; 
        echo "</div>";//stampaS 
    } 
}else{ 
    echo "<div class=\"stampaS\">Non ci sono ancora Successi, volevi scriverne uno?</div>"; 
}
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
verifica l'apertura/chiusura dei div
es. alla riga
PHP:
echo "<div class=\"bassoS\"></div>"; // bassoS
apri e chiudi un div senza nulla dentro.
la posizione dei div è uguale a quella che dovresti avere quando usi il file html

edit
se hai ancora in linea il vecchio con il file html, posta di nuovo il link che guaro il layout e vedo se l'ho scritto giusto
 
Ultima modifica:

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
ciao
verifica l'apertura/chiusura dei div
es. alla riga
PHP:
echo "<div class=\"bassoS\"></div>"; // bassoS
apri e chiudi un div senza nulla dentro.
la posizione dei div è uguale a quella che dovresti avere quando usi il file html

edit
se hai ancora in linea il vecchio con il file html, posta di nuovo il link che guaro il layout e vedo se l'ho scritto giusto

I div sono esattamente come prima penso sia qualche altro problema perché come vedi ogni box appare un po' più grande del precedente, eppoi non stampa il numero dei messaggi()
PHP:
$numero=5; // Limite max successi da visualizzare
// Legge tutti i campi in ordine decrescente
$q="SELECT * FROM successi ORDER BY id LIMIT $numero"; 
//esegui 
$ris=mysql_query($q); 
if(mysql_num_rows($ris) > 0){ // Conto i record (i campi compilati nella tabella del db)
    // Leggo un record alla volta e lo stampo 
    while($riga=mysql_fetch_array($ris)){
        echo "<div class=\"stampaS\">"; 
        echo "<div class=\"dataBox\">".$riga['data_localeS']."</div>"; 
        echo "<div class=\"campiAltiS\">"; 
        echo "<div class=\"oggettoBox\">".$riga['oggettoS']."</div>"; 
        echo "</div>"; // campiAltiS  
        echo "<div class=\"messaggioBox\">".$riga['messaggioS']."</div>"; 
        echo "<div class=\"bassoS\"></div>"; // bassoS  
        echo "<div class=\"nomeBox\">".$riga['nomeS'].",</div>"; 
        if (!empty($riga['cittaS'])) {  // Se il campo è vuoto non stampa neanche la virgola 
            echo "<div class=\"cittaBox\">".$riga['cittaS'].",</div>"; 
        } 
        if (!empty($riga['suoemailS'])) {  // Se il campo è vuoto non stampa neanche il trattino 
            echo "<div class=\"mailBox\">".$riga['suoemailS']."&nbsp;&nbsp;-&nbsp;&nbsp;</div>";  
        }  
        echo "<div class=\"ipBox\">Ip: ".$riga['ip']."</div>"; 
        echo "<div class=\"bandierinaBox\">".$riga['bandierina']."<div class=\"nazione\">".$countries[$two_letter_country_code][1]."</div></div>"; 
        echo "</div>";//stampaS 
    } 
}else{  
    echo "<font style=\"font-size:18px;color:#0000ff;\">Non ci sono ancora Successi, volevi scriverne uno?</font>"; 
}
if(isset($_POST['invia'])){
...

img01zt.jpg
 
Ultima modifica:
Discussioni simili
Autore Titolo Forum Risposte Data
N problemi con phpadmin PHP 1
K form Inserimento record mysql PHP 2
P Mysql lento a cancellare MySQL 1
P Codifica caratteri speciali mysql php PHP 0
N MAX() + ADD_DATE - per update su Mysql MySQL 0
F Applicazione PHP/MySQL per prenotazioni: limitare il numero massimo di posti prenotabili PHP 20
L tipo boolean non funzionante su mariadb (mysql). E codice php 7.4. PHP 0
M PHP/MySQL - Estrarre valori min e max di ogni gruppo PHP 5
W MySQL ciclo in SELECT MySQL 0
L Mysql gestionale multipiattaforma MySQL 0
W MySQL SELECT list dinamica MySQL 0
M utilizzo mysql in nodejs - crea createdAt e updateAt MySQL 1
T colonne di tabelle mysql ordinate MySQL 0
M Sintassi "personalizzata" per mysql workbench? MySQL 0
A Mysql MySQL 0
F Ricreare struttura php+mysql su Xampp Apache 0
M Array associativi php su 2 campi mysql PHP 10
Z Controllo giorni MYSQL PHP 0
L php mysql non salva solo id PHP 21
L php mysql cerca e visualizza pagina PHP 0
L Mysql: Nascondere le pagine dopo una ricerca PHP 1
R Aggiornare record mysql con Ajax, jQuery e php Ajax 2
S problema con recupero dati tabella mysql PHP 2
E Progressbar estrazione dati da tabella mySQL Ajax 9
Z MySql injection PHP PHP 1
D controllare valore in tabella mysql PHP 0
A pulsante di update campo mysql con javascript Javascript 2
R Tutto su utf-8 ma ancora problemi con i caratteri speciali in mysql MySQL 1
T differenza fra mysql xampp e un mysql server Database 0
R Importazione csv su mysql tramite array PHP 2
Z Problema con INT MySQL PHP 1
Z Problema database MySQL con XAMPP PHP 0
D problema php mysql PHP 1
D problema php mysql PHP 1
N Server mysql non raggiungibile da connessione esterna MySQL 1
B Crea pdf da tabella mysql "ultima riga modificata" MySQL 4
D evitare di inserirre duplicati in mysql PHP 4
L salvare codice html in mysql PHP 3
L Google chart php mysql PHP 2
S Gestire scelta dropdown con dati da Mysql PHP 2
K cron job mysql PHP 3
elpirata Query per leggere dati da una tabella mysql e mostrarli a video in base a parametri passati tramite GET PHP 5
R Errore UPDATE tabella mysql PHP 1
R Caricamento immagine su cartella remota + mysql PHP 3
D Emoji in mysql Database 0
L Aiuto per programma web php/mySQL PHP 2
S Problema esportazione tabelle Mysql in Excel PHP 0
S Cancellare una riga MYSQL PHP 1
L Ricerca valore mysql e incremento PHP 73
G database mysql contengono informazioni ? MySQL 0

Discussioni simili