Fjernelse af gengangere i array

Tags:    php array

Hej,

Jeg har en forespørgsel og udskrift i stil med nedenstående.
I udskriften vil jeg kun have data fra forespørgelsen listet én gang i udskriften, selv om de er fundet flere gange i databasen.
Jeg har forsøgt mig med array_unique i While løkken, men kan ikke få det til at virke.
Er det nogen, som kan hjælpe?

PFT
Martin

Fold kodeboks ind/udPHP kode 




Indlæg senest redigeret d. 02.01.2015 10:24 af Bruger #17495
8 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Tror at du har den samme data stående flere gange i din database.
Du har ikke noget i din SQL der på anden vis skal give gentagelser.



kan du ikke bare bruge SQL til at lave listen unique ?



users_id burde være uniq i tabellen
tænkte på at bruge distinct !! men id vil jo være forskællig fra række til række
http://www.w3schools.com/sql/sql_distinct.asp

man ellers kunne du lave en sortering på users_id og er 2 på hinnanden følgende rækker ens smides den ene væk, men id vil være forkællige da du selecter primære nøgle (id), så du skal også tage stilling til hvad der skal ske med den anden række, den skal vel slettes fra databasen
men en sortering på users_id

$sql = "SELECT `id`, `username` FROM `users` WHERE `users`.`users_id` = '1' ORDER BY `users`.`users_id`";

kan du ikke lige lave et sql dump at din users tabel (bare 5 rækker)

vær opmærksom på at det sql API du anvender udgår i kommende vertioner af PHP
ref http://php.net/mysql_query

This extension is deprecated as of PHP 5.5.0, and will be removed in the future. Instead, the MySQLi or PDO_MySQL extension should be used. See also MySQL: choosing an API guide and related FAQ for more information. Alternatives to this function include:





users_id burde være uniq i tabellen
tænkte på at bruge distinct !! men id vil jo være forskællig fra række til række
http://www.w3schools.com/sql/sql_distinct.asp

man ellers kunne du lave en sortering på users_id og er 2 på hinnanden følgende rækker ens smides den ene væk, men id vil være forkællige da du selecter primære nøgle (id), så du skal også tage stilling til hvad der skal ske med den anden række, den skal vel slettes fra databasen
men en sortering på users_id

$sql = "SELECT `id`, `username` FROM `users` WHERE `users`.`users_id` = '1' ORDER BY `users`.`users_id`";

kan du ikke lige lave et sql dump at din users tabel (bare 5 rækker)

vær opmærksom på at det sql API du anvender udgår i kommende vertioner af PHP
ref http://php.net/mysql_query

This extension is deprecated as of PHP 5.5.0, and will be removed in the future. Instead, the MySQLi or PDO_MySQL extension should be used. See also MySQL: choosing an API guide and related FAQ for more information. Alternatives to this function include:



Hej Ronny,
Tak for svar, men koden var nok ikke lige det bedste eksempel, da det var én jeg lånte andetsteds fra, fordi den lignede min egen, men jeg havde overset det med users_id'en.
Jeg søger i flere kolonner efter ét ord, så jeg er ikke sikker på, at DISTINT kan give det jeg søger. Korrekt kode er vedhæftet.

Fold kodeboks ind/udPHP kode 




Hvad du beskriver, at du vil, giver ikke mening. :) Som jeg forstår det vil du opstille resultatet af en søgning, men vil kun have et søgeresultat? Men måske det er noget GROUP BY du ønsker at bruge.

Om ikke andet er her et mere overskuelig kodestump.
Fold kodeboks ind/udPHP kode 




Indlæg senest redigeret d. 02.01.2015 14:27 af Bruger #10216
Når man ikke roder med det her til dagligt, kan det godt være svært at beskrive, ja.
Egentlig virker min søgning OK, men jeg får den samme række ud i udskriften flere gange, hvis værdien i søgevariablen indgår flere gange i samme række. Jeg vil kun have den vist én gang.
Håber det giver mere mening.





Er det ikke bare at lave en GROUP BY?
http://www.w3schools.com/sql/sql_groupby.asp



Michael, du har svaret. Det var gentagelser i databasen.

Tak for svarene/hjælpen

/Martin





t