• User

    Problema PHP my sql

    Ciao a tutti,
    mi sto avvicinando nel mondo mysql, php.
    Ho fatto il mio primo script che con un HTML va a richiamare un .PHP per poi scrivere il tutto sul database MYSQL (usando Xampp in locale). Tutto funziona se nel database nella struttura c?è solo un campo. Come qui sotto.

    HTML
    <form action="inserisci.php" method="post">
    articolo: <input type="text" name="articolo"><br>
    <input type="Submit">
    </form>

    PHP
    <?php
    $host = "localhost";
    $utente = "root";
    $password = "";
    $database = "magazzino";

    $articolo=$_POST['articolo'];

    mysql_connect("$host","$utente","$password") or die (mysql_error());
    @mysql_select_db($database)
    or die( "Impossibile selezionare il database.");
    $query = "INSERT INTO articoli VALUES('','$articolo')";

    mysql_query($query) or die( "Errore nella query. Query non eseguita");
    ?>

    Creo la tabella

    CREATE TABLE Articoli (
    id INT NOT NULL AUTO_INCREMENT,
    articolo VARCHAR(30),
    PRIMARY KEY (id)
    );

    Cosi tutto funziona,
    Se invece aggiungo una riga

    HTML
    <form action="inserisci.php" method="post">
    articolo: <input type="text" name="articolo"><br>
    codice: <input type="text" name="codice"><br>
    <input type="Submit">
    </form>

    PHP
    <?php
    $host = "localhost";
    $utente = "root";
    $password = "";
    $database = "magazzino";

    $articolo=$_POST['articolo'];
    $codice=$_POST['codice'];
    mysql_connect("$host","$utente","$password") or die (mysql_error());

    @mysql_select_db($database)
    or die( "Impossibile selezionare il database.");
    $query = "INSERT INTO articoli VALUES('','$articolo',?$codice)";
    mysql_query($query) or die( "Errore nella query. Query non eseguita");
    ?>

    Creo la tabella

    CREATE TABLE Articoli (
    id INT NOT NULL AUTO_INCREMENT,
    articolo VARCHAR(30),
    codice VARCHAR(30),
    PRIMARY KEY (id)
    );

    Quando lancio il HTML mi restituisce
    Errore nella query. Query non eseguita
    Non capisco perché.
    Mi potete aiutare.
    Grazie


  • ModSenior

    Ciao,
    manca un apice nella query.
    Per avere maggior informazioni sull'errore puoi comunque fare cosi:
    [php]
    mysql_query($query) or die( "Errore nella query. Query non eseguita. Errore: ".mysql_error());[/php]


  • User

    Anche inserendo la stringa indicata da solo questa risposta

    Errore nella query. Query non eseguita

    Per cui non capisco quale sia il problema.
    Esiste qualche strumento per indica i problemi?
    Grazie per la pazienza


  • ModSenior

    Quel pezzo di codice dovevi metterlo al posto di:
    [php]
    mysql_query($query) or die( "Errore nella query. Query non eseguita");
    [/php]

    Ma comunque si vede benissimo che il problema è la mancanza di un apice nella query.


  • User

    Infatti ho fatto cosi ma mi da solo

    Errore nella query. Query non eseguita

    Per cortesia dove manca l'apice nella query.
    Grazie


  • ModSenior

    Questo:
    [php]
    $query = "INSERT INTO articoli VALUES('','$articolo',’$codice)";
    [/php]

    Dovrebbe essere:
    [php]
    $query = "INSERT INTO articoli VALUES('','$articolo','$codice')";
    [/php]


  • User

    Ho fatto cosi

    <?php
    //include('db_con.php');

    $host = "localhost";
    $utente = "root";
    $password = "";
    $database = "magazzino";

    $articolo=$_POST['articolo'];
    $codice=$_POST['codice'];

    mysql_connect("$host","$utente","$password") or die (mysql_error());

    @mysql_select_db($database)
    or die( "Impossibile selezionare il database.");

    $query = "INSERT INTO articoli VALUES('','$articolo','$codice')";

    mysql_query($query) or die( "Errore nella query. Query non eseguita. Errore: ".mysql_error());

    ?>

    Risultato

    Errore nella query. Query non eseguita

    Non capisco dove sia l'errore, se cancello codice e lascio solo articolo tutto funziona.
    Aiutoooooooooooo


  • ModSenior

    Sinceramente per darti quella scritta, significa che non sta eseguendo quel codice, ma un altro. E' impossibile dia quel risultato, visto che il messaggio di errore è diverso da quello impostato.


  • User

    per cui lo script php è coretto come l'ho fatto.


  • ModSenior

    Si, al massimo in caso di errori della query dovrebbe restituire un messaggio del tipo:

    Errore nella query. Query non eseguita. Errore: Mysql error 00....

    Mentre a te da il risultato del vecchio script, senza le modifiche che ti ho indicato.


  • User

    Trovato.
    Infatti l'Html, andava a puntare in un'altro script PHP, grazie della dritta, mi stavo perdendo in un bicchiere d'acqua.

    Un consiglio,
    questo script che ora funziona, quando ha messo i dati dentro il database Mysql, mi rilascia una pagina bianca.
    Come posso fare perche mi restituisca es. "inserimento eseguito" oppure che mi riporti alla pagina Html da cui è partito il comando.
    Grazie ancora


  • ModSenior

    Per mostrare una scritta ti basta fare dei semplici echo.
    Per il reindirizzamento su un'altra pagina:
    [php]
    header('Location: url_pagina.php');
    exit;
    [/php]


  • User

    Perfetto Funziona;
    aprofitto per chiedere ancora una cosa.
    Ho fatto questo per recuperare i dati dal db

    Ma non funziona.
    la tabella si chiama articoli, menre voglio visualizzare la colonna codice dove sbaglio? mi restituisce

    "; } ?>

    <?php
    $localhost = "localhost";
    $utente = "root";
    $password = "mysql";
    $database = "prova";
    $db = mysql_connect($localhost, $utente,$password);

    if ($db == FALSE)
    die ("Errore nella connessione.");

    $ris = mysql_select_db($utente);

    $query = "SELECT codice FROM articoli";
    $result = mysql_query($query);

    while ($row = mysql_fetch_array($result))
    {
    echo $row['codice']."<br>";
    }

    ?>