Avatar billede mazey Praktikant
23. marts 2005 - 23:12 Der er 16 kommentarer og
1 løsning

Linke mellem 2 querys.

Hej Eksperter...

Først lige koden:

$sqlQ = "SELECT * from userpost  ORDER BY userpost_date ";
     
$sqlQ2 = "SELECT * from brugere  WHERE id = '$bruger' "

      $res = mysql_query($sqlQ);
      while( $annonce = mysql_fetch_array($res) )
      { //Noget html tabel værk
          ?>
      <? $bruger = $annonce["userpost_bruger"]; 
      }
?>

Først skal det siges at jeg er i opdager fasen i php, hvilket vil sige, at jeg ikke helt er med på de forskellige funktioner.

Det jeg vil er at den første query ($sqlQ) bliver valgt.
Den har nogle elementer som jeg gerne vil have trukket (while).
I den tabel hvor $sqlQ udtrækker data, er der et felt som gerne skulle kunne "linke" de to tabeller sammen,  som jeg har navngivet "userpost_bruger".  (så man kan bruge begge tabeller i databasen samtidigt).
Ved hjælp af "userpost_bruger" skal det (vidst nok) være muligt at kunne trække data fra en anden tabel. Den anden tabel har et lignende felt (i den tabel hedder det "id").

Det er lidt svært at forklare, så sig endelig til hvis der er noget i ikke forstår, så skal jeg prøve at uddybe det lidt.
Avatar billede mazey Praktikant
23. marts 2005 - 23:13 #1
Forresten, De querys jeg har lavet er noget som der i mit hovede måske kunne lykkes... Det er højst sandsynligt forkert! :)
Avatar billede barklund Nybegynder
23. marts 2005 - 23:15 #2
Så kan du blot skrive:

"SELECT * FROM userpost INNER JOIN brugere ON userpost.userpost_bruger = brugere.id ORDER BY userpost.userpost_date"

Så kommer det hele med på en gang.
Avatar billede mazey Praktikant
23. marts 2005 - 23:30 #3
Jamen det er jo simpelthen mega lækkert... Var det de letteste 200 point nogensinde!? (troede det var et sværere spørgsmål :)
Avatar billede barklund Nybegynder
23. marts 2005 - 23:43 #4
Na, behold du bare det meste selv :)
Avatar billede mazey Praktikant
23. marts 2005 - 23:56 #5
Næ, mester, du har da svaret på spørgsmålet, og skal derfor have dine point.... tak for hjælpen!
Avatar billede barklund Nybegynder
24. marts 2005 - 00:04 #6
Well, fair nok - spørg endelig igen her, hvis du har flere spørgsmål :)

Og tark for dem :)
Avatar billede mazey Praktikant
24. marts 2005 - 00:12 #7
Jamen, jeg vil da godt tage dig på ordet og spørge om et andet spørgsmål (hvis du vil have flere point, så sig til)

Jeg er ved at lave et login system (og jeg er som sagt ikke super god til det, så jeg har fået hjælp fra anden side. (kammerat)

Han synes at have rimelig meget styr på det...

Jeg havde egentlig fået oprettelsen af ny bruger til at virke, men efter han har været der, fungerer den ikke længere... det skyldes nok at han i main php filen (index2.php) har included en actions.inc.php fil...

Jeg ved ikke om du gider kigge på det!? Det kunne jo være lækkert at få til at fungere! :)
Avatar billede barklund Nybegynder
24. marts 2005 - 00:18 #8
Jamen vis mig da, og så skal jeg kigge på det.

Men lad os holde det her i spørgsmålet så vidt muligt.
Avatar billede mazey Praktikant
24. marts 2005 - 00:22 #9
Fint med mig, og jeg takker da for at du vil kigge på det!

Den actions.inc.php fil ser således ud:

<?
if($action == "login")
{
   
    if( $_GET[brugernavn] == "" || $_GET[password] == "" )
{
$error = "Please enter login information";
}
elseif( isset($_GET[brugernavn]) && isset($_GET[password]) )
    {
        $res = mysql_query("SELECT * FROM brugere WHERE brugernavn ='$_GET[brugernavn]' AND password='$_GET[password]' ");
        echo mysql_error();
        if( mysql_num_rows($res) == 1 )
        {
       
            $usr = mysql_fetch_array($res);
           
            $bruger[id] = $usr[id];
            $bruger[clicks] = $usr[clicks];
            $bruger[navn] = $usr[navn];
            $bruger[brugernavn] = $usr[brugernavn];
           
            $_SESSION[bruger] = $bruger;   
           
        }
        else
        {
            $error ="Wrong Username or Password";
           
        }
    }
    else if( $action=="logout" )
    {
        // kaldes med <a href="login.php?action=logout>"
       
        session_unset();     // Free all session variables
        session_destroy();     // Destroys all data registered to a session
        $besked = "You have been logged out";
    }
    else
    {
    // brugeren forsøgte at tilgå en side, og var ikke logget ind
        $besked = "You must log in";
    }
}

