- Home
- Categorie
- Coding e Sistemistica
- Coding
- non inserisce i dati nel db
-
Stai utilizzando quelle variabili, prima di assegnarli il valore. Per cui è normale ti dia un notice di variabili mancanti.
-
@Thedarkita said:
Stai utilizzando quelle variabili, prima di assegnarli il valore. Per cui è normale ti dia un notice di variabili mancanti.
Il problema è che non inserisce nemmeno nel db!
Cosa intendi per variabili mancanti...e come potrei fare?te lo chiedo perchè non sono molto pratica..
-
[php]
$query =mysql_query("INSERT INTO annunci_cerco ('username','title','body') VALUES ('$username','$title','$body')");
$title=$_POST['title'];
$body=$_POST['body'];
[/php]
Non puoi utilizzare una cosa e dopo farla, è come dice mangio la torta e poi preparo la torta. È una cosa impossibile, dovresti fare il contrario, quindi:
[php]
$title=$_POST['title'];
$body=$_POST['body'];
$query =mysql_query("INSERT INTO annunci_cerco ('username','title','body') VALUES ('$username','$title','$body')");[/php]
-
@Thedarkita said:
[php]
$query =mysql_query("INSERT INTO annunci_cerco ('username','title','body') VALUES ('$username','$title','$body')");
$title=$_POST['title'];
$body=$_POST['body'];
[/php]
Non puoi utilizzare una cosa e dopo farla, è come dice mangio la torta e poi preparo la torta. È una cosa impossibile, dovresti fare il contrario, quindi:
[php]
$title=$_POST['title'];
$body=$_POST['body'];
$query =mysql_query("INSERT INTO annunci_cerco ('username','title','body') VALUES ('$username','$title','$body')");[/php]
Ennesimo cambio, ma non faceva vedere nulla sulla pag web..allora ho cambiato così, cercando di solo una pag sia per db che per il form in modo che nell'altra si visualizzi solo il contenuto..ma nulla...vedo solo la barra del titolo...
Ho corretto e messo prima le cose che mi dicevi,ma nulla...[PHP]<?php
$conn=mysql_connect("localhost","root","");
mysql_select_db("sito");session_start();
?>
<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>"; } ?> </ul> </div>
</body>
</html>
[/PHP]
[PHP]<?php
$conn=mysql_connect("localhost","root","");
mysql_select_db("sito");include("varDB.inc");
session_start();?>
<html>
<head>
<!-- striscia in alto -->
<title>Login</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>"; } ?> </ul> </div> <?php if(!isset($_POST['invia'])){ ?> <form method="Post" action="entra.php"> title<input type="text" name="title" value=""/> body<textarea name="body" cols="20" rows="30"></textarea> <input type="submit" name="invia" value="invia"/>
</form>
<?php
}else{
$title=$_POST['title'];
$body=$_POST['body'];$query=mysql_query("INSERT INTO annunci_cerco ('title','body') VALUES ('$title',$body')"); if($inserimentoannunci){ echo"".$_POST['title'].""; echo"".$_POST['body'].""; }else{ echo"errore"; } }
mysql_close();
?></body>[/PHP]
-
E adesso che problema dà?
Stai utilizzando $inserimentoannunci che prima non c'era, ma comunque questa variabile non ha nessun valore.
-
@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.