Avatar billede agora_live Nybegynder
24. oktober 2009 - 00:51 Der er 7 kommentarer og
1 løsning

SELECT *..... men kun første nye navn

Kan jeg lave et udtræk fra en database hvor jeg kun trækker det første navn ud af 4 ens:

Larsen, Peter
Larsen, Peter
Larsen, Peter
Larsen, Peter
Larsen, Hans
Larsen, Hans
Petersen, Lars
Petersen, Lars
Petersen, Pia

Mit udtræk skulle gerne være:

Larsen, Peter
Larsen, Hans
Petersen, Lars
Petersen, Pia

Kan det lade sig gøre? Blevet kørt i PHP til MySQL base
Avatar billede agora_live Nybegynder
24. oktober 2009 - 00:57 #1
Fandt løsningen med DISTINCT :-) Men kan jeg så sætte den til kun at kigge på de forste 6 tegn i en tabel?

Svar SELECT DISTINCT field FROM database....
Avatar billede erle Nybegynder
24. oktober 2009 - 01:34 #2
Hvis du vil have de første 6 tegn fra et felt, brug left: left(`felt`, 6)
Avatar billede agora_live Nybegynder
25. oktober 2009 - 16:49 #3
Hvordan vil du bruge dette i praksis?

$result = mysql_query("SELECT DISTINCT(overskrift), belob FROM feed ");

Når jeg så vil have trukket hele teksten fra overskrift ind i query, men kun vil vise eksempel 12 tegn når jeg "echo"?
Avatar billede erle Nybegynder
25. oktober 2009 - 18:58 #4
Som jeg forstår det, vil jeg gøre det på følgende måde.

SELECT LEFT(`overskrift`, 12) AS `overskrift`, `belob` FROM `feed` GROUP BY `overskrift`;

Det du vil få er overskriften forkerte ned til 12 tegn og derefter grupperet, så du ikke får den samme overskrift 2 gange.

Håber det er svar du søgte.
Avatar billede agora_live Nybegynder
25. oktober 2009 - 19:17 #5
Tak for dine svar, men vil denne metode tillade at jeg trækker hele overskrift teksten ud af databasen?

Som jeg læser det, vil jeg kun trække de første 12 tegn ud? Jeg leder efter muligheden for at trække alle informationerne ud, men kun vise de 12 første tegn.... Noget i stil med kun at vise 2 decimaler ala

$fuldoverskrift = ($row['overskrift'], 12);
Avatar billede erle Nybegynder
25. oktober 2009 - 19:48 #6
Ok, nu er jeg med (:

Du skal bruge substr. Lidt mere info om substr her: http://php.net/manual/en/function.substr.php

Kode eks:

<?php
$sql = "SELECT `overskrift`, `belob` FROM `feed` GROUP BY `overskrift`";

$query = mysql_query($sql);

while ($row = mysql_fetch_array($query)) {
// Forkorter overskriften til 12 tegn
$overskrift = substr($row["overskrift"], 0, 12);
echo "Overskrift: " . $overskrift . " Beløb: " . $row["belob"];
}
?>

og skal det være lidt smartere, så den sætter 3 punktummer efter overskriften, hvis den overstiger 12 tegn. Kan du prøve følgende:

<?php
$sql = "SELECT `overskrift`, `belob` FROM `feed` GROUP BY `overskrift`";

$query = mysql_query($sql);

while ($row = mysql_fetch_array($query)) {
$overskrift = forkort($row["overskrift"], 12);
echo "Overskrift: " . $overskrift . " Beløb: " . $row["belob"];
}

function forkort($tekst, $max_tegn) {
// Tjekker om tekst overstiger 12 tegn
if (strlen($tekst) > $max_tegn) {
  return substr($tekst, 0, $max_tegn) . "...";
}
// Ellers skal den blot returnere teksten som den så ud.
else {
  return $tekst;
}
}
?>
OBS...
Har desværre ikke testet koden.
Avatar billede agora_live Nybegynder
15. januar 2012 - 20:36 #7
erle :-) smid lige et svar så du får point :-)
Avatar billede agora_live Nybegynder
12. september 2013 - 04:43 #8
Gammel :-)  Jeg lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester