Jump to content

INNER JOIN question


genzedu777

Recommended Posts

Hi guys,

 

Would like to check if I have done my INNER JOIN function correctly, as I have received and an error msg

 

Warning: mysqli_error() expects exactly 1 parameter, 0 given in D:\inetpub\vhosts\111.com\httpdocs\111.com\registration3.php on line 598.

 

Thanks

 

 

<?php

$dbc = mysqli_connect('localhost', '111', '111', '111')

or die(mysqli_error());

$query = "SELECT sl.subject_level_id, sl.level_id, sl.subject_id, tl.name AS level_name, ts.name AS subject_name " .

    "FROM tutor_subject_level AS sl " .

    "INNER JOIN tutor_level AS tl USING (level_id) " .

    "INNER JOIN tutor_subject AS ts USING (subject_id) ";

$sql = mysqli_query($dbc, $query);

 

echo'<table><tr>'; // Start your table outside the loop... and your first row

$count = 0; // Start your counter

while($data = mysqli_fetch_array($sql)) {

/* Check to see whether or not this is a *new* row

If it is, then end the previous and start the next and restart the counter.

*/

if ($count % 5 == 0) {

echo "</tr><tr>"; $count = 0;

}

echo '<td><input name="subject_level[]" type="checkbox" id="'.$data['subject_level_id'].'" value="'.$data['subject_level_id'].'"/>';

echo '<label for="'.$data['subject_name'].'">'.$data['subject_name'].'</label></td>';

$count++; //Increment the count

}

echo '</tr></table><br/><br/>'; //Close your last row and your table, outside the loop

 

?>

 

 

Wilson

Link to comment
Share on other sites

Test to see if your connection is sucessful this way as well as your query error:

 

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if (!mysqli_query($link, "SET a=1")) {
    printf("Errormessage: %s\n", mysqli_error($link));
}

/* close connection */
mysqli_close($link);
?> 

Link to comment
Share on other sites

Hi Revraz,

 

I have amended my codes accordingly through your instructions.

 

And I have received this error msg,

 

Errormessage: Unknown system variable 'a'

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in D:\inetpub\vhosts\111.com\httpdocs\111\111.php on line 612

 

Line 612 is referred to the code which I have highlighted in blue. Do you have any idea what went wrong?

 

 

<?php

$dbc = mysqli_connect('localhost', '111', '111', '111');

 

/* check connection */

if (mysqli_connect_errno()) {

    printf("Connect failed: %s\n", mysqli_connect_error());

    exit();

}

 

$query = "SELECT sl.subject_level_id, sl.level_id, sl.subject_id, tl.name AS level_name, ts.name AS subject_name " .

    "FROM tutor_subject_level AS sl " .

    "INNER JOIN tutor_level AS tl USING (level_id) " .

    "INNER JOIN tutor_subject AS ts USING (subject_id) ";

$sql = mysqli_query($dbc, $query);

 

/* check connection */

if (!mysqli_query($dbc, "SET a=1")) {

    printf("Errormessage: %s\n", mysqli_error($dbc));

}

 

echo'<table><tr>'; // Start your table outside the loop... and your first row

$count = 0; // Start your counter

while($data = mysqli_fetch_array($sql)) {

/* Check to see whether or not this is a *new* row

If it is, then end the previous and start the next and restart the counter.

*/

if ($count % 5 == 0) {

echo "</tr><tr>"; $count = 0;

}

echo '<td><input name="subject_level[]" type="checkbox" id="'.$data['subject_level_id'].'" value="'.$data['subject_level_id'].'"/>';

echo '<label for="'.$data['subject_name'].'">'.$data['subject_name'].'</label></td>';

$count++; //Increment the count

}

echo '</tr></table><br/><br/>'; //Close your last row and your table, outside the loop

 

mysqli_close($dbc);

?>

Link to comment
Share on other sites

Hi revraz,

 

How do I echo $sql? I have tried, but it doesn't work. From what you see, in terms of my INNER JOIN code, did I structure it correctly? Thanks

 

<?php

 

$query = "SELECT sl.subject_level_id, sl.level_id, sl.subject_id, tl.name AS level_name, ts.name AS subject_name " .

    "FROM tutor_subject_level AS sl " .

    "INNER JOIN tutor_level AS tl USING (level_id) " .

    "INNER JOIN tutor_subject AS ts USING (subject_id) ";

  $sql = mysqli_query($dbc, $query);

  echo '$sql';

 

?>

Link to comment
Share on other sites

The query looks fine.  Put a die or exit after the echo so the code stops and you can see the value.  And you want to use

echo $sql; without single quotes.  Single quotes prints the variable name, not it's contents.

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

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.