xan
xan

Reputation: 4696

SQL doesn't update when trying to pass array

I'm trying to input some values in event.php and store them in an array ($mem). I'm then passing this array in another eventregister.php file where I'm inserting it in MySQL table.

Starting lines in my event.php file:

<?php
session_start();
$slug = $_GET['slug'];
$sess_uid = $_SESSION['id'];
$sess_email = $_SESSION['email'];
$sess_name = $_SESSION['name'];
if(isset($_POST['submit'])&&$_POST['submit']=='register1')
    require_once('13/functions/eventregister.php');    
?>

In <body>:

    ...
    ...
    $result = mysql_query("SELECT * FROM event WHERE slug = '".$slug."'");
    if ($result == true){
        $row=mysql_fetch_assoc($result);
        $id=$row['id']; 
        }
    $_SESSION['eventid']=$id;
    $_SESSION['eventname']=$row['name'];
    $_SESSION['max_members']=$row['members'];

    php $mem=array_fill(0,$row['members'],'');?>
    <form action="" method="post">
    <?php for ($i=0;$i<$row['members']-1;$i++){
        echo '<label>TRYST ID of Member '.($i+1).' :</label>';
        echo '<input type="text" size="20" name="'.$mem[$i].'"><br>';
    }
    echo '<button type="submit" id="submit" value="Register" name="register1">Register</button>';?>
    </form>

My eventregister.php file:

<?php
session_start();
    foreach($_POST['mem'] as $key=>$value){
        $value=mysql_real_escape_string($value);
        if(strlen($value)==0)
            $value="Null";
    }

    $sess_uid = $_SESSION['id'];
    $sess_email = $_SESSION['email'];
    $sess_name = $_SESSION['name'];
    $e_id=$_SESSION['eventid'];
    $e_name=$_SESSION['eventname'];
    $e_max_mem=$_SESSION['max_members'];

    mysql_query("INSERT INTO eventregister(event_id,event_name,max_number) VALUES('".$e_id."','".$e_name."','".$e_max_mem."')");
    $url="events.php?slug=".$slug;
    header('Location: ' . $url);
    exit;
?>

The page doesn't show any error, redirects are working, its just that no rows get affected in SQL. I'm still in the learning process, hence using the old notations of PHP.

Upvotes: 0

Views: 89

Answers (2)

Zevi Sternlicht
Zevi Sternlicht

Reputation: 5399

Your commas and brackets not organised

mysql_query("INSERT INTO eventregister(event_id,event_name,max_number) VALUES('".$e_id."','".$e_name."','".$e_max_mem."')");

Upvotes: 0

Bart Friederichs
Bart Friederichs

Reputation: 33521

If you look closely at the INSERT statement, you see you have a stray comma at the end. Remove that:

mysql_query("INSERT INTO eventregister(event_id,event_name,max_number) 
      VALUES('".$e_id."','".$e_name."','".$e_max_mem."')");

You could also see the MySQL error in your server logs. Or call mysql_error to find out more if a query fails.

I also do not see a mysql_connect anywhere.

Upvotes: 1

Related Questions