2013-08-27 5 views
1

Мне нужно отобразить таблицу, которая показывает пользователя, который ввел шутку в базу данных. У меня есть таблица для шуток «шутка» и таблица для пользователя с именем «автор» В таблице joke есть id, joketext, jokedate, authorid В таблице автора есть идентификатор, имя, адрес электронной почты , поэтому «автор» - это то же самое как «id» в таблице автора.Добавить данные из таблицы 2 относительно таблицы 1

<?php 
$con=mysqli_connect("localhost","user","password","ijdb"); 
// Check connection 
if (mysqli_connect_errno()) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

$result = mysql_query("SELECT joke.id, joketext, name, email FROM joke INNER JOIN author 
ON authorid = author.id"); 

echo "<form action='delete1.php' method='post'> 
<table border='1'> 
<tr> 
<th>Joke</th> 
<th>Date</th> 
<th>Name</th> 
<th>Email</th> 
<th>Delete</th> 
</tr>"; 

while($row = mysqli_fetch_array($result)) 
    { 
    echo "<tr>"; 
    echo "<td>" . $row['joketext'] . "</td>"; 
    echo "<td>" . $row['jokedate'] . "</td>"; 
    echo "<td>" . $row['name'] . "</td>"; 
    echo "<td>" . $row['email'] . "</td>"; 
    echo "<td><input type='submit' name='deleteItem' value='".$row['id']."' /></td>"; 
    echo "</tr>"; 
    } 
    echo "</table>"; 

    echo "</form></br>"; 

mysqli_close($con); 
?> 

Я получаю эту ошибку Предупреждения: mysqli_fetch_array() ожидает параметр 1, чтобы быть mysqli_result, булевы приведено в C: \ XAMPP \ HTDOCS \ Кимх \ шутка \ joke1.php на линии 22 и пустую таблицу

Благодаря

+0

Если вы используете 'mysqli', вы должны использовать' mysqli_query() ',' не mysql_query() '. – Barmar

+0

Добавить '.die (mysql_error());' где выполняется запрос. –

ответ

2

Оно должно быть:

$result = mysqli_query($con, "SELECT joke.id, joketext, name, email FROM joke INNER JOIN author 
           ON authorid = author.id"); 

Вы не можете использовать mysql_query(), когда вы используете расширение mysqli.

2

Ошибка вы используете mysql_query вместо mysqli_query

поэтому код становится

<?php 
$con=mysqli_connect("localhost","user","password","ijdb"); 
// Check connection 
if (mysqli_connect_errno()) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

$result = mysqli_query("SELECT joke.id, joketext, name, email FROM joke INNER JOIN author 
ON authorid = author.id"); 

echo "<form action='delete1.php' method='post'> 
<table border='1'> 
<tr> 
<th>Joke</th> 
<th>Date</th> 
<th>Name</th> 
<th>Email</th> 
<th>Delete</th> 
</tr>"; 

while($row = mysqli_fetch_array($result)) 
    { 
    echo "<tr>"; 
    echo "<td>" . $row['joketext'] . "</td>"; 
    echo "<td>" . $row['jokedate'] . "</td>"; 
    echo "<td>" . $row['name'] . "</td>"; 
    echo "<td>" . $row['email'] . "</td>"; 
    echo "<td><input type='submit' name='deleteItem' value='".$row['id']."' /></td>"; 
    echo "</tr>"; 
    } 
    echo "</table>"; 

    echo "</form></br>"; 

mysqli_close($con); 
?> 
1

Попробуйте изменить следующую

$result = mysql_query("SELECT joke.id, joketext, name, email FROM joke INNER JOIN author 

ON AuthorID = author.id ");

к

$result = mysqli_query("SELECT joke.id, joketext, name, email FROM joke INNER JOIN author 

ON AuthorID = author.id");

Вы используете mysql_query вместо mysqli_query

Смежные вопросы