Avatar billede dustbunny Nybegynder
28. september 2006 - 12:56 Der er 10 kommentarer og
1 løsning

while for osv..

Jeg har 2 tabeller i en database hvor jeg skal hente noget data, men det viser sig at det kan jeg slet ikke finde ud af :)

Jeg har en side hvor man poster et signupId, som så bliver opfanget på næste side. Her skal den så i første tabel, signuporder, hente uniqueId værdien og bruge det til at trække dataen ud fra en tabel der hedder signupdata. Fra denne tabel skal jeg bruge et felt der hedder value som bare skal udskrives.

Jeg har aldrig programmeret PHP, kun ASP så det er lidt ligesom at læse hollandsk... Jeg har forsøgt at strikket noget sammen, men den gentager posterne på en mærkelig måde...

<?
if(is_numeric($_POST['signupId']) && $_POST['signupId'] != 0) {

    require("../include/dbconnect.inc.php");

    $sql = "SELECT * FROM signuporder WHERE signupId = '". $_POST['signupId'] ."'";
    $result = mysql_query($sql);


    if (mysql_num_rows($result) > 0) {
        while ($data = mysql_fetch_array($result)) {
            $strTxt = "";
            $sql1 = "SELECT * FROM signupdata WHERE uniqueId = '". $data["uniqueId"] ."'";
            $result1 = mysql_query($sql1);

            for ($i=0; $i < mysql_num_rows($result1); $i++) {
            $data1 = mysql_fetch_array($result1);       
                print($data1["value"] ."<br />");
            }
        }
   
    } else {
        print("Databasen indeholder ingen leads for signupId ". $_POST['signupId'] ."");
    }
} else {
    print("FEJL");
}
?>

Håber i kan hjælpe...
Avatar billede jaw Nybegynder
28. september 2006 - 12:59 #1
Hvad mener du med, at den gentager det på en mærkelig måde? Kan du måske give et eksempel på hvad den gør og hvad den burde gøre?
Avatar billede dustbunny Nybegynder
28. september 2006 - 13:13 #2
Jeg har lige lavet koden om...
<?
if(is_numeric($_POST['signupId']) && $_POST['signupId'] != 0) {

    require("../include/dbconnect.inc.php");

    $sql = "SELECT * FROM signuporder WHERE signupId = '". $_POST['signupId'] ."'";
    $result = mysql_query($sql);


    if (mysql_num_rows($result) > 0) {
        while ($data = mysql_fetch_array($result)) {
            $strTxt = "";
            $sql1 = "SELECT * FROM signupdata WHERE uniqueId = '". $data["uniqueId"] ."'";
            $result1 = mysql_query($sql1);

            while ($data1 = mysql_fetch_array($result1)) {
                print($data1["value"] ."<br />");
            }
        }
   
    } else {
        print("Databasen indeholder ingen leads for signupId ". $_POST['signupId'] ."");
    }
} else {
    print("FEJL");
}
?>

Resultatet bliver:

klubtest
werwerwer
6000
Kolding
sdfsfsdf 54
dfssdfsdf@dsfdsf.df
1
klubtest
werwerwer
6000
Kolding
sdfsfsdf 54
dfssdfsdf@dsfdsf.df
1
32424543
32424543
1
klubtest
test
6000
Kolding
dsfsdfsdfs 43
323454624
sdfgdfgdfg@dsgsdf.df
klubtest
test
6000
Kolding
dsfsdfsdfs 43
323454624
sdfgdfgdfg@dsgsdf.df
1
1
klubtest
dfsdfsdf
6000
Kolding
dsfsdfsdf 34
32434234
sdfsdfdf@dfsdf.df
klubtest
dfsdfsdf
6000
Kolding
dsfsdfsdf 34
32434234
sdfsdfdf@dfsdf.df
1


Den skal skrive liste ud med oplysninger på folk... alle oplysningerne er lagt i en linie for sig selv. Det vil sige at der for hver person er 8 poster der skal skrives ud. Men den skriver dem ud 2 gange og laver rod i det.

Eks.

person1 > klubtest
person1 > werwerwer
person1 > 6000
person1 > Kolding
person1 > sdfsfsdf 54
person1 > dfssdfsdf@dsfdsf.df
person1 > 1
person2 > klubtest
person2 > werwerwer
person2 > 6000
person2 > Kolding
person2 > sdfsfsdf 54
person2 > dfssdfsdf@dsfdsf.df
person2 > 1
person1 > 32424543
person2 > 32424543

osv...
Avatar billede dustbunny Nybegynder
28. september 2006 - 13:14 #3
Det er vist meget basic... men jeg kan ikke lige se hvorfor den ikke gør det...
Avatar billede dustbunny Nybegynder
28. september 2006 - 13:28 #4
Kan man evt. lave noget JOIN i SQL'en?
Avatar billede dustbunny Nybegynder
28. september 2006 - 13:29 #5
Den burde gøre:

person1 > klubtest
person1 > werwerwer
person1 > 6000
person1 > Kolding
person1 > sdfsfsdf 54
person1 > dfssdfsdf@dsfdsf.df
person1 > 1
person1 > 32424543
person2 > klubtest
person2 > werwerwer
person2 > 6000
person2 > Kolding
person2 > sdfsfsdf 54
person2 > dfssdfsdf@dsfdsf.df
person2 > 1
person2 > 32424543
Avatar billede jaw Nybegynder
28. september 2006 - 15:55 #6
Jeg er stadig lidt forvirret over, hvad den gør. Måske fordi du har de samme værdier for begge personer har jeg lidt svært ved at se om den kan left-joines.

Måske - og kun måske - kan det her bruges:

SELECT signuporder.*, signupdata.* FROM signuporder LEFT JOIN signupdata ON signupdata.uniqueId = signuporder.uniqueId WHERE signuporder.signupId = '".$_POST['signupId']."'

- du får dog nok nogle problemer med felter der hedder det samme, men så må du lave nogle aliaser.
Avatar billede dustbunny Nybegynder
28. september 2006 - 16:14 #7
Jeg har selvfølgelig testet koden med det eneste signupId der i hele systemet er oprettet 2 gange... Det var derfor den lavede 2 af hver post. Så koden fejler jo slet ikke noget, hold kæft hvor er jeg dum. Men shit jeg er go til PHP, så i kommer nok til at se mere til mig herinde fremover :)
Avatar billede dustbunny Nybegynder
28. september 2006 - 16:14 #8
Smid et svar for din tid!
Avatar billede jaw Nybegynder
28. september 2006 - 16:15 #9
Hehe, det kan jo ske. Jeg havde også lidt svært ved at gennemskue hvor fejlen skulle ligge.

Ang. point, så behold dem bare, du løste jo selv problemet :)
Avatar billede dustbunny Nybegynder
28. september 2006 - 16:16 #10
ok takker
Avatar billede jaw Nybegynder
28. september 2006 - 16:26 #11
Selv tak.
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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