İlk ayrılmakta SQL tablolarından ilgili farklı değerleri almak için nasıl (PHP)

1 Cevap php

Ben seçenekleri listesini doldurmak için triig duyuyorum. Ben tüm akışları almak ve bu akarsu atanan kullanıcıların adlarını almak için VANT 2 tablolar KULLANICILARI ve STREAMS var.

Kullanıcılar, kullanıcı adı ve kimliği oluşur

Akımlar id oluşur, kullanıcı kimliği, streamID

Böyle kodu deneyin:

<?php           
        global $connection;
        $query = "SELECT * 
        FROM streams ";
        $streams_set = mysql_query($query, $connection);
        confirm_query($streams_set);    
    $streams_count = mysql_num_rows($streams_set);
    while ($row = mysql_fetch_array($streams_set)){
            $userid = $row['userID'];
                global $connection;
        $query2 = "SELECT email, username ";
        $query2 .= "FROM users ";
        $query2 .= "WHERE id = '{$userid}' ";

        $qs = mysql_query($query2, $connection);
        confirm_query($qs); 
        $found_user = mysql_fetch_array($qs);


 echo ' <option value="'.$row['streamID'].'">'.$row['userID'].$found_user.'</option> ';
}
    ?>

Ama DB KULLANICI adlarını vermez = (Peki ben "seçenekleri" metin olarak adlarını görmek için bu kod yapacağız?

1 Cevap

Bir JOIN üzerine streams.userID = users.id içeren bir sorgu ile yapabilirsiniz

$query = "
  SELECT
    s.streamId,
    s.userId,
    u.username
  FROM
    streams as s
  JOIN
    users as u
  ON
    s.userId=u.id
  ";
$result = mysql_query($query, $connection);
confirm_query($result);
echo '<option value="">Debug: #rows=', mysql_num_rows($row), '"</option>';

while ( false!==($row=mysql_fetch_array($result)) ) {
  sprintf('<option value="%s">id:%s name:%s</option>',
    $row['streamID'], // you probably should apply htmlspecialchars()
    $row['userID'], // on these two, too.
    htmlspecialchars($row['username'])
  );
}