2017-01-13 2 views
1

Ich bin neu in PHP und SQL. Ich lerne immernoch. Also, ich habe in meiner DB 3 Tabellen genannt ps_plr, ps_plr_ids_name und ps_plr_victms.Wie bekomme ich SQL-Daten von zwei Tabellen und drucke auf eins?

  • ps_plr, ich brauche Säule: Rang
  • ps_plr_ids_name, I Spalte müssen: Name
  • ps_plr_victms, I 2 Spalten müssen: kills a nd Todesfälle

in all diesen Tabellen, ich habe die plrid Spalte, die als Basis dienen.

Ich muss eine HTML-Tabelle ausgeben mit: Rang, Name, Kills and Deaths.

Ich habe versucht, den folgenden Code, der den Rang und die plrid drucken können, aber ich nicht wirklich brauchen, die plrid auf dem Tisch, wie gesagt, nur als Basis zu finden, was ich auf die Notwendigkeit andere Tabellen.

<?php 
$servername = "localhost"; 
$username = "root"; 
$password = "********"; 
$dbname = "psychostats3_1"; 

$mysqli = new mysqli($servername,$username,$password,$dbname); 

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

$query = "SELECT ps_plr.rank, ps_plr.plrid FROM ps_plr;"; 
$query .= "SELECT ps_plr_ids_name.name FROM ps_plr_ids_name plrnk, ps_plr plrst;"; 
$query .= "WHERE plrid=name"; 


//select task.id, task.name, proj.id, proj.name 
//from tasks task, projects proj 
//where proj.id=task.project_id; 

/* execute multi query */ 
if ($mysqli->multi_query($query)) { 
    do { 
     /* store first result set */ 
     if ($result = $mysqli->store_result()) { 
      while ($row = $result->fetch_row()) { 
       printf("<tr><td>" . $row[0] . "</td>"); 
       printf("<td>" . $row['2'] . "</td></tr>"); 
      } 
      $result->free(); 
     } 
     /* print divider */ 
    } while ($mysqli->next_result()); 
} 

/* close connection */ 
$mysqli->close(); 
?> 
+0

können Sie sowohl die Tabelle strcuture der Tabellen zeigen pls? –

+1

Join die drei Tabelle auf 'pri_id' und verwenden Sie die Where-Klausel als' plrid = 'Name' 'ID-Name ist Zeichenfolge. –

Antwort

0
+-----------------+----------------+ 
| tutorial_author | tutorial_count | 
+-----------------+----------------+ 
| mahran   |    20 | 
| mahnaz   |   NULL | 
| Jen    |   NULL | 
| Gill   |    20 | 
| John Poul  |    1 | 
| Sanjay   |    1 | 
+-----------------+----------------+ 

Let sagen, dass dies eine Tabelle tcount_tbl und meint eine andere Tabelle, die die Abfrage ausgeführt tutorials_tbl

+-------------+----------------+-----------------+-----------------+ 
| tutorial_id | tutorial_title | tutorial_author | submission_date | 
+-------------+----------------+-----------------+-----------------+ 
|   1 | Learn PHP  | John Poul  | 2007-05-24  | 
|   2 | Learn MySQL | Abdul S   | 2007-05-24  | 
|   3 | JAVA Tutorial | Sanjay   | 2007-05-06  | 
+-------------+----------------+-----------------+-----------------+ 

Nun ist. für Joins

SELECT a.tutorial_id, a.tutorial_author, b.tutorial_count 
    -> FROM tutorials_tbl a, tcount_tbl b 
    -> WHERE a.tutorial_author = b.tutorial_author; 

Dies ist, wie ich zwei Tabellen, wie in Ihrem Fall Join kann Sie die ganzen Spaltennamen nicht so bin ich erwähnt haben nur angenommen, und Ihnen ein kurzes Beispiel geben. Sie können Joins weiter tun wie etc LEFT JOIN von 3 Tabellen Source fetching from 3 tables

0
<table align="center" border="1" width="100%"> 
<tr> 
<th>Rank</th> 
<th>Name</th> 
<th>Kills</th> 
<th>Deaths</th> 
</tr> 

    $res=mysql_query("SELECT c.* , p.*,d.* FROM ps_plr c,ps_plr_ids_name p,ps_plr_victms d WHERE c.plrid=p.plrid and c.plrid = d.plrid "); 
    while($row=mysql_fetch_array($res)) 
    { 
    ?> 
     <tr> 
     <td><p><?php echo $row[' Rank']; ?></p></td> 
     <td><p><?php echo $row['Name']; ?></p></td> 
     <td><p><?php echo $row['Kills']; ?></p></td> 
     <td><p><?php echo $row['deaths']; ?></p></td> 
     </tr> 
     <?php 
    } 
    ?> 
</table> 

Versuchen Sie es zu holen Hoffnung das funktioniert ..

Verwandte Themen