Mysql php hente informationer fra database

Tags:    php

// De 6 mest læste historier
// Her skal også vises Hvem der har skrevet Historien
// Tabelen for brugerdata hedder dictes_users
// lighedsfeltet er news_name=user_id

@openside("6 hotteste Historier","on");
$result=dbquery("SELECT * FROM ".$db_prefix."news ORDER BY news_reads DESC LIMIT 0,6");
if(dbrows($result)!=0){
echo "<table width=\\"100%\\" cellpadding=\\"0\\" cellspacing=\\"0\\">";
while($data=dbarray($result)){
echo "<tr>\\n<td class=\\"small\\"><a href=\\"news.php?readmore=$data[news_id]\\" class=\\"slink\\">";
echo trimlink($data[news_subject], 50)."</a> </td>\\n<td class=\\"small\\" align=\\"right\\">";
// Her skal Forfatter navnet indsættes
echo "$data[news_reads]</font>\\n</td>\\n</tr>\\n";
}
echo "</table>";
}
@closeside();


Håber det er nok informationer ..



7 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 5 karma
Sorter efter stemmer Sorter efter dato
Jeg må indrømme jeg syntes dine koder er underlige. Kan ikke gennemskue om de enlig er gode nok men i vært fald har jeg altså lavet en ny kode til dig, hvis metode jeg vil anbefale dig:

Fold kodeboks ind/udKode 


Koderne inde i midten har markeret da jeg ikke helt kunde gennemskue din kode. Til gengæld ville jeg mene det skulle være til, at klare selv at lave. Det eneste du skal huske er at du henter data fra databasen således

echo"her kommer data ".$row['data']." og mere tekst her";

Håber det kunne bruges



Indlæg senest redigeret d. 21.08.2007 23:02 af Bruger #5097
Og problemet?



dobbelpost ! sorry



Indlæg senest redigeret d. 22.08.2007 15:37 af Bruger #1561
// De 6 mest læste historier
// Her skal også vises Hvem der har skrevet Historien
// Tabelen for brugerdata hedder dictes_users
// lighedsfeltet er news_name=user_id

@openside("6 hotteste Historier","on");
$result=dbquery("SELECT * FROM ".$db_prefix."news ORDER BY news_reads DESC LIMIT 0,6");
if(dbrows($result)!=0){
echo "<table width=\\"100%\\" cellpadding=\\"0\\" cellspacing=\\"0\\">";
while($data=dbarray($result)){
echo "<tr>\\n<td class=\\"small\\"><a href=\\"news.php?readmore=$data[news_id]\\" class=\\"slink\\">";
echo trimlink($data[news_subject], 50)."</a> </td>\\n<td class=\\"small\\" align=\\"right\\">";
// Her skal Forfatter navnet indsættes
echo "$data[news_reads]</font>\\n</td>\\n</tr>\\n";
}
echo "</table>";
}
@closeside();


Håber det er nok informationer ..

Altså det er ikke min kode jeg prøvede at hjælpe en kammerats mor og far med deres php, det er Php Fusion noget færdig php portal. men da de gerne ville have ændret lidt i tingne så de 6 meste læste historier blev vist på forsiden, det fik det til til at virke men de kunne ikke helt hitte ud af hvordan de fik brugernavnet ind på dem der har skrevet historien håber det hjælp min forklaring

kort og godt
jeg skal have indsadt brugeren som har skrev historien
Tabelen for brugerdata hedder dictes_users
lighedsfeltet er news_name=user_id
men er ikke så god til php yet



Det her handler ikke om PHP, det handler om MySQL.

Det du skal arbejde med er den såkaldte JOIN kommando i SQL. Jeg aner ikke hvad du mener med 'lighedsfelt', men en query til at klare problemet ville blive noget i den her stil:
Fold kodeboks ind/udKode 

Dette skal selvfølgelig skrives, så de rigtige ting indsættes på <prefix>'es plads. Desuden skal du nok rette i nogle feltnavne, men det tror jeg du kan klare selv - ellers må du jo lige skrive igen :)



Hvorfor bruge join?

Hvis man bruger min kode trækker du jo alt data ud, og du kan bare hente ham der har lavet nyheds navn ud sådan her (hvis navnet altså står i samme tabel):

echo"Skrevet af: ".$row['forfatter']."";



Navnet står jo netop ikke i tabellen Shafh... Derfor bruges et LEFT JOIN, som sørger for at trække _navnet_ på brugeren ud, sammen med nyheden. Nyhedstabellen indeholder bare id'et på brugeren. Det er en ganske almindelig måde at gøre det på...



t