Avatar billede maduni Nybegynder
21. oktober 2001 - 16:58 Der er 17 kommentarer og
1 løsning

php/mySQL - While??

Hi

I \"row2\" bliver den samme post vis lige så mange gange som der er \"product_overskrift\"

Er der en anden en while jeg kan bruge til at samle en select? (håber i forstår hvad jeg mener lidt svært at forklare)

$res = mysql_query(\"SELECT * FROM product_overskrift where hoved_id = $hovedemne \", $linkup);
$res1 = mysql_query(\"SELECT * FROM products_hovedemne where id = $hovedemne \", $linkup);


while($row1 = mysql_fetch_array($res1))
{
$content = $content . \"<p><b><font size=3>{$row1[\"hovedemne\"]}</a></b><br>\";
}

while($row = mysql_fetch_array($res))
{
$product_id = \"\".  $row[\"product_id\"]  .\"\";
$content = $content . \"<p><b>{$row[\"overskrift\"]}</b><br>\";

$res2 = mysql_query(\"SELECT * FROM products, product_overskrift where product_overskrift_id = $product_id \", $linkup);
while($row2 = mysql_fetch_array($res2))
{
$content = $content . \"{$row2[\"indhold\"]} {$row2[\"beskrivelse\"]}<br>\";
}

}
Avatar billede mortenfn Nybegynder
21. oktober 2001 - 17:14 #1
jeg kan ikke lige overskue dette!  du har 3 tabeller. du skal bruge noget JOIN og det du vil have ud er

hovedemne, indhold og beskrivelse

og det du søger på er hovedemne IKK ??
Avatar billede maduni Nybegynder
21. oktober 2001 - 17:29 #2
tabeller:
product_overskrift
products_hovedemne
products

side 1: hovedemne links
side 2: Produkt overskrifter
(while???) - product_overskrift
(while)    - indhold - beskrivelse


problemet er at den viser indhold - beskrivelse lige så mange gange der er product overskrifer..

Avatar billede mortenfn Nybegynder
21. oktober 2001 - 17:30 #3
slet while så tager den kun den første
Avatar billede mortenfn Nybegynder
21. oktober 2001 - 17:32 #4
$res2 = mysql_query(\"SELECT * FROM products, product_overskrift where product_overskrift_id = $product_id \", $linkup);

$row2 = mysql_fetch_array($res2);
$content.=\"$row2[indhold]$row2[beskrivelse]}<br>\";


}
Avatar billede maduni Nybegynder
21. oktober 2001 - 17:38 #5
når jeg laver det du viser mig kommer den kun med 1 post under hver product_overskrift der er flere på nogen af dem. så der skal bruges en while der. det er mere den while som ligger oven over der skal laves om.
Avatar billede mortenfn Nybegynder
21. oktober 2001 - 17:45 #6
ja du det er regtigt men du har rodet noget rundt idet- ikke fordi det er forkert men en del tags er overflødige
Avatar billede maduni Nybegynder
21. oktober 2001 - 17:49 #7
Sådan er det jo nogen gange når kommer mere og mere på..

jeg tror sq at jeg bruger en include..
Avatar billede mortenfn Nybegynder
21. oktober 2001 - 17:51 #8
<?php


$res1 = mysql_query(\"SELECT * FROM products_hovedemne where id = $hovedemne \");

while($row1 = mysql_fetch_array($res1))
{
$content.=\"<p><b><font size=3>$row1[hovedemne]</a></b><br>\";
}


$res = mysql_query(\"SELECT * FROM product_overskrift where hoved_id = \'$hovedemne\'\");

$row = mysql_fetch_array($res);

$content.=\"<p><b>$row[overskrift]</b><br>\";

$res2 = mysql_query(\"SELECT * FROM products, product_overskrift where product_overskrift_id = \'$row[product_id]\'\");
while($row2 = mysql_fetch_array($res2))
{
$content.=\"$row2[indhold] $row2[beskrivelse]<br>\";
}

?>

reelt kan de to sidste søgninger lægges sammen i en
Avatar billede mortenfn Nybegynder
21. oktober 2001 - 17:59 #9
nu kender jeg jo ikke indholdet i dine tabeller, mon ikke noget i denne retning skulle kunne gøre det:

<?php
mysql_connect($sql_host,$sql_user,$sql_passwd);
mysql_select_db($db);

$res1 = mysql_query(\"SELECT * FROM products_hovedemne where id = $hovedemne\");

while($row1 = mysql_fetch_array($res1))
{
$content.=\"<p><b><font size=3>$row1[hovedemne]</a></b><br>\";
}

$res = mysql_query(\"SELECT product_overskrift.overskrift,products.indhold ,products.beskrivelse FROM products, product_overskrift where hoved_id = \'$hovedemne\' and products.product_overskrift_id = product_overskrift.product_id\'\");
while($row = mysql_fetch_array($res))
{
$content.=\"<p><b>$row[0]</b><br>$row[1] $row[2]<br>\";
}
?>
Avatar billede maduni Nybegynder
21. oktober 2001 - 18:00 #10
nu viser den:

crys-rør


Endotoxin og Rnase/Dnase fri. (fra + 120 grader til - 196). .........

greger redgergtergterg
greger redgergtergterg
greger redgergtergterg
greger redgergtergterg


Avatar billede mortenfn Nybegynder
21. oktober 2001 - 18:10 #11
crys-rør <- hovedemne ikk?


Endotoxin og Rnase/Dnase fri. (fra + 120 grader til - 196). ......... <- overskrift ikk?

greger redgergtergterg <- indhold og beskrivelse ikk?
greger redgergtergterg
greger redgergtergterg
greger redgergtergterg
Avatar billede maduni Nybegynder
21. oktober 2001 - 18:16 #12
jep det passer
Avatar billede mortenfn Nybegynder
21. oktober 2001 - 18:17 #13
$res = mysql_query(\"SELECT * FROM product_overskrift where hoved_id = $hovedemne \", $linkup);
$res1 = mysql_query(\"SELECT * FROM products_hovedemne where id = $hovedemne \", $linkup);


while($row1 = mysql_fetch_array($res1))
{
$content = $content . \"<p><b><font size=3>{$row1[\"hovedemne\"]}</a></b><br>\";
}

$row = mysql_fetch_array($res);

$product_id = \"\".  $row[\"product_id\"]  .\"\";
$content = $content . \"<p><b>{$row[\"overskrift\"]}</b><br>\";

$res2 = mysql_query(\"SELECT * FROM products, product_overskrift where product_overskrift_id = $product_id \", $linkup);
while($row2 = mysql_fetch_array($res2))
{
$content = $content . \"{$row2[\"indhold\"]} {$row2[\"beskrivelse\"]}<br>\";
}


din ejen uden den mitterste while
Avatar billede mortenfn Nybegynder
21. oktober 2001 - 18:18 #14
hvis jeg skal komme det nærmere må du sende mig dine mysql data

morten@thorsnet.dk
Avatar billede mortenfn Nybegynder
21. oktober 2001 - 18:20 #15
du kan indsætte en limit 1 sidst i select så vises kun en row
Avatar billede maduni Nybegynder
21. oktober 2001 - 18:20 #16
stadig:

Cryo-rør


Endotoxin og Rnase/Dnase fri. (fra + 120 grader til - 196). .........
greger redgergtergterg
greger redgergtergterg
greger redgergtergterg
greger redgergtergterg




hvis jeg sætter den miderste while ind så viser den 4 overskrifter som er rigtig nok, fejlen ligger i indhold og beckrivelse som bliver vist 4 gange (der ligger 4 overskrifter i overskrift tabellen)
Avatar billede maduni Nybegynder
22. oktober 2001 - 09:36 #17
Jeg er villig til at give flere points...
Avatar billede maduni Nybegynder
22. oktober 2001 - 13:13 #18
fandt selv løsningen:

$res = mysql_query(\"SELECT * FROM product_overskrift where hoved_id = $hovedemne \", $linkup);
$res1 = mysql_query(\"SELECT * FROM products_hovedemne where id = $hovedemne \", $linkup);

while($row1 = mysql_fetch_array($res1))
{
    $content = $content . \"<p><b><font size=3>{$row1[\"hovedemne\"]}</a></b><br>\";

    while($row = mysql_fetch_array($res))
    {
        $product_id = $row[\"product_id\"];
        $content = $content . \"<p><b>{$row[\"overskrift\"]}</b><br>\";

        $res2 = mysql_query(\"SELECT * FROM products where product_overskrift_id = $product_id \", $linkup);
       
        while($row2 = mysql_fetch_array($res2))
        {
            $content = $content . \"{$row2[\"indhold\"]} {$row2[\"beskrivelse\"]}<br>\";
        }
    }
}
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