0

I have been googling for hours and have yet to find an answer to the error I keep receiving. I have the following code:

$varFirstName = $_POST['FirstName'];
$varPast = $varFirstName.' Past';
$varPresent = $varFirstName.' Present';
$varPastandPresent = $varFirstName.' Past and Present';
$CharacterID = "SELECT CharacterID FROM CHARINFO WHERE FirstName='$varFirstName'";

$sql="INSERT INTO CHARACTER_RELATIONS (RelationshipWith, CharacterID)
VALUES('$varPast', '$CharacterID'),
('$varPresent', '$CharacterID'),
('$varPastandPresent', '$CharacterID')";

mysqli_query($con,$sql)
or  die('Error: ' . mysql_error());

And I keep getting "Error:" every time I run this. If I make $CharacterID=49; then it works just fine, so I feel like something is wrong with "SELECT CharacterID FROM CHARINFO WHERE FirstName='$varFirstName'" but I can't figure out what. Suggestions?

3
  • 1
    Suggestions? Such as parameter binding, or using a subquery, or a prior database query, and getting rid of mixed-cased variable names? Commented Dec 12, 2015 at 3:48
  • 2
    get the real error mysqli_error($con) that mysql_error() doesn't mix with mysqli_ Commented Dec 12, 2015 at 3:48
  • and your POST array(s) might be failing. check for errors on PHP. you're also not querying on the first query. Commented Dec 12, 2015 at 3:48

1 Answer 1

2

$CharacterID= "SELECT CharacterID FROM CHARINFO WHERE firstName='$varFirstName'"; // this returns an array object. so you have to retrieve value of each row by using mysqli_fetch_array() as given below
//print_r($CharacterID);exit();// to check the array value and also you dint executed the $CharacterID. ie mysqli_query($con,$CharacterID);

$varFirstName = $_POST['FirstName'];
$varPast = $varFirstName.' Past';
$varPresent = $varFirstName.' Present';
$varPastandPresent = $varFirstName.' Past and Present';
$Character= "SELECT CharacterID FROM CHARINFO WHERE FirstName='$varFirstName'";// this returns an array object
       $CharacterID= mysqli_query($con,$Character);
        while($row=mysqli_fetch_array($CharacterID)){
        $id=$row['CharacterID '];
        $sql="INSERT INTO CHARACTER_RELATIONS (RelationshipWith, CharacterID)
        VALUES('$varPast', '$id')";      
        mysqli_query($con,$sql)
        or  die('Error: ' . mysqli_error($con));  
} 
Sign up to request clarification or add additional context in comments.

5 Comments

how can you run a query inside mysqli_fetch_array()? that would translate to while($row=mysqli_fetch_array(SELECT CharacterID FROM CHARINFO WHERE FirstName='John'))
if this is some SQL guru trick I don't know about, I'd sure like to know about it.
sorry i forgot to add mysqli_query ()
you should edit your answer for the OP and for future visitors who may not know what to do here. edit: thanks for the edit ;-)
@Fred-ii- second time you helped me to find the code error.thanks :).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.