Hallo.

Ik zit met hetvolgende probleem:
Ik heb een database met 2 tabellen.
In die tabellen staan namen. Deels dezelfde, maar er zijn ook die alleen in de eerste tabel voorkomen.
Ik wil graag een tabel afdrukken op een pagina, waarin alle namen naast elkaar worden afgedrukt. Dezelfde namen naast elkaar en naast de namen die alleen in de eerste tabel voorkomen een lege cel in de af te drukken tabel op het scherm.
Is dit mogelijk en zo ja, hoe dan?
Wat ik tot dusverre heb gezien is een tabel waarin de namen naast elkaar staan, maar waar de namen van de eerste tabel niet allemaal in staan omdat alleen alle namen van de tweede tabel zijn afgedrukt (bijv. 100) en de rest (bijv 50 van de 150) van de eerste tabel is niet afgedrukt.
De andere variant: alle namen worden afgedrukt, maar niet naast elkaar. Eerst (bijv. 150) in de linker cel en rechts niets en na de namen uit de eerste tabel, de namen uit de tweede tabel in de rechter cel. Niet ernaast maar eronder.
Kan je even met een linkje laten zien, en is het geen optie om beide namen in een tabel te zetten? Kan je misschein iets duidelijker uit leggen wat je probeerd te doen? bijvoorbeeld: Waar is het voor?

Hoe zien je mysql tabellen er uit, en wat heb je tot nog toe?
De info in de database is nogal gevoelig, dus die geef ik liever niet vrij, tenminste niet in dit forum. Is er een mogelijkheid om persoonlijk contact op te nemen?
probeer eens de info weer te geven als
+-------+
+Naam +
+-------+
+Jan +
+Josse +
+-------+

enz...
moet niet de echt info zijn verzin iets
doe met 1,2,3,.. en a,b,c,... ge begrijpt wel wa ik bedoel ;)
[offtopic]
De info in de database is nogal gevoelig, dus ...

Dus daar mag je niet tegen schelden...
[/offtopic]

Je moet echt meer info geven, de eerste keer dat ik deze topic las dacht ik echt dat het aan mij lag dat ik het niet snapte... en dan reageer ik maar niet...
Anderen hebben dat wellicht ook...

Elwin
Nog eens proberen.

Ik heb dus een database met daarin 2 tabellen met namen:
tabel 1: tabel 2:
+++++++ ++++++++
+ naam1 + + naam 2 +
+++++++ ++++++++
+ Jan + + Jan +
+ Karel + + Simon +
+ Simon + ++++++++
+++++++

Wat ik wil is een tabel maken in een HTML bestand dat er als volgt uitziet:

++++++++++++++++++
+ Naam1 + Naam2 +
++++++++++++++++++
+ Jan + Jan +
+ Karel + +
+ Simon + Simon +
++++++++++++++++++

De reden waarom is nu niet belangrijk.
Ik weet hoe ik de volgende tabellen moet maken:
while (list($naam1) = mysql_fetch_row ($result)AND list($naam2) = mysql_fetch_row ($result1)){
echo("<tr><td></td><td> $naam1 </td><td> $naam2 </td></tr>\n");
}
Dit geeft:

++++++++++++++++++
+ Naam1 + Naam2 +
++++++++++++++++++
+ Jan + Jan +
+ Karel + Simon +
++++++++++++++++++

Maar hier valt Simon dus weg (links) en dat is niet de bedoeling.

Een andere variant is:
while (list($naam1) = mysql_fetch_row ($result) OR list($naam2) = mysql_fetch_row ($result1)){
echo("<tr><td></td><td> $naam1 </td><td> $naam2 </td></tr>\n");
}
Dat geeft:
+++++++++++++++++++
+ Naam1 + Naam2 +
+++++++++++++++++++
+ Jan +
+ Karel +
+ Simon +
+++++++++++++++++++
+ Jan +
+ Simon +
+++++++++

Het enige verschil tussen deze codes is AND of OR tussen de LIST() opdrachten.
Ik hoop dat het zo iets duidelijker is. Misschien is het wel helemaal niet mogelijk, zoals ik het wil, ik ben net begonnen met PHP en MYSQL, maar ik stel de vraag toch maar.

Voor alle duidelijkheid, de codes kloppen want ik heb de namen uit de database gehaald en die kloppen. Daar ligt het dus niet aan. Het probleem zit hem in de manier waarop ik ze opvraag en de bewerkingen die ik er op loslaat.

