login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Gebruikersnaam 1x laten zien (Opgelost)

Offline kenzo - 08/07/2008 10:17
Avatar van kenzoPHP beginner Hallo,

Ik heb een code om bestellingen die langer dan 10 dagen in de mand zitten te mailen (de gebruiker dan die ze in de mand heeft).

De code laat alle bestellingen zien die dus langer dan 10 dagen in de mand zitten.

Nu kan het voor komen dat 1 man 14 dagen geleden wat heeft besteld en 12 dagen geleden wat heeft besteld.

Nu krijgt hij twee mails.

Dat wil ik niet. In de mail moeten alle bestellingen staan. (dat kan ik wel maken alleen lukt het niet om van de 2 namen die er staan altijd maar 1 te laten selecteren).


Het kan ook dat er 4 of 5 keer de zelfde naam staat. Er mag altijd maar 1 gebruikersnaam staan.


Hoe kan ik dat doen?
(Niet met DISTINCT(gebruikersnaam) want in de tabel staat van ieder maar 1 gebruikersnaam)

8 antwoorden

Gesponsorde links
Offline Gerard - 08/07/2008 10:26
Avatar van Gerard Ouwe rakker Ik neem aan dat in de tabel bestellingen het ID van de user wel meerdere malen voor komt dan (voor de bestellingen die 10 dagen of langer in de 'mand' zitten)? Daar kan je wel een DISTINCT op doen. Anders kan je altijd nog met een GROUP BY werken, waardoor je (met behulp van COUNT(1)) ook al kan afleiden hoeveel er nog open staan.
Offline kenzo - 08/07/2008 10:33
Avatar van kenzo PHP beginner ik heb nu dit:

  1. $res = mysql_query("SELECT DISTINCT(uid), CURRENT_DATE(), datum, DATEDIFF(CURRENT_DATE(), datum) AS verschil FROM cms_bestellingen ORDER by verschil DESC");


Dus inderdaad uniek selecteren van de bestellingen tabel, maar ik krijg toch alle namen vaker te zien.

Offline Gerard - 08/07/2008 10:34
Avatar van Gerard Ouwe rakker Dat komt omdat hij de DISTINCT pakt op ALLE kolommen (dus een combinatie van). Haal eerst alle unieke id's op en ga dan per id de verschillende bestellingen ophalen.
Offline kenzo - 08/07/2008 10:43
Avatar van kenzo PHP beginner Kan het niet op een makkelijkere manier?
Offline Berten - 08/07/2008 10:53
Avatar van Berten PHP beginner Ik vrees dat je dit in je php code gaat moeten opvangen

als uid = vorige uid --> niet weergeven
Offline kenzo - 08/07/2008 10:59
Avatar van kenzo PHP beginner ik heb nu dit:

  1. $res2 = mysql_query("SELECT * FROM cms_leden WHERE id='".$arr['uid']."'");
  2. while ($arr2 = mysql_fetch_assoc($res2)) {
  3. $tellen = mysql_query("SELECT COUNT(*) FROM cms_bestellingen WHERE uid = '".$arr2['id']."'") or die ('Error: '. mysql_errror());
  4. $rows = mysql_result($tellen, 0);



Ik krijg nu het aantal namen opgeteld.

Bij jan bijvoorbeeld 1 en bij piet 3.

Jan heeft 1 bestelling die langer dan 10 dagen staat
Piet heeft er 3.


Nu weet ik eigenlijk niet meer wat ik verder moet doen om de gebruiker maar 1 keer te laten zien

Offline Wim - 08/07/2008 13:36
Avatar van Wim Crew algemeen met een GROUP BY?
Offline kenzo - 09/07/2008 09:50
Avatar van kenzo PHP beginner ok, dat werkt...

Bedankt wimmarien
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.201s