if($action == "logout")
{
    session_unset();     // Free all session variables
    session_destroy();     // Destroys all data registered to a session
}

if($action == "sendpassword")
{
    if( $email != "" )
    {
        $res = mysql_query("SELECT * FROM brugere WHERE email = '$_GET[email]'");
        if( mysql_num_rows($res) > 1 )
        {
            $error = "More records were found, please contact the administrator";
        }
        else if( mysql_num_rows($res) == 0 )
        {
            $error = "Username or Password not found";
        }
        else
        {
            // manden blv fundet, send en mail
            $bruger = mysql_fetch_array($res);
            $mailtext = "Hej $bruger[navn]\n
                        Dine logonoplysninger til b2b er:\n
                        Username: $bruger[brugernavn]\n
                        Password: $bruger[password]\n\n
                       
                        mvh.\n
                        harnz
                        ";
   
            $headers  = "From: \"Me\"<me@here.com>\n";
            $headers .= "MIME-Version: 1.0\n";
            $headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"";
            if( @mail('$bruger[email]', 'Details for b2bOneEuro', "$emailtext", "From:b2bOneEuro<noreply@b2beoneuro.com>") )
            {
                $error = "E-mail has been sent";
                $_GET["show"] == "";
            }
            else
            {
                $error = " Failure occured, please try again ";
                $_GET["show"] == "";
            }
        }
    }
    else
    {
        $error = "Please type your E-mail address";
    }
}
?>

--------------------------------SLUT-------------------------

Min user_new.php fil ser således ud:


<?
if( isset($submit) && $submit == " Submit " )
{
    if( $ID != "" )
    {
        // Det er en gammel record der skal ænndres
        $sqlQ = "UPDATE brugere SET ";
        $sqlQ = $sqlQ." WHERE id='$ID'";
   
        if( mysql_query( $sqlQ ) )
        {
            $besked = "Oplysningerne blev ændret!";               
        }
        else
            $besked = "Det lykkedes ikke at ndre oplysningerne";
    }
    else
    {
        // Det er en nyoprettelse
        // javascript skal checke at felter er udfyldt korrekt fx passwords
        if( 0 == mysql_num_rows(mysql_query("SELECT id from brugere WHERE brugernavn ='$_POST[brugernavn]'")))
        {
            $sqlQ = "INSERT INTO brugere (navn, firma, brugernavn, adr1, adr2, post, land, tlf, email, password) ";
            $sqlQ = $sqlQ ." VALUES ('$_POST[navn]', '$_POST[firma]', '$_POST[brugernavn]', '$_POST[adr1]', '$_POST[adr2]', '$_POST[post]', '$_POST[land]', '$_POST[tlf]', '$_POST[email]', '$_POST[password]') ";
            if ( mysql_query( $sqlQ ) )
            {
                $besked = "Oprettelsen lykkedes!";
                // send mail til manden (evt.)
           
                // læg evt. en redirect her!
            }
            else
                $besked = "Det lykkedes ikke at gemme oplysningerne";
        }
        else
        {
            $besked = "Brugernavnet eksisterer allerede, vælg et andet brugernavn";
            $bruger = $_POST;
        }

    }
   
    //echo mysql_error();
}
?>

