sql >> Databasteknik >  >> RDS >> Mysql

Omvandla användar-ID till namn (separata tabeller) i PHP

Så vad du behöver är ett par JOIN s (implicit INNER JOIN ) mot users , en för att gå med i efterföljaren och en för att gå med i den som följer.

SELECT 
  /* Rather than SELECT * you need to be specific about the columns, and
     give them aliases like followed_name since you have 2 tables with the same
     column names in the query */
  ufollower.id AS follower_id,
  ufollower.username AS follower_name,
  ufollowed.id AS followed_id,
  ufollowed.username AS followed_name
FROM
  /* JOIN twice against users, once to get the follower and once to get the followed */
  user_follow 
  /* users aliased as ufollower to get the follower details */
  JOIN users ufollower ON ufollower.id = user_follow.follower
  /* users aliased as ufollowed to get the followed details */
  JOIN users ufollowed ON ufollowed.id = user_follow.followed
WHERE
  user_follow.follower = $p_id

I din loop är namnen tillgängliga i follower_name, followed_name .

while($apple = mysql_fetch_array($following)){
   // Be sure to wrap the name in htmlspecialchars() to encode characters that could break html.
   // This has the followed id in the href and the followed name in the link text...
   echo '<a href="'.$apple['followed_id'].'">+'.htmlspecialchars($apple['followed_name']) .'</a> ';
}


  1. Hur man anger den invarianta kulturen när man använder FORMAT() i SQL Server

  2. Hantera opålitliga nätverk när du skapar en HA-lösning för MySQL eller MariaDB

  3. Påverkar ordningen på fälten i en WHERE-sats prestanda i MySQL?

  4. Hur man listar tabeller i den aktuella databasen med PostgreSQL