- Home
- Categorie
- Coding e Sistemistica
- Coding
- non inserisce i dati nel db
- 
							
							
							
							
							no, ho cambiato destinazione e creato due pagine diverse, una per il form che invia i dati ad un'altra pagina..se non errro, perchè mettendo in commento questa parte di codice non si pone piùil problema...ma vorrei sapere se è giusto fare così... [PHP]<?php 
 session_start();
 include("varDB.inc");
 $conn=mysql_connect("localhost","root","");
 mysql_select_db("sito");?> <html> <head> 
 <!-- striscia in alto -->
 <title>annunci</title>
 <link rel="stylesheet" type="text/css" href="stile.css">
 </head>
 <body>
 <table>
 <tr>
 <td>
 <p><font face="magneto" color="black" size="20px"><center><b><i>"LA BOTTEGA DELL'USATO"</i></b></center></p></td> </tr> </table> <div id="menu"> <ul> <?php if(isset($_SESSION['utente'])){ echo"<li><font face='georgia' color='red'size='4px'>ciao " . $_SESSION['utente'] . "</li>"; echo"<li><a href='login.php?azione=logout'>logout</a></li>"; echo"<li><a href='cancellato.php'>cancella</a></li>"; echo"<br>"; echo"<br>"; }else{ $messaggio= "sessione scaduta"; } $title=$_POST['title'];$body=$_POST['body']; if($title=="" ||$body==""){ 
 echo "Non hai riempito i campi";}else{ $inserimentoannunci=mysql_query("INSERT INTO annunci_cerco (title,body) VALUES ('$title','$body')"); } if($inserimentoannunci){ $risultato = mysql_query("SELECT * FROM annunci_cerco");while ($riga = mysql_fetch_array($risultato)) { 
 echo $riga['title'];
 echo"<br>";
 echo"<br>";
 echo"<br>";
 echo"<br>";
 echo $riga['body'];} 
 //echo"".$title."";
 //echo"<br>";
 //echo"".$body."" ;}else{ $messaggio="errore"; } mysql_close(); ?> </ul> </div></body> </html> [/PHP] Dove si vede la parte messa in commento...è giusto così o non si può fare? 
 
- 
							
							
							
							
							Cioè vorresti togliere i commenti? 
 
- 
							
							
							
							
							DOvrei togliere la parte in commento, perchè altrimenti mi stampa due volte quello che scrivo...però non so se posso mettere dentro un if while... 
 
- 
							
							
							
							
							Allora non inseriva 2 volte, semplicemente stampava 2 volte. È normale che se tu inserisci nella tabella, e dopo dici stampami la tabella, hai già stampato 1 volta ciò che hai appena inserito. Per cui non c'è motivo che fai altri echo. 
 
- 
							
							
							
							
							Però inseriva lo stesso due volte nel db, lo stesso messaggio...allora posso togliere quello che ho già messo in commento? 
 
- 
							
							
							
							
							Si lo puoi togliere tranquillamente, visto che non ti serve a nulla. 
 
- 
							
							
							
							
							ok, ti ringrazio! 
 
- 
							
							
							
							
							però inserisce sempre doppio messaggio nel db..e vedo il titolo attaccato al messaggio anche se metto il br...come posso risolvere? 
 
- 
							
							
							
							
							anzi ogni volta che ricarico la pagina mi trovo altri messaggi identici, e lo stesso capita nel db!! 
 
- 
							
							
							
							
							Questo è normale, visto che hai unito visualizzazione e inserimento nella stessa pagina, come ti avevo già detto prima dovrebbero essere 2 cose separate. 
 
- 
							
							
							
							
							@Thedarkita said: Questo è normale, visto che hai unito visualizzazione e inserimento nella stessa pagina, come ti avevo già detto prima dovrebbero essere 2 cose separate. Hai ragione, scusa non avevo ben capito cosa..pensavo si riferisse solo alla stampa a video..provvedo a correggere! 
 
- 
							
							
							
							
							Ho creato un'altra pagina..solo che vedo errori di notice, anche se ho richiamato le varibiali...ecco il codice.. 
 Notice: Undefined index: title in C:\xampp\htdocs\prova\annunci.php on line 59Notice: Undefined index: body in C:\xampp\htdocs\prova\annunci.php on line 60 [PHP]<?php 
 //inizio la sessione utente
 session_start();
 include("varDB.inc");
 //creo una connessione al db e lo seleziono
 $conn=mysql_connect("localhost","root","");
 mysql_select_db("sito");?> <html> <!-- striscia in alto--> <head> <link rel="stylesheet" type="text/css" href="stile.css"> <title>Inserisci </title> </head> <body> <table> <tr> <td> <p><font face="magneto" color="black" size="20px"><center><b><i>"LA BOTTEGA DELL'USATO"</i></b></center></p> </td> </tr> </table> <div id="menu"> <ul> <?php //controllo che ci sia una sessione utente, altrimenti "sessione scaduta" if(isset($_SESSION['utente'])){ echo"<li><font face='georgia' color='red'size='4px'>ciao " . $_SESSION['utente'] . "</li>"; echo"<li><a href='login.php?azione=logout'>logout</a></li>"; echo"<li><a href='cancellato.php'>cancella</a></li>"; echo"<br>"; echo"<br>"; }else{ $messaggio= "<font color='black' face='times new roman' size='4px'>sessione scaduta"; } ?> </ul> </div><?php 
 $title=$_POST['title'];
 $body=$_POST['body'];
 $risultato = mysql_query("SELECT * FROM annunci_cerco WHERE title='$title' AND body='$body' ");
 //mostro tutti gli annunci inseriti
 while ($riga = mysql_fetch_array($risultato)) {
 echo" <font color='black' face='times new roman' size='4px'>";
 echo $riga['title'] ;echo"<br>"; 
 echo"<br>";
 echo"<br>";
 echo"<font color='black' face='times new roman' size='4px'>";
 echo $riga['body'];} 
 mysql_close();
 ?>
 </body></html> 
 [/PHP]
 
- 
							
							
							
							
							Significa che le 2 variabili POST non hanno quei 2 indici che stai utilizzando al momento dell'accesso alla pagina. 
 
- 
							
							
							
							
							@Thedarkita said: Significa che le 2 variabili POST non hanno quei 2 indici che stai utilizzando al momento dell'accesso alla pagina. mmm...eppure a me sembra di aver messo gli stessi indici... 
 
- 
							
							
							
							
							Si, ma alla pagina ci arrivi mediante il form? Altrimenti non invi nulla con il metodo post ed è normale vedere quei messaggi di avviso. 
 
- 
							
							
							
							
							hai ragione..non ci arrivo tramite il form, ma non saprei come altro richiamare le variabili title e body... 
 
- 
							
							
							
							
							Ma in questa pagina, a cosa ti servono? 
 
- 
							
							
							
							
							[PHP]<?php 
 //inizio la sessione utente
 session_start();
 include("varDB.inc");
 //creo una connessione al db e lo seleziono
 $conn=mysql_connect("localhost","root","");
 mysql_select_db("sito");
 //inizializzo la variabile messaggio
 $messaggio="";?> <html> <!-- striscia in alto--> <head> <link rel="stylesheet" type="text/css" href="stile.css"> <title>Inserisci </title> </head> <body> <table> <tr> <td> <p><font face="magneto" color="black" size="20px"><center><b><i>"LA BOTTEGA DELL'USATO"</i></b></center></p> </td> </tr> </table> <div id="menu"> <ul> <?php //controllo che ci sia una sessione utente, altrimenti "sessione scaduta" if(isset($_SESSION['utente'])){ echo"<li><font face='georgia' color='red'size='4px'>ciao " . $_SESSION['utente'] . "</li>"; echo"<li><a href='login.php?azione=logout'>logout</a></li>"; echo"<li><a href='cancellato.php'>cancella</a></li>"; echo"<br>"; echo"<br>"; }else{ $messaggio= "<font color='black' face='times new roman' size='4px'>sessione scaduta"; } ?> </ul> </div><?php $risultato = mysql_query("SELECT * FROM annunci_cerco"); //mostro tutti gli annunci inseritiwhile ($riga = mysql_fetch_array($risultato)) { 
 echo" <font color='black' face='times new roman' size='4px'>";
 echo $riga['title'] ;echo"<br>"; 
 echo"<br>";
 echo"<br>";
 echo"<font color='black' face='times new roman' size='4px'>";
 echo $riga['body'];} mysql_close();?> 
 </body></html> 
 [/PHP]hai ragione, non mi servono a nulla, perchè prima nella query della select avevo messo le variabili title e body, mentre togliendo tutto funziona alla perfezione!ecco il codice corretto... però un'altra cosa.. come faccio ad andare a capo?perchè il br non funziona e il body e il titolo successivo sono attaccati... 
 
- 
							
							
							
							
							Il br devi metterlo dopo echo $riga['body']; altrimenti non ottieni ciò che vuoi. 
 È fondamentale che studi un pò di html, perchè lavorando con php si da per scontato di sapere perfettamente come funziona html, altrimenti lavorare con moduli o anche un semplice andare a capo ti fà perdere moltissimo tempo, in quanto vai per tentativi.
 
- 
							
							
							
							
							hai ragione..ti chiedo anche se posso mettere le stringhe in questo modo o c'è un modo per accumunarne? [PHP]echo $riga['title']; echo"<br> "; echo $riga['body']; 
 [/PHP]