Thiago Marquezini
Thiago Marquezini

Reputation: 111

PHP MySQL INSERTING

I have a php with mysql that would insert some data to the database if there isn't the same information

<?php 

$id=$_POST['id'];
$guildname=$_POST['guildname'];
$level=$_POST['level'];
$score=$_POST['score'];
$guildmaster=$_POST['guildmaster'];


$con = mysql_connect("localhost", "root", "");
if (!$con)
  {die('Could not connect to mysql: ' . mysql_error());} 

$mydb = mysql_select_db("gunbound");
if (!$mydb)
  {die('Could not connect to database: ' . mysql_error());} 

  $dup = mysql_query("SELECT Id FROM guildrequest WHERE Id='".$_POST['id']."'");
        if(mysql_num_rows($dup) >= 1){
            echo '<b>You have already ask for guild request.</b>';
        }
        else
        {

     $dup2 = mysql_query("INSERT INTO guildrequest VALUES ('$id', '$guildname', '$level', '$score', '$guildmaster')");
        }
 Print "<center>You have requested to join the guild.</center>"; 

mysql_close($con);
?> 

but its not adding the record to the database if there isn't a record equal

Nor executing this:

$dup2 = mysql_query("INSERT INTO guildrequest VALUES ('$id', '$guildname', '$level', '$score', '$guildmaster')");

even if the code:

if(mysql_num_rows($dup) >= 1){

says that he can do the action of inserting

please help me

Upvotes: 0

Views: 1903

Answers (1)

Mr. Radical
Mr. Radical

Reputation: 1855

Try this:

<?php 

$id=$_POST['id'];
$guildname=$_POST['guildname'];
$level=$_POST['level'];
$score=$_POST['score'];
$guildmaster=$_POST['guildmaster'];


$con = mysql_connect("localhost", "root", "");
if (!$con)
  {die('Could not connect to mysql: ' . mysql_error());} 

$mydb = mysql_select_db("gunbound");
if (!$mydb)
  {die('Could not connect to database: ' . mysql_error());} 

  $dup = mysql_query("SELECT Id FROM guildrequest WHERE Id='".$_POST['id']."'");
        if(mysql_num_rows($dup) >= 1){
            echo '<b>You have already ask for guild request.</b>';
        }
        else
        {

     $dup2 = mysql_query("INSERT INTO guildrequest VALUES ('$id', '$guildname', '$level', '$score', '$guildmaster')");
     return $dup2;
        }
 Print "<center>You have requested to join the guild.</center>"; 

mysql_close($con);
?> 

I have add return to your else statement. I will execute your $dub2 variable. You could if you want to leave the variable $dub2 out then you will intermediately execute your query. Another way would be to use mysql_execute() function.

This would be a MYSQLI equivalent:

<?php 

$id=$_POST['id'];
$guildname=$_POST['guildname'];
$level=$_POST['level'];
$score=$_POST['score'];
$guildmaster=$_POST['guildmaster'];

$host = "hostname";
$user = "username";
$password = "password";
$database = "database";

$con = mysqli_connect($host, $user, $password, $database);
if (!$con)
  {die('Could not connect to mysql: ' . mysql_error());} 


 $dup = "SELECT Id FROM guildrequest WHERE Id='".$_POST['id']."'";

mysqli_query($con, $dup);
  if (!$dup)
  {die('Could not connect to database: ' . mysql_error());} 

        if(mysqli_num_rows($dup) >= 1){
            echo '<b>You have already ask for guild request.</b>';
        }
        else
        {
     $dup2 = "INSERT INTO guildrequest VALUES ('$id', '$guildname', '$level', '$score', '$guildmaster')";
     mysqli_query($con, $dup2);
        }
 Print "<center>You have requested to join the guild.</center>"; 

mysqli_close($con);
?> 

Upvotes: 1

Related Questions