[php] twee query results samenvoegen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hoe voeg ik 2 query results samen zodat de uitkomst samen in 1 dropdown-menu kan komen?

Hier een gedeelte van de code:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<form  align="center"action="add.php" method="POST" >
  <div align="center">
    <table width="0" height="0%" border="1">
      <tr>
        <td>Project: </td>
        <td><select name="project_id" size="1">
<?
print("<option value=\"\"></option>");
     if(mysql_num_rows($result_project)) {
       while($row = mysql_fetch_object($result_project))
       {
          print("<option value=\"$row->project_id\">$row->project_id $row->project_short_name</option>");
       }
     } else {
       print("<option value=\"\">No projects</option>");
     }
?>
    </select></td>
      <tr> 
        <td><input name="submit" type=submit value="submit" /></td>
        <td><input name="reset" type=reset value="Reset" /></td>
      </tr>
    </table>
  </div>
</form>


er staan project nummers in twee verschillende tabellen in de database die ik allemaal bij elkaar wil voegen.

Moet ik dan een ingewikkelde sql query maken die in 2 tabellen tegelijk kan zoeken?

of moet ik de result van de queries op een manier samen voegen?

Maar vooral, hoe? :)

Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
Als je nu eens eerst verteld wat die queries zijn....

Wat je nodig hebt overigens is een join. Staat ook in de FAQ wat over.

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:04
Kijk eens naar de UNION operator.

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

Verwijderd

Vóór de while loops, een array aanmaken, en dan in de while loop de gegevens aan de array toevoegen:


PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$projecten = array();
while(....) 
{
 $projecten[ $row->project_id ] = $row->project_short_name;
}
while(....) 
{
 $projecten[ $row->project_id ] = $row->project_short_name;
}

foreach($projecten as $project_id => $project_shortname)
{
 echo $project_id . $project_shortname;
}
?>


Mits de project_id's niet hetzelfde kunnen zijn dan :)

(Of gewoon met SQL oplossen ofc.)

[ Voor 14% gewijzigd door Verwijderd op 08-01-2004 13:51 ]


Acties:
  • 0 Henk 'm!

  • Arjan404
  • Registratie: December 2000
  • Laatst online: 02-08 13:55

Arjan404

no comments....

Volgens mij moet dat kunnen met het volgende SQL statement:

code:
1
2
SELECT veld FROM tabel1
UNION SELECT veld FROM tabel2


Met een UNION ALL SELECT kun je ook de dubbele records van beide tabellen krijgen.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ja de UNION ALL doet het wel, maar hoe kan ik de totale oplossing dan in DISTINCT krijgen zodat er niet dezelfde projecten in de lijst voorkomen

[sql]
SELECT DISTINCT project_id
FROM project
UNION ALL
select DISTINCT project_id
from werk
ORDER BY project_id
[/sql]

project_id "4" komt bijvoorbeeld in allebij de tabellen voor, maar wil hem maar 1 keer op de dropdownlist

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Arjan404 schreef op 08 januari 2004 @ 14:09:
Met een UNION ALL SELECT kun je ook de dubbele records van beide tabellen krijgen.
Yep dit werkt volgens mij goed, bedankt :)
Pagina: 1