Avatar billede weeelo Nybegynder
14. juli 2005 - 12:16 Der er 10 kommentarer og
1 løsning

Hjælp til sammensat udtræk

Hejsa..

Jeg vil gerne have slået to udtræk sammen i ét, men er lidt i tvivl om hvordan det gøres. Er der én der vil gøre det for mig?

Her er udtrækene:

1. udtræk

<?php
$query = mysql_query("SELECT * FROM _nyheder WHERE godkendt=1 ORDER BY date DESC LIMIT 23");
while ($r = mysql_fetch_array($query)) {

$r[nyhed]  = stripslashes($r[nyhed]);
$r[overskrift]  = stripslashes($r[overskrift]);
$dato = $r[date];
$maaned = date(m, $dato);
$dag = date("d/", $dato);
$Y = date("-Y", $dato);
$H = date(" H:", $dato);
$I = date("i", $dato);
?>
<? echo "<a href=read_news.php?id=$r[id]>"; echo $dag; echo $maaned; echo $Y; echo " "; echo $H; echo $I; echo " "; echo "<b>$r[overskrift]</b></a><br>" ?>
<?
}
?>


2. udtræk

<?php
$query = mysql_query("SELECT * FROM _preview ORDER BY date DESC LIMIT 10");
while ($r = mysql_fetch_array($query)) {

$r[home]  = stripslashes($r[home]);
$r[away]  = stripslashes($r[away]);
$dato = $r[date];
$maaned = date(m, $dato);
$dag = date("d/", $dato);
$Y = date("-Y", $dato);
$H = date(" H:", $dato);
$I = date("i", $dato);
?>
<? echo "<a href=view_preview.php?id=$r[id]&match_id=$r[match_id]&home_id=$r[home_id]&away_id=$r[away_id]>"; echo $dag; echo $maaned; echo $Y; echo " "; echo $H; echo $I; echo " "; echo "Optakt: "; echo "<b>$r[home] - $r[away]</b></a><br>" ?>
<?
}
?>
Avatar billede ldanielsen Nybegynder
14. juli 2005 - 13:06 #1
OK, så skal jeg bare have at vide hvordan tabellerne _nyheder og _preview hænger sammen. Dvs. noget med at _preview.nyhedsid = _nyheder.id
Avatar billede weeelo Nybegynder
14. juli 2005 - 13:26 #2
Nej, de har ikke nogen sammenhæng - dårligt forklaret af mig. Det er to individuelle udtræk, men jeg vil gerne have dem vist sammen således at de er blandet sammen, sorteret efter date..

Lige nu har jeg det ene udtræk øverst og det andet udtræk nederst, men de skal blandes sammen, hvis du forstår hvad jeg mener?
Avatar billede ldanielsen Nybegynder
14. juli 2005 - 13:53 #3
Ja, det tror jeg.

Men er det ikke noget med at _preview indeholder preview eller detaljer til nyhederne?
Avatar billede weeelo Nybegynder
14. juli 2005 - 14:07 #4
Nej overhovedet ikke. De har intet med hinanden at gøre..
Avatar billede ldanielsen Nybegynder
14. juli 2005 - 14:28 #5
Du kan gøre det med UNION

Så skal du sørge for at kolonnerne er ens, eller i hvert fald har samme datatype:

(SELECT felt1, felt2, date FROM _nyheder WHERE godkendt = 1 DESC LIMIT 23)
UNION ALL
(SELECT felt1, felt2, date FROM _preview ORDER BY date DESC LIMIT 10)
ORDER BY date

Doc her:
http://dev.mysql.com/doc/mysql/en/union.html
Avatar billede weeelo Nybegynder
14. juli 2005 - 14:37 #6
Hvad hvis jeg vil have de 23 seneste fra _nyheder og _preview.?
Avatar billede weeelo Nybegynder
14. juli 2005 - 14:39 #7
Og de har også to forskellige links de skal følge?
Avatar billede ldanielsen Nybegynder
15. juli 2005 - 09:25 #8
Jeg kender ikke MySql godt nok til at vide hvordan man bruger LIMIT.

Men du kan i hvert fald tage de 23 første af hver, så dfu max får 46, og så i php'en sørge for at du kun viser 23.

Det med linket kræver at du kan "se" på en post om den kommer fra _nyheder eller fra _preview. Det ville jeg gøre sådan i MSSQL:

(SELECT '_nyheder' AS Tabelnavn, felt1, felt2, date FROM _nyheder WHERE godkendt = 1 DESC LIMIT 23)
UNION ALL
(SELECT '_preview' AS Tabelnavn, felt1, felt2, date FROM _preview ORDER BY date DESC LIMIT 23)
ORDER BY date

Derefter kan du lave noget med if ($r[Tabelnavn] == "_preview") { ....
Avatar billede weeelo Nybegynder
12. august 2005 - 16:43 #9
Jeg har fundet på en anden metode, men ellers tak for hjælpen..
Avatar billede weeelo Nybegynder
12. august 2005 - 16:44 #10
Hov.. Vil du have pointene?
Avatar billede weeelo Nybegynder
16. november 2005 - 15:42 #11
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