Avatar billede fqthjoe Nybegynder
07. juli 2002 - 19:27 Der er 17 kommentarer og
1 løsning

forespørsel fra to tabeller virker ikke..need help please :-)

Hej Eksperter.
Er kommet så småt i gang med php/mysql via hjælp herfra :-). Nu vil jeg gerne trække data ud fra en database men fra to tabeller. Og sorteret dem.
Har prøvet med dette her, uden held:
<?
include("config.php");
mysql_connect($host,$brugernavn,$kodeord);
mysql_select_db($database);
$query = mysql_query ("SELECT Databasenavn.Tabelnavn1.Feltnavn1,Databasenavn.Tabelnavn2.Feltnavn2 ORDER BY Databasenavn.Tabelnavn1.Feltnavn1")
while($r = mysql_fetch_array($query)) {
$feltnavn1 = $r["feltnavn1"];
$feltnavn2 = $r["feltnavn2"];
echo "<li><a href=\"show.php?feltnavn1=$feltnavn1\">$feltnavn1</a><br>";
}
?>
Mon jeg kan hjælpe og se/fortælle hvordan den rigtige løsning skal se ud. Takker.
Avatar billede brideonline.dk Nybegynder
07. juli 2002 - 19:31 #1
<?
include("config.php");
mysql_connect($host,$brugernavn,$kodeord);
mysql_select_db($database);
$query = mysql_query ("SELECT Databasenavn.Tabelnavn1.Feltnavn1,Databasenavn.Tabelnavn2.Feltnavn2 ORDER BY Databasenavn.Tabelnavn1.Feltnavn1")
while($r = mysql_fetch_array($query)) {
echo "<li><a href=\"show.php?$r[feltnavn1]=$r[feltnavn1]\">$r[feltnavn1]</a><br>";
}
?>
Avatar billede fqthjoe Nybegynder
07. juli 2002 - 21:01 #2
Får en parse error i følgende linie:
while($r = mysql_fetch_array($query)) {
Avatar billede tipsen Nybegynder
08. juli 2002 - 00:51 #3
<?
include("config.php");
mysql_connect($host,$brugernavn,$kodeord) or die(mysql_error());
mysql_select_db($database) or die(mysql_error());
$query = mysql_query ("SELECT t1.Feltnavn1, t2.Feltnavn2 FROM tabel1 as t1, tabel2 as t2 ORDER BY t1.Feltnavn1") or die(mysql_error());
while(list($feltnavn1, $feltnavn2) = mysql_fetch_array($query)) {
  echo "<li><a href=\"show.php?feltnavn1=$feltnavn1\">$feltnavn1</a><br>";
}
?>

NB: Du bruger ikke $feltnavn2 til noget!
Avatar billede tipsen Nybegynder
08. juli 2002 - 00:53 #4
...egentlig er det ikke en brugbar forespørgsel, da du ikke linker tabellerne sammen på nogen måde - hvis du eks. har post nr 1 i tabel 1, hvilken post i tabel 2 skal den så kobles sammen med - alle?
Avatar billede muddi Praktikant
08. juli 2002 - 03:35 #5
tipsen >> ja, der mangler noget ala "WHERE t1.id = t2.relations_id" gør der ikke?
Avatar billede muddi Praktikant
08. juli 2002 - 03:40 #6
fqthjoe >> Hvis du for eksempel vil hente alle navnene i 2 tabeller, sortere dem og udskrive dem, så er det her ikke lige måden at gøre det på!

I sådan et tilfælde ville det være mere hensigtsmæssigt at foretage to forespørgsler og så samle disse i et array, som du sorterer ... Det er ihvertfald en måde at gøre det på!
Avatar billede muddi Praktikant
08. juli 2002 - 03:40 #7
fqthjoe >> Kan du ikke fortælle lidt om hvordan dine data i tabel1 og tabel2 hænger sammen?
Avatar billede fqthjoe Nybegynder
08. juli 2002 - 11:32 #8
Database: tips_db
Tabel1: Tips        Felter: ID, Overskrift, EMNE, NAVN
Tabel2: Kommentar  Felter: ID, Kommentarer, navn, karakter
Så vil jeg "bare" kunne vise en side med følgende:
Overskrift - Emne - karakter (sorteret efter karakter)
Kan I måske hjælpe mig videre herfra ?
Avatar billede muddi Praktikant
08. juli 2002 - 14:15 #9
Nedenstående henter alle felter, hvis du har phpmyadmin kan du prøve at køre den, det gør det mere overskueligt at se hvad den returnerer!

"SELECT tips.*,kommentar.* FROM tips, kommentar WHERE tips.id = kommentar.rel_id ORDER BY karakter DESC;"

Du skal altså have et ekstra felt i tabellen "kommentar" som hedder "rel_id". Rel_id skal indeholde ID på det tip den hører til!

Jeg har ikke testet endnu, men regner da med at det virker! :D

Ellers kan du jo lige skrive!
Avatar billede fqthjoe Nybegynder
08. juli 2002 - 15:51 #10
Jeg synes desværre ikke jeg kan få det til at virke. Kan det skæres lidt mere ud i pap ;-?
Avatar billede muddi Praktikant
08. juli 2002 - 15:57 #11
yes!
Avatar billede muddi Praktikant
08. juli 2002 - 16:03 #12
tips:

id | overskrift | emne | navn
------------------------------
4  Fest igen!  Test  Muddi
5  Party idag!  Prøve  Muddi


kommentar

id | kommentar | navn | karakter | rel_id
------------------------------------------
1    Fedt!      Per    10      | 4
2    Cool!      Lars  9        | 4
3    Nice!      Ole    10      | 5
4    Skod!      Hans  2        | 5


Det er en oversigt over hvordan det kunne se ud...

rel_id i kommentar viser hvilken id i tips kommentaren tilhører!

Skal jeg lave tabellerne for dig? Eller har du forstået det nu?`:D
Avatar billede fqthjoe Nybegynder
08. juli 2002 - 16:04 #13
ok.. lægger kniv og gaffel frem, vil du så skære det ud :-)
Avatar billede fqthjoe Nybegynder
08. juli 2002 - 16:06 #14
Nej det begynder at lysne, men hvordan oprettes/sammenføjes ID fra tips til feltet rel_ID i kommentar ?
Avatar billede muddi Praktikant
08. juli 2002 - 16:07 #15
Det gør du i PHP når du lægger kommentarerne ind!
Avatar billede muddi Praktikant
08. juli 2002 - 16:15 #16
Hvis nogen vil kommentere tip nr 5, så udfylder de en formular:

<form action="gem.php?id=<?=$id?>" method="get">
  <input type="text" name="kommentar">
  <input type="text" name="navn">
  <input type="text" name="karakter">
  <input type="hidden" name="id" value="<?=$id;?>">
<form>

I denne formular sendes id med 2 gange, du kan selv vælge hvordan det skal sendes med :D

og du bruger så følgende update-statement:

"INSERT INTO kommentar (kommentar, navn, karakter, rel_id) VALUES ($kommentar, $navn, $karakter, $id);

Nu er det skåret ud i pap, så jeg håber du kan klare dig herfre :o\

/Muddi
Avatar billede fqthjoe Nybegynder
08. juli 2002 - 16:28 #17
PERFEKT !!!!. Nu fatter jeg det !!!.
Må takke for alle svarene, men jeg vurderer at muddi er det mest fyldiggørende, og det jeg har lært MEGET af.
Speciel tak til muddi og derfor points til muddi.
Avatar billede muddi Praktikant
08. juli 2002 - 16:32 #18
Det var så lidt :D og thanx for point!
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