• User

    non inserisce i dati nel db

    Sto cercando di inserire dei dati nel db ma non riesc proprio a capire quale e dove sia il problema, vi allego il codice.

    Visualizzo solo la barra in alto e nulla più..aiutatemi voi!:o
    [PHP]<?php
    $conn=mysql_connect("localhost","root","");
    mysql_select_db("sito");

    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>
    

    </head>

    <body>

        <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>
                            
                            
                            
    <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>

    </body>

    </html>
    [/PHP]

    [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>
    

    </head>

    <body>

        <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
    $username=("username");
    $title="title";
    $body="body";

    $query =("INSERT INTO annunci_cerco ('username','title','body') VALUES ('$username','$title','$body')");
    if (isset ($_POST['invia'])){
    
    $title=$_POST['title'];
    $body=$_POST['body'];
    

    }elseif($query){
    echo"ok";

    }else{

    echo"errore, riprova!";

    }

    ?>

    [/PHP]

    Vi spiego la mia idea e intenzione..allora vorrei che l'utente una volta loggato, acceda alla pag "entra" e visualizzi i messaggi scritti ma che ne possa inserire altri dalla pag "modifica".
    Ma quando inserisco i dati nel form e premo invia non succede nulla...perchè?dove sbaglio??


  • User Attivo

    Non capisco una cosa: tu apri la <head>, la chiudi, apri il body, apri la head, apri un altro body, chiudi il body e la pagina html, poi stampi del testo a video.

    Controlla aperture e chiusure dei tag, che hai fatto un pochino di confusione 🙂


  • ModSenior

    Ciao,
    le query si eseguono cosi:
    [php]
    $query =("INSERT INTO annunci_cerco ('username','title','body') VALUES ('$username','$title','$body')");
    [/php]

    [php]
    $query = mysql_query("INSERT INTO annunci_cerco ('username','title','body') VALUES ('$username','$title','$body')");
    [/php]

    Anche se tutto il resto del codice, mi sembra sia molto confuso.


  • User

    @Thedarkita said:

    Ciao,
    le query si eseguono cosi:
    [php]
    $query =("INSERT INTO annunci_cerco ('username','title','body') VALUES ('$username','$title','$body')");
    [/php]

    [php]
    $query = mysql_query("INSERT INTO annunci_cerco ('username','title','body') VALUES ('$username','$title','$body')");
    [/php]

    Anche se tutto il resto del codice, mi sembra sia molto confuso.

    ho corretto il codice html confuso, e corretto le query ma non funziona nulla...non inserisce nel db e vedo errori di notice

    Notice: Undefined variable: username in C:\xampp\htdocs\prova\entra.php on line 59

    Notice: Undefined variable: title in C:\xampp\htdocs\prova\entra.php on line 59

    Notice: Undefined variable: body in C:\xampp\htdocs\prova\entra.php on line 59


  • ModSenior

    Nel tuo codice la riga 59 non è presente, senza il codice completo e il relativo errore mostrato è impossibile capire il problema.
    Anche perchè quelle variabili in realtà tu le aggiungi sotto, è tutto molto confuso.


  • User

    Il form [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>
                            
                            
                            
    <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>

    </body>

    </html>
    [/PHP]

    la query per il db nell'altra pagina..[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

    if (isset ($_POST['invia'])){
    $query =mysql_query("INSERT INTO annunci_cerco ('username','title','body') VALUES ('$username','$title','$body')");
    $title=$_POST['title'];
    $body=$_POST['body'];
    

    }else{

    echo"errore, riprova!";

    }
    mysql_close();

    ?>[/PHP]


  • ModSenior

    Stai utilizzando quelle variabili, prima di assegnarli il valore. Per cui è normale ti dia un notice di variabili mancanti.


  • User

    @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..


  • ModSenior

    [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]


  • User

    @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]


  • ModSenior

    E adesso che problema dà?
    Stai utilizzando $inserimentoannunci che prima non c'era, ma comunque questa variabile non ha nessun valore.


  • User

    @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...


  • User

    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!!!


  • ModSenior

    Manca un apice:
    [php]
    $inserimentoannunci=mysql_query("INSERT INTO annunci_cerco ('title','body') VALUES ('$title', '$body')");
    [/php]


  • User

    @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]


  • ModSenior

    $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.


  • User

    @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...


  • ModSenior

    Dipende di preciso come vuoi fare, di norma inserimento e modifica non vengono mischiati in questo modo.


  • User

    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?


  • ModSenior

    Si, devi fare in quel modo.