22. november 2007 - 09:36
Der er
31 kommentarer og 1 løsning
Hvorfor virker min sql setning ikke?
<? session_start(); include("application.php"); $sql = "SELECT team_players.*, teams.id FROM team_players INNER join teams ON (teamplayers.team_id = teams.id)"; $loadin = mysql_query($SQL) or die("There is an Error in the database"); while ($result = mysql_fetch_object($loadin)){ ?> <? echo $result['team_players.player_id'];?> - <? echo $result['teams.id'];?> <? }?> Hvorfor virker min kode ikke og hvordan virker dette? har ikke helt opfattet konseptet bag de 2 tables alså hvordan man henter fra dem og hvad man henter fra dem.
Annonceindlæg fra Thales
22. november 2007 - 09:46
#1
har også lige prøvet denne men får kun tomme felter med en "-" <? session_start(); include("application.php"); $query = "Select team_players.team_id, teams.id from team_players, teams where team_players.team_id = teams.id"; $result = mysql_query($query) or die(mysql_error()); while($row = mysql_fetch_array($result)){ echo $row['EmployeeName']. " - ". $row['DepartmentName']; echo "<br />";} ?>
22. november 2007 - 09:51
#2
Unlad tabelnavnet: <? echo $result['player_id'];?> - <? echo $result['id'];?>
22. november 2007 - 09:52
#3
Hmm, "Undlad tabelnavnet" ... sku' det ha' været.
22. november 2007 - 09:54
#4
yes så det lige :) men hvad er forskællen på <? session_start(); include("application.php"); $query = "Select team_players.team_id, teams.name from team_players, teams where team_players.team_id = teams.id"; $result = mysql_query($query) or die(mysql_error()); while($row = mysql_fetch_array($result)){ echo $row['team_id']. " - ". $row['name']; echo "<br />";} ?> og $sql = "SELECT team_players.*, teams.id FROM team_players INNER join teams ON (teamplayers.team_id = teams.id)"; $loadin = mysql_query($SQL) or die("There is an Error in the database"); while ($result = mysql_fetch_object($loadin)){ ?> <? echo $result['team_players.player_id'];?> - <? echo $result['teams.id'];?> <? }?>
22. november 2007 - 10:05
#5
og så kom der et problem mere... æv får denne fejl kode når jeg henter fra flere tables! Fatal error: Cannot redeclare ob_callback() (previously declared in /usr/home/customers/improved-gaming.dk/wwwroot/www/application.php:26) in /usr/home/customers/improved-gaming.dk/wwwroot/www/application.php on line 30 Line 26 - 30 function ob_callback($buffer) { global $page_title; $buffer = str_replace("###PAGE_TITLE###", $page_title, $buffer); return $buffer; } og fjerner jeg den kode bliver det næste funktion som er fejlen?! hvad sker der? der er ingen problemer når jeg henter fra en table.
22. november 2007 - 10:06
#6
koden fra siden der melder fejl <?php page_title("test"); session_start(); include("application.php"); $sql = "Select teams.website, teams.name, teams.id from team_players, teams where team_players.team_id = teams.id"; $result = mysql_query($sql) or die(mysql_error()); while($get = mysql_fetch_array($result)){ echo $get['id']. " - ". $get['name']. " - ".$get['website']; echo "<br />";} ?>
22. november 2007 - 10:09
#7
ahh skulle bare lave en db_connect.php hvor jeg også smider db oplysninger ind i og så linker den til siden i stædet for application.php
22. november 2007 - 10:19
#8
Kan i hjælpe mig her? jeg skal bruge navne på dem som er med i teamet men hvordan hente jeg info fra table 3? <?php page_title("test"); session_start(); include("func.php"); $sql = "Select teams.website, teams.name, teams.id from team_players, teams where team_players.team_id = teams.id && users.username from users where team_players.player_id = users.id"; $result = mysql_query($sql) or die(mysql_error()); while($get = mysql_fetch_array($result)){ ?> <p><a href="?page=godkend&id=<?=$get['id']?>">Godkend</a> eller <a href="?page=afvis&id=<?=$get['id']?>">Afvis</a><br /> <?=$get['name']?> | <?=$get['website']?><br /> <?=$get['username']?> </p> <? }?>
22. november 2007 - 10:41
#9
tabel 3?
22. november 2007 - 10:51
#10
ja jeg skal bruge username fra users. for at skrive de bruger som er med på teamet. Har 3 tables. users, teams, team_players users indeholder navnet på brugerne som er med på teams. teams indeholder team navne som brugere er medlem af. team_players indeholder info om hvilke brugere er medlem af hvilke teams. Så skal den hente info fra teams hvor team_players.teams_id = teams.id og users hvor users.username = team_players.player_id og skrive det ud samlet! Jeg kan ikke se hvordan jeg får infoen fra users?
22. november 2007 - 10:54
#11
Skulle gerne vise alle teams sådan her. Godkend eller Afvis team1 | homepage1 user1, user2, user3, user4, user5 Godkend eller Afvis team2 | homepage2 user1, user2, user3, user4, user5 osv
22. november 2007 - 10:56
#12
Så skal du lave en join mellem 3 tabeller. Hvis vi går videre fra din sidste, skitse: select ... from tabel1,tabel2,tabel3 where tabel1.xxx=tabel2.yyy and tabel2.yyy=tabel3.zzz and ...
22. november 2007 - 10:58
#13
Har lavet det her men den viser desvære kun 1 team :( og der skulle den gerne vise allesammen der er vel en 20 stykker <?php page_title("test"); session_start(); include("func.php"); $sql = "Select teams.website, teams.name, teams.id from team_players, teams where team_players.team_id = teams.id"; $result = mysql_query($sql) or die(mysql_error()); while($get = mysql_fetch_array($result)){ ?> <p><a href="?page=godkend&id=<?=$get['id']?>">Godkend</a> eller <a href="?page=afvis&id=<?=$get['id']?>">Afvis</a><br /> <?=$get['name']?> | <?=$get['website']?><br /> <? $teamid = $get['id']; $sql = "Select users.username from users, team_players where team_players.team_id = $teamid && team_players.player_id = users.id"; $result = mysql_query($sql) or die(mysql_error()); while($get = mysql_fetch_array($result)){ ?> <?=$get['username']?>, <? }?> </p> <? }?>
22. november 2007 - 10:59
#14
prøver lige den metode giv mig lige 2 min
22. november 2007 - 11:00
#15
Du overskriver $result og $get i dit andet sql-kald.
22. november 2007 - 11:08
#16
hmm vis jeg tilføjer users så ser det ud som om den laver en lykke og siden crasher. den køre og køre men der sker ikke noget og min browser crasher så. <?php page_title("test"); session_start(); include("func.php"); $sql = "Select teams.website, teams.name, users.username, teams.id from team_players, teams, users where team_players.team_id = teams.id"; $result = mysql_query($sql) or die(mysql_error()); while($get = mysql_fetch_array($result)){ ?> <p><a href="?page=godkend&id=<?=$get['id']?>">Godkend</a> eller <a href="?page=afvis&id=<?=$get['id']?>">Afvis</a><br /> <?=$get['name']?> | <?=$get['website']?><br /> <?=$get['username']?> </p> <? }?>
22. november 2007 - 11:14
#17
Laver du join mellem 3 tabeller, skal du have 2 sammenligninger for at knytte dem sammen. Se min skitse. Du har sikkert fået alt for mange rækker med (ikke uendeligt, men mange...)
22. november 2007 - 11:15
#18
arbejede lige lidt med den anden metode: nu udskriver den navne under teams også man den udskriver teams'ne lige så mange gange som der er users. eks er der 2 members af teamet udskrives den 2 gang :) hvad kan jeg gøre ved det.
22. november 2007 - 11:15
#19
kigger
22. november 2007 - 11:17
#20
select ... from tabel1,tabel2,tabel3 where tabel1.xxx=tabel2.yyy and tabel2.yyy=tabel3.zzz and ... Select teams.website, teams.name, teams.id users.username from users, team_players, teams where team_players.team_id = teams.id ORDER BY `id` sådan?
22. november 2007 - 11:21
#21
sådan. <?php page_title("test"); session_start(); include("func.php"); $sql = "Select teams.website, teams.name, teams.id, users.username from users, team_players, teams where team_players.team_id = teams.id && team_players.player_id = users.id ORDER BY `id`"; $result = mysql_query($sql) or die(mysql_error()); while($get = mysql_fetch_array($result)){ ?> <p><a href="?page=godkend&id=<?=$get['id']?>">Godkend</a> eller <a href="?page=afvis&id=<?=$get['id']?>">Afvis</a><br /> <?=$get['id']?> | <?=$get['name']?> | <?=$get['website']?><br /> <?=$get['username']?>, </p> <? }?> Bare 1 stort problem den udskriver kun 1 member og laver teamet x antal gange x= antal members på team :S
22. november 2007 - 11:31
#22
og der må så være where team_players.team_id = teams.id der gør det. :S hvordan kan man rette det?
22. november 2007 - 12:09
#23
Den giver vel alle medlemmer i et team, men ikke præcis på den måde du vil udskrive det på?
22. november 2007 - 12:14
#24
Jeg brugte lige lidt tid til at tænke over hvordan jeg kunne udskrive dem og kom op med en nem løsning. her virker det hele. <?php page_title("test"); session_start(); include("func.php"); $sql = "Select teams.website, teams.channel, teams.name, teams.id from team_players, teams where team_players.type = 'owner' && teams.id = team_players.team_id ORDER BY `id`"; $result = mysql_query($sql) or die(mysql_error()); while($get = mysql_fetch_array($result)){ ?> <p><a href="?page=godkend&id=<?=$get['id']?>">Godkend</a> eller <a href="?page=afvis&id=<?=$get['id']?>">Afvis</a><br /> <strong>Hold:</strong> <?=$get['name']?><br /> <strong>Spillere:</strong> <? $teamid = $get['id']; $sqlt = "Select users.username from users, team_players where team_players.team_id = $teamid && team_players.player_id = users.id"; $resultt = mysql_query($sqlt) or die(mysql_error()); while($gett = mysql_fetch_array($resultt)){ ?> <?=$gett['username']?>, <? }?><br /> <strong>Hjemmeside:</strong> <?=$get['website']?><br /> <strong>mIRC:</strong> <?=$get['channel']?><br /> </p> <? }?>
22. november 2007 - 12:21
#25
Det svarer til det du har 22/11-2007 10:58:55 - det giver bare en hulens masse sql-forespørgsler.
Men du svarer ikke på 22/11-2007 12:09:01 ... alle medlemmer kommer vel med, een pr record? Er det tilfældet kan du med en GROUP BY og
http://mysql.com/group_concat få en komma-liste af brugere - og nøjes med een sql-sætning.
22. november 2007 - 13:14
#26
er du ikke venlig at vise et eksempel? er ikke helt med på hvad jeg skal bruge!
23. november 2007 - 11:35
#27
Så er jeg kommet så langt. Nu er den faktisk næsten klar!. Jeg har bare et mindre problem med min setning! og det er at jeg ikke kan havde 2 som heder name. alså cups.name og cups_teams.name for så bruger den kun den ene til det hele? hvordan klare jeg det?
23. november 2007 - 11:35
#28
<? if($_SESSION['type'] = "admin"){?><!-------------------------------Secure------------------------> <div style="border-bottom:1px solid #006699;"> <a href="admin.php">Tilbage</a></div> <? session_start(); include("func.php"); $sql = "Select teams.website, cups_teams.validation_status, teams.channel, cups_teams.id, teams.name, cups.name from cups, cups_teams, team_players, teams where team_players.type = 'owner' && teams.id = team_players.team_id && teams.id = cups_teams .team_id && cups_teams.cup_id = cups.id ORDER BY `id`"; $result = mysql_query($sql) or die(mysql_error()); while($get = mysql_fetch_array($result)){ echo $get->validation_status; if($get['validation_status'] == "pending"){ ?> <p><a style="color: green;" href="?page=cups.subscriptions&accept=<?=$get['id']?>">Godkend</a> eller <a style="color: red;" href="?page=cups.subscriptions&decline=<?=$get['id']?>">Afvis</a> - <?=$get['name']?><br /> <strong>Hold:</strong> <?=$get['name']?><br /> <strong>Spillere:</strong> <? $teamid = $get['id']; $sqlt = "Select users.username from users, team_players where team_players.team_id = $teamid && team_players.player_id = users.id"; $resultt = mysql_query($sqlt) or die(mysql_error()); while($gett = mysql_fetch_array($resultt)){ ?> <?=$gett['username']?>, <? }?><br /> <strong>Hjemmeside:</strong> <?=$get['website']?><br /> <strong>mIRC:</strong> <?=$get['channel']?><br /> </p> <? }}}?>
23. november 2007 - 11:52
#29
nå lavede et extra felt så postede navnet der i også. så nu virker det. <? if($_SESSION['type'] = "admin"){?><!-------------------------------Secure------------------------> <div style="border-bottom:1px solid #006699;"> <a href="admin.php">Tilbage</a></div> <? session_start(); include("func.php"); $sql = "Select teams.website, cups_teams.validation_status, teams.channel, cups_teams.id, cups_teams.team_id, teams.name, cups.cup_name from cups, cups_teams, team_players, teams where team_players.type = 'owner' && teams.id = team_players.team_id && teams.id = cups_teams .team_id && cups.id = cups_teams.cup_id ORDER BY `id`"; $result = mysql_query($sql) or die(mysql_error()); while($get = mysql_fetch_array($result)){ echo $get->validation_status; if($get['validation_status'] == "pending"){ ?> <p><a style="color: green;" href="?page=cups.subscriptions&accept=<?=$get['id']?>">Godkend</a> eller <a style="color: red;" href="?page=cups.subscriptions&decline=<?=$get['id']?>">Afvis</a> - <?=$get['cup_name']?><br /> <strong>Hold:</strong> <?=$get['name']?><br /> <strong>Spillere:</strong> <? $teamid = $get['team_id']; $sqlt = "Select users.username from users, team_players where team_players.team_id = $teamid && team_players.player_id = users.id"; $resultt = mysql_query($sqlt) or die(mysql_error()); while($gett = mysql_fetch_array($resultt)){ ?> <?=$gett['username']?>, <? }?><br /> <strong>Hjemmeside:</strong> <?=$get['website']?><br /> <strong>mIRC:</strong> <?=$get['channel']?><br /> </p> <? }}}?>
03. december 2007 - 11:21
#30
erikjacobsen vil du havde points? du har jo hjulpet lidt :)
03. december 2007 - 12:09
#31
Nej tak.
04. december 2007 - 10:30
#32
Jamen så siger jeg mange tak for hjælpen :o) håber du vil hjælpe mig i fremtiden!
Vi tilbyder markedets bedste kurser inden for webudvikling