$result = mysql_query("SELECT Elever.Fornavn, Elever.Efternavn, Elever.Klasse, Sportsgrene.Sportsgren FROM Sportsgrene, Elever, Tilmeldinger_elever WHERE Elever.Elev_ID=Tilmeldinger_elever.Elev AND Sportsgrene.Sportsgren_ID=Tilmeldinger_elever.Sportsgren");
$result = mysql_query("SELECT Elever.Fornavn, Elever.Efternavn, Elever.Klasse, Sportsgrene.Sportsgren FROM Sportsgrene, Elever, Tilmeldinger_elever WHERE Elever.Elev_ID=Tilmeldinger_elever.Elev AND Sportsgrene.Sportsgren_ID=Tilmeldinger_elever.Sportsgren AND elever.Elev_ID=".$_POST['elev'];
$result = mysql_query("SELECT Elever.Fornavn, Elever.Efternavn, Elever.Klasse, Sportsgrene.Sportsgren FROM Sportsgrene, Elever, Tilmeldinger_elever WHERE Elever.Elev_ID=Tilmeldinger_elever.Elev AND Sportsgrene.Sportsgren_ID=Tilmeldinger_elever.Sportsgren AND Elever.Elev_ID=".$_POST['Elev'];
Ups der mangler også en ) og så har jeg lige tilføjet or die
$result = mysql_query("SELECT Elever.Fornavn, Elever.Efternavn, Elever.Klasse, Sportsgrene.Sportsgren FROM Sportsgrene, Elever, Tilmeldinger_elever WHERE Elever.Elev_ID=Tilmeldinger_elever.Elev AND Sportsgrene.Sportsgren_ID=Tilmeldinger_elever.Sportsgren AND Elever.Elev_ID=".$_POST['Elev']) or die(mysql_error());
$result = mysql_query("SELECT Elever.Fornavn, Elever.Efternavn, Elever.Klasse, Sportsgrene.Sportsgren FROM Sportsgrene, Elever, Tilmeldinger_elever WHERE Elever.Elev_ID=Tilmeldinger_elever.Elev AND Sportsgrene.Sportsgren_ID=Tilmeldinger_elever.Sportsgren AND Elever.Elev_ID=".$_POST['Elev']) or die(mysql_error());
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3 ????
$result = mysql_query("SELECT Elever.Fornavn, Elever.Efternavn, Elever.Klasse, Sportsgrene.Sportsgren FROM Sportsgrene, Elever, Tilmeldinger_elever WHERE Elever.Elev_ID=Tilmeldinger_elever.Elev AND Sportsgrene.Sportsgren_ID=Tilmeldinger_elever.Sportsgren AND Elever.Elev_ID=".$elevid) or die(mysql_error());
kan man lave en query, så man kan tjekke om et navn findes i en tabel og derpå udskrive f.eks. "Du er ikke tilmeldt" . Findes der en sådan funktion??? Er nybegynder :)
Altså... jeg har en f.eks. en tabel, som indeholder sportsgren, elever og tilmeldinger. I tilmelding's tabellen har jeg: Tilmelding_elever_ID, Elev og Sportsgren. Jeg skal have lavet det sådan, så admin kan gå ind og se en liste over de elever, som endnu ikke har tilmeldt sig noget som helst...
Hvis du bruger MySQL 4.1 eller der over kan du bruge denne:
SELECT * FROM elever WHERE elev_ID NOT IN( SELECT DISTINCT Tilmelding_elever_id FROM tilmelding)
Det er muligt det kan laves uden subselects men det kan jeg ikke lige overskue lige nu. Ulempen med subselects er at det krøæver minimum MySQL version 4.1
Når du ikke har subselects til rådighed tror jeg du bliver nødt til at lave to SQL-sætninger en der hiver alle elever ud: SELECT * FROM elever og en der hiver alle de elever ud der optræder i tilmelding
$sql = "SELECT DISTINCT elev_ID FROM tilmelding"; $result = mysql_query($sql) or die(mysql_error()); $str = ""; while ( $row = mysql_fetch_array($result) ) { $str .= $row['elev_ID'] . ","; } $str = substr($str,0,-1); $sql = "SELECT * FROM elever WHERE elev_ID NOT IN(".$str.")";
$result = mysql_query($sql) or die(mysql_error()); while ( $row = mysql_fetch_array($result) ) { echo $row['elev_ID'] . "<br>"; //elever der ikke har tilmeldt sig noget... }
Sætter variablen til ingenting - Hvis error_reporting er sat til E_ALL vil det skabe en notice hvis den ikke er der. Så vil den nemlig brokke sig over at variablen $str ikke eksisterer første gang vi går ind i while løkken.
.= betyder nemlig tilføj til eksisterende variabel.
$sql = "SELECT DISTINCT Elev_ID FROM Tilmeldinger_elever"; $result = mysql_query($sql) or die(mysql_error()); $str = ""; while ( $row = mysql_fetch_array($result) ) { $str .= $row['Elev_ID'] . ","; } $str = substr($str,0,-1); $sql = "SELECT * FROM Elever WHERE Elev_ID NOT IN(".$str.")";
$result = mysql_query($sql) or die(mysql_error()); while ( $row = mysql_fetch_array($result) ) { echo $row['Elev_ID'] . "<br>"; //elever der ikke har tilmeldt sig noget... }
?>
aint working... den skriver bare:
1 2 5 6 7 8 9 10
Der er godt nok også 10 elever meeen... :) kan du hilfe?
Jo... de Elev_ID nummer som IK findes i Tilmeldinger_elever, skal udskrives... det må da være em som ikke er tilmeldt? ik sandt.... eller er jeg helt galt på den :D
$sql = "SELECT DISTINCT Elev_ID FROM Tilmeldinger_elever"; $result = mysql_query($sql) or die(mysql_error()); $str = ""; while ( $row = mysql_fetch_array($result) ) { $str .= $row['Elev_ID'] . ","; } $str = substr($str,0,-1); $sql = "SELECT * FROM Elever WHERE Elev_ID NOT IN(".$str.")";
$result = mysql_query($sql) or die(mysql_error()); while ( $row = mysql_fetch_array($result) ) { echo $row['Elev_ID'] . "<br>"; //elever der ikke har tilmeldt sig noget... }
1. sæt $str lig med $str undtagen det sidste tegn. Betyder startposition 0 og -1 betyder at den skal tage en bagfra. Læs mere her http://dk.php.net/substr
2. DISTINCT betyder "unik". Det vil sige hvis der er to ens rækker vil den kun hive de ud en gang. fra mysqls dokumentation:
"The ALL, DISTINCT, and DISTINCTROW options specify whether duplicate rows should be returned. If none of these options are given, the default is ALL (all matching rows are returned). DISTINCT and DISTINCTROW are synonyms and specify that duplicate rows in the result set should be removed."
Så kan du lige tage forbi dine gamle spørgsmål også og lukke dem, så er jeg sikker på dem der har brugt tid på dine spørgsmål bliver glade...
Synes godt om
Ny brugerNybegynder
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.