Я застрял на «объединении» таблиц

Я просто пытался объединить таблицы, например, путем объединения строк:
cw_users.userid = sold.buyer_id

Я хочу показать, какие пакеты они купили (vps, домен, хостинг).

Вот скрин моих столов

Итак, вот мой код.
Надеюсь, вы можете помочь

Изменить: я забыл упомянуть, что мне также нужно использовать $_SESSION['id'], который будет связан с cw_users.userid

<?php
//connect.php
$server     = 'localhost';
$username   = 'myusernamenotyours';
$password   = 'mypassnotyours';
$database   = 'mydatabasenotyours';

if(!mysql_connect($server, $username, $password))
{
exit('Error: could not establish database connection');
}
if(!mysql_select_db($database))
{
exit('Error: could not select the database');
}

$sql = "SELECT sold.*, vps_packages.*
FROM sold, vps_packages
WHERE sold.bought_vps = vps_packages.id ";

$result = mysql_query($sql);

if(!$result)
{
echo 'De packages kunnen niet worden geladen';
}
else
{
if(mysql_num_rows($result) == 0)
{
echo 'Er zijn nog geen packages, probeer het later nog eens.';
}
else
{
//prepare the table
echo '<table>';

while($row = mysql_fetch_assoc($result))
{
echo '<li>' . sold.bought_vps .  ' </li>';
}
}
}
echo '</table>';
?>

-2

Решение

Ваше время должно быть таким:

while($row = mysql_fetch_assoc($result))
{
echo '<tr><td>' . $row['bought_vps'] .  ' </td></tr>';
}

также вы должны echo '<table>' где он будет отображаться, даже если ваш запрос не выполнен, иначе ваша страница не будет отображаться правильно.

но прежде чем идти / кодировать что-нибудь еще, СТОП, слушай и думай

  1. вы используете устаревшие опасные mysql_* расширение. см. комментарий к вашему вопросу об альтернативах
  2. Вы пытаетесь вызвать значение, определенное как bought_vps в MySQL с тем же именем в PHP. Это бессмысленно. переменные, вызываемые без $ являются глобальными, и я уверен, что вы не пытаетесь повторить глобальное в этом месте в коде.

Вы должны знать это

Это означает, что вы действительно должны подумать о том, чтобы следовать простым урокам, чтобы изучить основы прежде всего. Если это действительно было проблемой для вас, вы должны приобрести больше навыков, прежде чем идти дальше.

0

Другие решения

while($row = mysql_fetch_assoc($result))
{
echo '<li>' . sold.bought_vps .  ' </li>';
}

Вы должны рассматривать $ row как текущую итеративную строку объединенной таблицы
так что если вы поставите print_r ($ row), вы увидите все данные в строке.

Другой SQL:

SELECT * FROM sold
INNER JOIN vps_packages ON sol.bougth_vps = vps_packages.id
0

По вопросам рекламы [email protected]