</span><span class="style9">Create User to <br/>
Creating a user profile </span><br/>
<span class="style2">Please read <a href="terms.php">Terms of use</a></span><br/>
<? echo"<font color=red>$besked</font>";?>
<form method="post" action="<? echo "$PHP_SELF "; ?>"  >
<input type="hidden" name="show" value="user_new">
<input type="hidden" name="mainkategori" value="<?=$mainkategori?>">
<table >
<tr>
        <td width="138" align="left"><span class="style2">Company Name</span></td>
        <td width="162" align="left"><input name="firma" type="text" class="style2" value="<?echo $bruger[firma]?>"></td>
    </tr>
    <tr>
        <td width="138" align="left"><span class="style2">Att. Name</span></td>
        <td width="162" align="left"><input name="navn" type="text" class="style2" value="<?echo $bruger[navn]?>"></td>
    </tr>
   
    <tr>
        <td align="left"><span class="style2">Desired User name</span></td>
        <td align="left"><input name="brugernavn" type="text" class="style2" value="<?echo $bruger[brugernavn]?>"></td>
    </tr>
    <tr>
        <td align="left"><span class="style2">Password</span></td>
        <td align="left"><input name="password" type="password" class="style2" value=""></td>
    </tr>
   
    <tr>
        <td align="left"><span class="style2">Address</span></td>
        <td align="left"><input name="adr1" type="text" class="style2" value="<?echo $bruger[adr1]?>"></td>
    </tr>
    <tr>
        <td align="left"><span class="style2">&nbsp;</span></td>
        <td align="left"><input name="adr2" type="text" class="style2" value="<?echo $bruger[adr2]?>"></td>
    </tr>
    <tr>
        <td align="left"><span class="style2">Zip Code</span></td>
        <td align="left"><input name="post" type="text" class="style2" value="<?echo $bruger[post]?>"></td>
    </tr>
    <tr>
        <td align="left"><span class="style2">Phone Number</span></td>
        <td align="left"><input name="tlf" type="text" class="style2" value="<?echo $bruger[tlf]?>"></td>
    </tr>
    <tr>
        <td align="left"><span class="style2">Email Address</span></td>
        <td align="left"><input name="email" type="text" class="style2" value="<?echo $bruger[email]?>"></td>
    </tr>
    <tr>
        <td align="left"><span class="style2">Country</span></td>
        <td align="left"><span class="style2"><select name="land">
        <option value="0">---- SELECT ----</option>
        <?
        $res = mysql_query("SELECT * FROM lande ORDER BY navn");
        while( $land = mysql_fetch_row($res) )
        {
            echo"<option value=\"$land[0]\">$land[1]</option>";
        }
        ?>
        </select></span></td>
    </tr>
    <tr>
        <td align="left"><span class="style2">Agree to the Terms Of Use</span></td>
        <td align="left"><input name="" type="checkbox" value=""></td>
    </tr>
    <tr>
        <td align="left"><input type="submit" name="submit" value=" Submit "></td>
        <td></td>
    </tr>
</table>
</form>
-----------------------------SLUT------------------

Der må være noget konflikt mellem de to filer...
Jeg håber du kan se hoved og hale i det, ellers skal jeg prøve, så godt jeg kan at hjælpe dig med at finde ud af hvad der er hvad! :)

Takker endnu engang!

Forresten, så er grunden til alle de $_POST og $_GET at det jo skal være funktionelt med b-one serveren! :)
Avatar billede barklund Nybegynder
24. marts 2005 - 00:25 #10
Og hvad er problemet?

For jeg gætter på, at du mangler en hel masse $_POST og $_GET endnu - hvor skulle $action og $sbmit med flere ellers komme fra?

Og derudover kan jeg ikke se, at den ene inkluderer den anden?
Avatar billede mazey Praktikant
24. marts 2005 - 00:28 #11
Indtil videre bliver den bare testet på localhost, hvor den jo skal virke uanset om der er $_POST eller $_GET...

Inkluderingen sker i min index fil:
<?
    include_once 'settings.inc.php'; //DB connect
    include_once 'actions.inc.php'; //diverse actions
?>

Jeg kan bare ikke få det til at virke, hvilket oprettelse af bruger gjorde, inden actions.inc.php kom!
Avatar billede barklund Nybegynder
24. marts 2005 - 00:32 #12
Det er i hvert fald ikke særlig køn php - det skal der ikke være tvivl om.

Hvorfor har du en funktion, da altid tester, om der findes en $action variabel (som kan komme fra både $_GET, $_POST og alt mulig andet)?

Det beder om at gå galt - det kan jeg ikke sådan lige fikse, og der skal gøres meget før jeg ville anbefale at lægge det nogen steder hen.
Avatar billede barklund Nybegynder
24. marts 2005 - 00:32 #13
Derudover er globals (altså at $action hentes fra $_GET, $_POST med videre) djævlens værk - og man beder om problemer, hvis man forlader sig på det.
Avatar billede mazey Praktikant
24. marts 2005 - 00:34 #14
Ja men det er jo lidt et problem når det gælder b-one da de jo kræver det for at det virker!
Avatar billede mazey Praktikant
24. marts 2005 - 00:36 #15
hehe... Ja, som jeg også selv skriver er jeg jo ny i feltet... Det med  $action er min makkers værk... han forklarede som værende det nemmeste at assigne en variabel til at checke om alt er som det skal være... Jeg kunne jo ikke gå imod ham, da jeg ingen alternativer har! :)
Avatar billede barklund Nybegynder
24. marts 2005 - 00:42 #16
Well, jeg skal gerne indrømme, at jeg ikke lige har overskud til at sætte mig ind i det - og hvis jeg endelig gjorde, ville jeg lave det forfra, for det er lidt noget hat, som det er :)
Avatar billede mazey Praktikant
24. marts 2005 - 00:44 #17
hehe... forstår dig jo udemærket!... Jeg kan jo heller ikke selv finde rundt i det!..
Men jeg takker alligevel for tiden!
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