Ik hoop dat iemand mij nu kan helpen. Mocht er nog iets onduidelijk zijn, laat het mij weten en ik zal proberen het te verduidelijken.
Het was misschien niet helemaal duidelijk, maar het gaat hier om 1 database, met 2 tabellen ("users 1" en "users 2") en in een tabel 1 veld met de naam "Naam1" en in de andere een veld met naam "Naam2". Dus maak ik gebruik van 2 query's, te weten

$query="SELECT * FROM users 1";
$query1="SELECT * FROM users 2";
Probeer het eens zo (gaat alleen werken als er in de tabel users2 geen namen staan die niet in users1 staan):

<?php
/* Ik ga er even vanuit dat de bovenkant van je tabel gemaakt is en dat je nu de resultaten kan laten zien.. Dus ergerns open je <table> en een rij met twee kolommen en je sluit die rij ook nog ergens...
*/
$query0 = mysql_query("SELECT * FROM users1");

while ($result0 = mysql_fetch_row($query0))
{
echo "<tr>\n"; // Nieuwe rij
echo "<td>$result0[0]</td>\n"; // $result0[0], die tweede 0 kan ook een één zijn, ligt aan je tabel
echo "<td>"; // Open je tweede kolom
// Kijken of de naam ook in de tweede kolom voorkomt
$query1 = mysql_query("SELECT * FROM users2 WHERE naam = '$result0[0]'"); // En die $result0[0] is dus dezelfde variabele als hierboven...
$num = mysql_num_rows($query1); // Tellen hoeveel namen er gevonden zijn

if ($num != "1") // Ik ga er maar weer vanuit dat je maximaal één record wilt hebben
{
echo "&nbsp;</td>\n"; // Vul je tweede kolom met eerste optie en sluit af
} else {
$result1 = mysql_fetch_row($query1);
echo "$result1[0]</td>\n"; // Die variabele kan natuurlijk ook een ander nummer hebben | Vul je tweede kolom met tweede optie en sluit af
}
echo "</tr>\n"; // De rij nog ff afsluiten
}

// En hier ergens nog even je tabel afsluiten...
?>

Elwin
Fantastisch. Het werkt precies zoals ik wilde. Nu moet ik precies proberen te begrijpen wat waar precies gebeurt. Maar daar kom ik wel uit. Hartstikke bedankt voor de moeite. Nu weet ik waar ik terecht kan wanneer ik weer problemen hebt. Ik hoop dat je dan weer kunt en wilt helpen. Nogmaals bedankt.
Willen wel... kunnen is een vraag.. :D

Maar wat er gebeurt in het script is vrij duidelijk:
1) Je haalt alle namen op uit de eerste tabel
2) Per resultaat (elke rij uit je query) maak je een rij in je tabel
3) Dan zet je in de eerste kolom van die rij de waarde die je met je query hebt opgehaald
4) Vervolgens haal je de gegevens uit de tweede database-tabel op waar de naam gelijk is aan de naam die we hebben
5) Dan tel je of er precies één resultaat is
6) Zo nee dan maak je een lege cel in de tweede kolom. Zo ja dan zet je die naam (uit stap 4) in de cel van de tweede kolom
7) Je sluit de gamaakte rij af

En stappen 2 t/m 7 worden voor elk resultaat uit je eerste rij herhaald...

Elwin
Nou, Elwin ik heb nog iets moeilijkers bedacht.

Nou is er een derde tabel in de database met daarin twee velden: een gebruiker en een code.
Elke gebruiker kan meerdere codes hebben. Bij elke naam1 (zie voorgaande) hoort 1 gebruiker. De ene naam1 is heeft echter 4 verschillende codes en de ander heeft er maar een. Voorbeeld van de gewenste tabel:

++++++++++++++++++++++++++++
+gebruiker+code+ naam1 +naam2 +
++++++++++++++++++++++++++++
+ 1 + 1 + Jan + Jan +
+ 1 + 2 + Jan + Jan +
+ 2 + 2 + Erik + +
+ 3 + 1 + Simon + Simon +
++++++++++++++++++++++++++++
Ik hoop dat je dit begrijpt.
Tabel 1 heeft "rechten", daarin zitten de velden "gebruikers" en "code". En de tabellen "naam1" en "naam2" blijven bestaan.
Weet je hier ook een oplossing voor? Ik hoop dat ik op je hulp kan rekenen.

Reageren