- Home
- Categorie
- Coding e Sistemistica
- Coding
- non inserisce i dati nel db
-
@Thedarkita said:
E adesso che problema dà?
Stai utilizzando $inserimentoannunci che prima non c'era, ma comunque questa variabile non ha nessun valore.Si lo so, l'ho modificato ora..è riferita all'inserimento degli annunci..
[PHP]$inserimentoannunci=mysql_query("INSERT INTO annunci_cerco ('title','body') VALUES ('$title',$body')");} if($inserimentoannunci){ echo"".$_POST['title'].""; echo"".$_POST['body'].""; }else{ echo"errore"; }
[/PHP]
il problema è che non inserisce nessun dato nel db, ma nemmeno mi fa vedere il testo inserito dal form nella pag..vedo solo la barra del titolo e il nome utente...
Prima non avevo corretto bene..ma il problema rimane sempre...
-
Adesso riesco a vedere solo il messaggio di errore, che non mi segnala l'impossibilità di inserire i dati..come risolverlo??
ho fatto anche il var_dump per la query è mi da l'errore...come fare per risolvere??Dimento matta!!!
-
Manca un apice:
[php]
$inserimentoannunci=mysql_query("INSERT INTO annunci_cerco ('title','body') VALUES ('$title', '$body')");
[/php]
-
@Thedarkita said:
Manca un apice:
[php]
$inserimentoannunci=mysql_query("INSERT INTO annunci_cerco ('title','body') VALUES ('$title', '$body')");
[/php]corretto, e funziona anche..ma inserisce solo il testo e non il titolo...
come correggere??
E come faccio poi a far mantenere quello che è stato inserito nella pagina,invece di perderlo con il logout e il caricamento della pagina??:o[PHP]<?php
session_start();
Include("varDB.inc");
$conn=mysql_connect("localhost","root","");
mysql_select_db("sito");
$messaggio="";
?><html>
<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 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"; } ?> </ul> </div>
<?php
if (!isset($_POST['invia'])){
?>
<form method="POST" action="#">
<p>Inserisci i tuoi annunci</p>Titolo<input type="text" name="title" value=""/><br> Testo<textarea name="body" cols="10" rows="10"></textarea> <input type="submit" name="invia" value="inserisci"/>
</form>
<?php
}else{
$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){ echo"".$title.""; ; echo"<br>"; echo"".$body."" ; }else{ $messaggio="errore"; } } mysql_close(); ?> </body>
</html>[/PHP]
-
$title="" sovrascrive il contenuto di title, manca un = nell'if.
Devi fare un'altra query per recuperare l'annuncio cosi da mostrarlo di base ogni volta accedi alla pagina.
-
@Thedarkita said:
$title="" sovrascrive il contenuto di title, manca un = nell'if.
Devi fare un'altra query per recuperare l'annuncio cosi da mostrarlo di base ogni volta accedi alla pagina.
Oh vero, grazie tante!!!
mi potresti fare un esempio, cosi da capire meglio?...chiedo perchè non sono pratica...
-
Dipende di preciso come vuoi fare, di norma inserimento e modifica non vengono mischiati in questo modo.
-
Non voglio mischiare l'inserimento e la modifica in una query, ma solo far si che un utente loggato veda il contenuto..
Dovrei prima usare SELECT e poi richiamare e stampare tutto con il mysql_fetch_array?
-
Si, devi fare in quel modo.
-
@Thedarkita said:
Si, devi fare in quel modo.
grazie mille, ho fatto come hai detto..funziona!!
Però non capisco perchè mi inserisce gli annunci doppi..non solo nella pagweb, ma anche nel db..il codice delle due pagine...una solo per il form e l'altra contenente le query[PHP]<?php
session_start();
Include("varDB.inc");
$conn=mysql_connect("localhost","root","");
mysql_select_db("sito");
$messaggio="";
?><html>
<head>
<script type="text/javascript">var NREUMQ=NREUMQ||[];NREUMQ.push(["mark","firstbyte",new Date().getTime()]);</script>
<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 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"; } ?> </ul> </div>
<?php
if (isset($_SESSION['utente'])){
?>
<form method="POST" action="entra.php">
<p>Inserisci i tuoi annunci</p>Titolo<input type="text" name="title" value=""/><br> Testo<textarea name="body" cols="10" rows="10"></textarea> <input type="submit" name="invia" value="inserisci"/>
</form>
<?php}else{
echo"sessione scaduta";
}
?><script type="text/javascript">if(!NREUMQ.f){NREUMQ.f=function(){NREUMQ.push(["load",new Date().getTime()]);var e=document.createElement("script");e.type="text/javascript";e.src=(("http:"===document.location.protocol)?"http:":"https:")+"//"+"d1ros97qkrwjf5.cloudfront.net/42/eum/rum.js";document.body.appendChild(e);if(NREUMQ.a)NREUMQ.a();};NREUMQ.a=window.onload;window.onload=NREUMQ.f;};NREUMQ.push(["nrfj","beacon-1.newrelic.com","1b473294f5","550561","M1QBYUMCDUAEWkRfWgoeNkdYTAVcF0xdGUMGQgZaHxMLQw==",0,61,new Date().getTime(),"","","","",""]);</script>
<script type="text/javascript">if(!NREUMQ.f){NREUMQ.f=function(){NREUMQ.push(["load",new Date().getTime()]);var e=document.createElement("script");e.type="text/javascript";e.src=(("http:"===document.location.protocol)?"http:":"https:")+"//"+"d1ros97qkrwjf5.cloudfront.net/42/eum/rum.js";document.body.appendChild(e);if(NREUMQ.a)NREUMQ.a();};NREUMQ.a=window.onload;window.onload=NREUMQ.f;};NREUMQ.push(["nrfj","beacon-1.newrelic.com","1b473294f5","550561","M1QBYUMCDUAEWkRfWgoeNkdYTAVcF0xdGUMGQgZaHxMLQw==",0,59,new Date().getTime(),"","","","",""]);</script>
</body></html>[/PHP]
[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){ echo"".$title.""; echo"<br>"; echo"".$body."" ; }else{ $messaggio="errore"; } $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'];}
mysql_close(); ?> </ul> </div>
</body>
</html>
[/PHP]
-
Il problema è che tu per inserire mandi alla pagina X, che non inserisce solamente, ma visualizza anche. Basta refleshare quella pagina per avere un altro inserimento identico.
-
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!!