- Home
- Categorie
- Coding e Sistemistica
- Coding
- non inserisce i dati nel db
-
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 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]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]
-
Puoi fare cosi:
[php]
echo $riga['title']."<br>".$riga['body'];
[/php]