views:

26

answers:

1

I have no actual php errors, but When I make my query this I get output :

$sql_result = "SELECT AuthorFirst, AuthorLast, OnHand, Title
              FROM Inventory i, Wrote w, Author a, Book b
              WHERE i.BookCode = b.BookCode AND i.BookCode = w.BookCode
              AND a.AuthorNum = w.AuthorNum AND 2 = i.BranchNum";

When I change the 2 to a variable in the last line I get no output. Here is my full code:

<?php

$sql_branch = "SELECT BranchNum
              FROM Branch
              WHERE BranchName = '$_POST[branch]'";

$sql_result = "SELECT AuthorFirst, AuthorLast, OnHand, Title
              FROM Inventory i, Wrote w, Author a, Book b
              WHERE i.BookCode = b.BookCode AND i.BookCode = w.BookCode
              AND a.AuthorNum = w.AuthorNum AND '$branch[BranchNum]' = i.BranchNum";


$connect = mysql_connect('students', 'xxxxx', 'xxxxx') or exit(mysql_error());

mysql_select_db('henrybooks', $connect);

if($branch_result = mysql_query($sql_branch, $connect)) {
  $branch = mysql_fetch_array($branch_result);
}
else {
  echo mysql_error();
}

if(mysql_query($sql_result, $connect)) {
  $result = mysql_query($sql_result, $connect);
}
else {
  echo mysql_error();
}

echo $branch[BranchNum];

echo "<table>
        <tr>
           <td>Author</td>
           <td>Title</td>
           <td>Number Available</td>
        </tr>";
while( $row = mysql_fetch_array($result)) {
  echo "<tr>";
  echo "<td>".$row['AuthorFirst'].$row['AuthorLast']."</td>";
  echo "<td>".$row['Title']."</td>";
  echo "<td>".$row['OnHand']."</td>";
  echo "</tr>";
}

echo "</table>";
?>

I feel like I don't fully understand the mysql_fetch_array() function and I'm doing something wrong as far as the variable name, but I'm unsure.

Thanks!

when I echo $sql_result it displays as such:

SELECT AuthorFirst, AuthorLast, OnHand, Title 
FROM Inventory i, Wrote w, Author a, Book b 
WHERE i.BookCode = b.BookCode AND i.BookCode = w.BookCode AND a.AuthorNum = w.AuthorNum AND '' = i.BranchNum

For some reason the variable is void here... but when I echo the variable itself it has a value.

A: 

Looking at the code, it looks $sql_result is being set before $branch. Try defining $sql_result after executing the mysql_fetch_array($branch_result). Move it to the same location where you have the "echo $branch[BranchNum];" line and see what happens.

Eric Bronnimann