Avatar billede rampagezz Nybegynder
15. januar 2008 - 21:14 Der er 6 kommentarer og
1 løsning

definere en betingelse

Hej eksperter.

Jeg har et script, hvor jeg skal sætte en betingelse. Indholdet skal kun vises, hvis "medlem" er == "username"

Har fået hjælp til dette:

<?php
$query = mysql_query ("SELECT members.username FROM members, pokaler WHERE members.username = pokaler.medlem LIMIT 0,1");
while($bruger = mysql_fetch_array($query)) {
?>

Men hvordan sætter man betingelsen for det. Har prøvet selv med dette:

<?php
$medlem = mysql_query("SELECT medlem FROM pokaler");
$username = mysql_query("SELECT username FROM members");

if $medlem == $username {
?>

<table> Her vises indhold </table>

<?php
}
?>


I griner nok, da det formentlig er langt fra, men er rimelig ny.. Lidt hjælp..?

-rampagezz
Avatar billede rampagezz Nybegynder
15. januar 2008 - 21:16 #1
Hov opdager lige selv at jeg kalder tabellen to gange.
Avatar billede htx98i17 Professor
15. januar 2008 - 22:10 #2
Dette kald

$query = mysql_query ("SELECT members.username FROM members, pokaler WHERE members.username = pokaler.medlem LIMIT 0,1");

er det samme som det du vil er ved at lave her:

medlem = mysql_query("SELECT medlem FROM pokaler");
$username = mysql_query("SELECT username FROM members");

if $medlem == $username {
?>

<table> Her vises indhold </table>

<?php
}
?>
Avatar billede rampagezz Nybegynder
16. januar 2008 - 08:05 #3
Ja, men hvordan kan jeg sørge for at indholdet kun bliver vist, hvis "medlem" er det samme som "username"?

Det var vist dig der skrev koden til at starte med, så fik jeg sat en limit på, så den kun udskrev posten en gang.

Jeg har nu dette:

<?php
$query = mysql_query ("SELECT members.username FROM members, pokaler WHERE members.username = pokaler.medlem LIMIT 0,1");
while($bruger = mysql_fetch_array($query)) {
?>

Men den viser indholdet, selvom "medlem" ikke er == "username"?
Avatar billede htx98i17 Professor
16. januar 2008 - 12:06 #4
Følgende sql:
SELECT members.username FROM members, pokaler WHERE members.username = pokaler.medlem LIMIT 0,1

henter den første post ud fra betingelsen at username = medlem. Men det er ikke en bestemt user, det er bare den første i rækken. Hvis du vil hente en bestemt user, så skal du tilføje en betingelse i sql'en således:

SELECT members.username FROM members, pokaler WHERE members.username = pokaler.medlem AND members.username = 'klaus' LIMIT 0,1

Du skriver at den kode du har der, viser indhold selvom username ikke er lig medlem. Det kan ikke passe. Men da du kun skal bruge een post, så skal du ikke bruge en while. Jeg har skrevet det om for dig til:

<?php

$query = mysql_query ("SELECT members.username FROM members, pokaler WHERE members.username = pokaler.medlem LIMIT 0,1");
$bruger = mysql_fetch_array($query);

echo"Brugeren med username ".$bruger['username']." findes i tabellen members";

?>

eller hvis det er en bestemt bruger du leder efter:

<?php

$query = mysql_query ("SELECT members.username FROM members, pokaler WHERE members.username = pokaler.medlem AND members.username = 'klaus' LIMIT 0,1");
$bruger = mysql_fetch_array($query);

echo"Brugeren med username ".$bruger['username']." findes i tabellen members";

?>
Avatar billede rampagezz Nybegynder
16. januar 2008 - 20:08 #5
Ok.. Grunden til at det skal være en bestemt bruger, er fordi at jeg har en "medlem_detalje" side, hvor man kan se et bestemt medlems informationer.
På den side er der et link "pokaler" som linker til siden, med det omtalte script.
Her er linket til siden:

<a href="../pokaler2.php?id=<?php echo $row_Recordset1['id']; ?>" target="_blank"  onclick="window.open(this.href,'Popup','width=370,height=370');return false;">Pokaler</a>

Her kan du se at jeg trækker [id] for den bruger med over til den nye side.
Det er kun records der er tilknyttet den bruger, der skal vises.

på "medlem_detalje.php" er informationerne hentet fra tabellen "members", hvor brugeren står som "username" og på den nye side (pokaler.php) er informationerne hentet fra tabellen "pokaler", hvor brugeren står som "medlem".
Avatar billede rampagezz Nybegynder
16. januar 2008 - 20:11 #6
Jeg har desuden lagt et Recordset i toppen af "pokaler.php", som gør 'id' unikt:

<?php require_once('../Connections/connect.php'); ?>
<?php
$colname_Recordset1 = "1";
if (isset($_GET['id'])) {
  $colname_Recordset1 = (get_magic_quotes_gpc()) ? $_GET['id'] : addslashes($_GET['id']);
}
mysql_select_db($database_connect, $connect);
$query_Recordset1 = sprintf("SELECT * FROM members WHERE id = %s", $colname_Recordset1);
$Recordset1 = mysql_query($query_Recordset1, $connect) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);


// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
?>
Avatar billede rampagezz Nybegynder
24. januar 2008 - 18:08 #7
øv
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