Avatar billede retake Nybegynder
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.
Avatar billede retake Nybegynder
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 />";}
?>
Avatar billede erikjacobsen Ekspert
22. november 2007 - 09:51 #2
Unlad tabelnavnet:

<? echo $result['player_id'];?> - <? echo $result['id'];?>
Avatar billede erikjacobsen Ekspert
22. november 2007 - 09:52 #3
Hmm, "Undlad tabelnavnet" ... sku' det ha' været.
Avatar billede retake Nybegynder
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'];?>
<? }?>
Avatar billede retake Nybegynder
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.
Avatar billede retake Nybegynder
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 />";}
?>
Avatar billede retake Nybegynder
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
Avatar billede retake Nybegynder
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>
<? }?>
Avatar billede erikjacobsen Ekspert
22. november 2007 - 10:41 #9
tabel 3?
Avatar billede retake Nybegynder
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?
Avatar billede retake Nybegynder
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
Avatar billede erikjacobsen Ekspert
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 ...
Avatar billede retake Nybegynder
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>
<? }?>
Avatar billede retake Nybegynder
22. november 2007 - 10:59 #14
prøver lige den metode
giv mig lige 2 min
Avatar billede erikjacobsen Ekspert
22. november 2007 - 11:00 #15
Du overskriver $result og $get i dit andet sql-kald.
Avatar billede retake Nybegynder
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>
<? }?>
Avatar billede erikjacobsen Ekspert
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...)
Avatar billede retake Nybegynder
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.
Avatar billede retake Nybegynder
22. november 2007 - 11:15 #19
kigger
Avatar billede retake Nybegynder
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?
Avatar billede retake Nybegynder
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
Avatar billede retake Nybegynder
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?
Avatar billede erikjacobsen Ekspert
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å?
Avatar billede retake Nybegynder
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>
<? }?>
Avatar billede erikjacobsen Ekspert
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.
Avatar billede retake Nybegynder
22. november 2007 - 13:14 #26
er du ikke venlig at vise et eksempel? er ikke helt med på hvad jeg skal bruge!
Avatar billede retake Nybegynder
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?
Avatar billede retake Nybegynder
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&amp;accept=<?=$get['id']?>">Godkend</a> eller <a style="color: red;" href="?page=cups.subscriptions&amp;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>
<? }}}?>
Avatar billede retake Nybegynder
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&amp;accept=<?=$get['id']?>">Godkend</a> eller <a style="color: red;" href="?page=cups.subscriptions&amp;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>
<? }}}?>
Avatar billede retake Nybegynder
03. december 2007 - 11:21 #30
erikjacobsen vil du havde points? du har jo hjulpet lidt :)
Avatar billede erikjacobsen Ekspert
03. december 2007 - 12:09 #31
Nej tak.
Avatar billede retake Nybegynder
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!
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