Jump to content
Diana Madeira

Undefined index

Recommended Posts

Diana Madeira

Olá tenho o seguinte código em HTML e PHP mas quando submeto aparece-me o seguinte erro: Undefined index: Authorsname in /home/unn_w17015779/public_html/addDataAdmin.php on line 11.

Ficaria muito grata se me pudessem ajudar. Obrigado desde já

Código HTML:

<html>
    <head>
        <title> Add new record!</title>
    </head>
    <body>
        <?php include 'addDataAdmin.php';?>
        <form action="addDataAdmin.php" method="POST">
            <p>ISBN</p> <input type="text" name="ISBN">
            <p>Author's Name</p> <input type="text" name="authorName">
            <p>Title</p> <input type="text" name="title">
            <p>Edition</p> <input type="text" name="edition">
            <p>Year</p> <input type="text" name="year">

            <p>Category</p>
            <select name="category" size="1">
                <option value="computing">Computing</option>
                <option value="Romance">Romance</option>
                <option value="Fiction">Fiction</option>
                <option value="Non-Fiction">Non-Fiction</option>
            </select>
            <br />

            <p>Publisher</p> <input type="text" name="publisher">
            <p>Quantity-in-stock</p> <input type="text" name="quantity-in-stock">
            <p>Price</p> <input type="text" name="price">
            <input type="submit" value="Upload Image" name="submit">
            <input type="submit" value="Send" name="send">
            <input type="reset" value="Clear">
        </form>
    </body>
</html>



Código PHP

<?php
    //$_SESSION['message'] ='';
    include("config.php");


if($_SERVER['REQUEST_METHOD'] == 'POST') {
    
     if(isset($_POST['send'])){
    
        $ISBN= $conn->real_escape_string($_POST['ISBN']);
        $Authorsname=$conn ->real_escape_string($_POST['Authorsname']);
        $Title= $conn ->real_escape_string($_POST['Title']);
        $edition= $conn ->real_escape_string($_POST['edition']);
        $year= $conn->real_escape_string($_POST['year']);
        $publisher= $conn->real_escape_string($_POST['publisher']);
        $quantityinstock= $conn->real_escape_string($_POST['quantityinstock']);
        $price= $conn->real_escape_string($_POST['price']);
    
    $query =mysqli_query($conn,"SELECT * FROM books WHERE ISBN ='".$ISBN."'");
        if (mysqli_num_rows($query)>0){
            echo "ISBN already exists";
            
        }else{

            $sql= "INSERT INTO books (ISBN, Authorsname, Title, edition, year, category, publisher, quantityinstock, price) VALUES('".$_POST['ISBN']."','".$_POST['authorName']."', '".$_POST['title']."', '".$_POST['edition']."', '".$_POST['year']."', '".$_POST['category']."', '".$_POST['publisher']."','".$_POST['quantity-in-stock']."','".$_POST['price'];
        
            
        $result = mysqli_query($conn,$sql);
        echo '<h3><font color="red">You have successfully updated </font></h3>';
        }
}
}
?>


 

Edited by Diana Madeira

Share this post


Link to post
Share on other sites
Diana Madeira

melhorei a sql query da seguinte forma e mesmo assim aparece o mesmo erro.

 

$sql= "INSERT INTO books (ISBN, Authorsname, Title, edition, year, category, publisher, quantityinstock, price) VALUES('".$ISBN."','".$Authorsname."', '".$Title."', '".$edition."', '".$year."', '".$publisher."', '".$quantityinstock."','".$price."')";

 

Share this post


Link to post
Share on other sites
devgoncalo

ola

depois de 

if(isset($_POST['send'])){

coloca

print_r("<pre>");
var_dump($_POST);
print_r("</pre>");

no html tens

<input type="text" name="authorName">

mas no PHP tens

$_POST['Authorsname']

cumps

Share this post


Link to post
Share on other sites
Diana Madeira

Obrigado já não aparece nenhum erro mas não esta a inserir nenhuma informação na base de dados, porque sera?

Share this post


Link to post
Share on other sites
devgoncalo

ola

no teu código existem várias coisas que podiam ser feitas de outra forma, mas já deu para perceber que ainda estás a iniciar e uma pessoa tem de começar por algum lado.

dito isto, quando programas vais fazer muitos erros, é normal, toda a gente faz, por isso uma das coisas mais importantes é perceber o fluxo da informação de modo a encontrar o problema mais facilmente. saberes de onde a informação vem, para onde vai, de que maneira é processada etc. tens que fazer debug

neste caso especifico, queres inserir dados na base de dados, através do mysqli. já estiveste a ver a documentação? existe uma função que talvez de ajude http://php.net/manual/en/mysqli.error.php.

recomendo também: http://www.phptherightway.com/.

e outra coisa, quando estás a fazer um projecto, questiona sempre se o que estás a fazer naquele momento é a melhor maneira de o fazer.

cumps

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.