[PHP] Enkel unieke uitkomsten

Pagina: 1
Acties:
  • 236 views

  • Don Quijote
  • Registratie: April 2005
  • Laatst online: 08-02 21:34

Don Quijote

El Magnifico

Topicstarter
Ik heb een vraagje, waar ik met behulp van de zoekfuncties van google en GoT niet uit kom. Zoals wel vaker zal dit komen doordat mijn totale gebrek aan php kennis er voor zorgt dat ik nooit weet op welke woorden ik moet zoeken.

Mijn vraag heeft betrekking op de volgende query:


$query = "SELECT Schip.Naam, schipint.Interieur ".
"FROM Schip, schipint ".
"WHERE Schip.Naam = schipint.Schip AND Schip.Werf = '$Naam'";

$result = mysql_query($query) or die(mysql_error());


while($row = mysql_fetch_array($result)){
echo $row['Interieur'];
echo "<br />";
}

Buiten mijn verwachting om lukte mijn join query zowaar in een keer en krijg ik precies de results die ik ook verwacht. De query laat zien welke Interieurbouwers er allemaal voor werf X hebben gewerkt. Feit is dat een interieurbouwer vaak aan meerdere projecten bijdezelfde werf heeft gewerkt waardoor de uitkomst van die query bij een willekeurige werf er ongeveer zo uit ziet:

De Klerk
De Klerk
Fitz
Fitz
Fitz
Struik & Hamerslag
Struik & Hamerslag
Struik & Hamerslag
Struik & Hamerslag
Struik & Hamerslag
Struik & Hamerslag
Struik & Hamerslag
Struik & Hamerslag
Struik & Hamerslag
Struik & Hamerslag

Omdat het geen enkel nut heeft om te laten zien dat 'Struik & Hamerslag' wel 10x voor deze werf heeft gewerkt, en het er heel storend uitziet, vroeg ik me af of het mogelijk is om in de query iets aan te passen waardoor hij alleen unieke uitkomsten geeft. Dus wanneer er al een keer Struik & Hamerslag uit is gekomen dit niet nog een keer wordt getoond. De Uitkomst van de vorige query wil ik dan ook graag als volgt:

De Klerk
Fitz
Struik & Hamerslag

Alvast bedankt voor de moeite!

  • 418O2
  • Registratie: November 2001
  • Laatst online: 10:32
1. Verkeerde forum
2. Heb je wel gezocht?
3. Zoek eens naar de distinct functie in MySql

  • Don Quijote
  • Registratie: April 2005
  • Laatst online: 08-02 21:34

Don Quijote

El Magnifico

Topicstarter
418O2 schreef op dinsdag 12 augustus 2008 @ 09:42:
1. Verkeerde forum
2. Heb je wel gezocht?
3. Zoek eens naar de distinct functie in MySql
Bedankt voor de snelle reactie:

1. Excuses, heb me vergist doordat ik nog een ander [PHP] topic zag in dit forum.
2. Zeker, maar het prlbeem is dat ik geen benul heb op welke keywoords. Zoals je waarschijnlijk al door had ben ik pas sinds enkele dagen bezig met PHP. Zoeken op voor mij logische combinaties als "PHP Query only unique results" leverde niks op.
3. Dankje, zal ik doen!

[ Voor 6% gewijzigd door Don Quijote op 12-08-2008 09:49 ]


  • Shin_Alu
  • Registratie: Maart 2003
  • Laatst online: 09:59

Shin_Alu

Ranger/Ninja

Volgens mij moet er alleen een DISTINCT bij voor unieke uitkomsten, maar het is nog vroeg voor me voor SQL queries:

SELECT DISTINCT Schip.Naam, schipint.Interieur ".
"FROM Schip, schipint ".
"WHERE Schip.Naam = schipint.Schip AND Schip.Werf = '$Naam'"

Taru tossing moet een olympische sport worden


  • 418O2
  • Registratie: November 2001
  • Laatst online: 10:32
Ravnoss schreef op dinsdag 12 augustus 2008 @ 09:47:
[...]


Bedankt voor de snelle reactie:

2. Zeker, maar het prlbeem is dat ik geen benul heb op welke keywoords. Zoals je waarschijnlijk al door had ben ik pas sinds enkele dagen bezig met PHP. Zoeken op voor mij logische combinaties als "PHP Query only unique results" leverde niks op.
Je query wordt ook door mysql/sql uitgevoerd


[google=mysql get unique results]

[ Voor 9% gewijzigd door 418O2 op 12-08-2008 09:57 ]


  • storeman
  • Registratie: April 2004
  • Laatst online: 08:39
Distinct zou kunnen, echter bij meerdere kolommen als output kan dit fout gaan.

Je zou ook een 'group by' kunnen gebruiken, dan zou je gelijk het aantal projecten kunne zien door middel van een COUNT(1)

"Chaos kan niet uit de hand lopen"


  • Don Quijote
  • Registratie: April 2005
  • Laatst online: 08-02 21:34

Don Quijote

El Magnifico

Topicstarter
Bedankt iedereen!

Zowel Distinct als Group By werken.
Bij Distinct moest ik echter wel:

"SELECT DISTINCT Schip.Naam, schipint.Interieur ".

Veranderen naar:

"SELECT DISTINCT schipint.Interieur ".

Maar dan werkt het precies zoals ik wilde! Dank jullie.

Ik ga overigens denk ik GROUP BY gebruiken omdat ik de functie wel interressant vind dat je daarbij het aantal projecten kan laten zien zoals storeman zei. Ik ga eens kijken of me dat ga lukken!

Verwijderd

storeman schreef op dinsdag 12 augustus 2008 @ 10:04:
Distinct zou kunnen, echter bij meerdere kolommen als output kan dit fout gaan.

Je zou ook een 'group by' kunnen gebruiken, dan zou je gelijk het aantal projecten kunne zien door middel van een COUNT(1)
Ik zou inderdaad een GROUP BY Ship.Naam doen. Ik dek alleen dat storeman een COUNT(schipint.Interieur) bedoeld om het aantal projecten voor die ene Ship.Naam te bepalen.

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Ravnoss, soms kan het inderdaad lastig zijn om uit te vogelen waar je topic hoort. Met welke taal je nou eigenlijk bezig bent, en wat je aan het doen bent is echter wel iets waarvan we verwachten dat je dat zelf kunt uitvogelen. Ik stel voor dat je, zoals hierboven reeds gesuggereerd, eens gaat zoeken naar mysql handleidingen, dan had je het antwoord op deze vraag snel zelf gevonden.

Je vervolgvragen kun je eventueel kwijt in Programming; lees echter eerst Welkom in Programming - FAQ en Beleid even door :)

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate

Pagina: 1

Dit topic is gesloten.