Avatar billede retake Nybegynder
22. januar 2008 - 20:34 Der er 11 kommentarer og
1 løsning

Array af team_id som skal mixes hvordan hjælp!

Hej jeg har et problem og det kan godt være svært at forklare men jeg gør mit bedste.

Det system jeg laver skal kunne gennemføre følgene funktion.
Via cup_id'en skal den hente alle som er tilmeldt og er accepted. dette er gjordt.

og nu kommer der svære, den skal så lave et array over alle de teams_id der er og der efter sætte dem op mod hinannen i team1 vs team2 og team 3 vs team 4 men behøves ofc ikke være i den orden.

Her er hvad jeg har hidtil dette virker ikke men her er sql setningen og fields.

<?php
$cup_id = $_GET['cup_id'];
echo "Render list";
$SQL = "SELECT team_teams_id FROM x_systems_team WHERE team_cup_id = '$cup_id'";
$loadin = mysql_query($SQL) or die("There is an Error in the database");
while ($Get = mysql_fetch_object($loadin)){
print("".$Get->team_teams_id.", ");
}
?>

Derefter skal den sætte infoen ind i x_systems_result
i result_teama og result_teamb.

Håber i kan hjælpe mig med problemet vil virkelig hjælpe mig meget.
Avatar billede coderdk Praktikant
22. januar 2008 - 22:58 #1
Jeg er lidt træt, så det kan sikkert gøres meget smartere:

<?php
$cup_id = $_GET['cup_id'];
echo "Render list";
$SQL = "SELECT team_teams_id FROM x_systems_team WHERE team_cup_id = '$cup_id'";
$loadin = mysql_query($SQL) or die("There is an Error in the database");
$team1 = array();
$team2 = array();
$i = 0;
while ($Get = mysql_fetch_object($loadin)){
  $i++;
  if ( $i % 2 == 0 )
  {
    $team1[] = $Get->team_teams_id;
  }
  else
  {
    $team2[] = $Get->team_teams_id;
  }
}
shuffle( $team1 );
shuffle( $team2 );
$teams = array_combine( $team1, $team2 );
foreach ( $teams as $t1 => t2 )
{
  echo "$t1 vs. $t2<br />";
}
?>

Måske med en ORDER BY RAND() så man undgår shuffle()-kald...
Avatar billede retake Nybegynder
23. januar 2008 - 09:49 #2
Parse error: syntax error, unexpected ')', expecting T_PAAMAYIM_NEKUDOTAYIM in /usr/home/customers/improved-gaming.dk/wwwroot/www/2.0/pages/edit.bracket.php on line 23
Avatar billede retake Nybegynder
23. januar 2008 - 10:00 #3
Apparently “PAAMAYIM NEKUDOTAYIM” is Hebrew for “double colon” (::).
jeg kan bare ikke se nogle double clone !
Avatar billede coderdk Praktikant
23. januar 2008 - 10:15 #4
hahah det er det mest bizarre jeg har set længe, jeg får samme fejl:

Parse error: syntax error, unexpected ')', expecting T_PAAMAYIM_NEKUDOTAYIM in test.php on line 23

Anyway! Fejlen er i foreach! Den skal se sådan ud:

foreach ( $teams as $t1 => $t2 )
{
  echo "$t1 vs. $t2<br />";
}

Der manglede et $ ved t2
Avatar billede retake Nybegynder
23. januar 2008 - 10:33 #5
yep fandt det for lidt siden :S

Men mange tak.

vis det ikke er for meget at spørge om kan du so også hjælpe med at få det ind i min database?!




mysql_query("INSERT INTO x_systems_result (
result_team_id_a,
result_team_id_b,
result_cup_id
) VALUES (
'',
'',
''
)") or die (Java::Alert("MySQL Error: ".mysql_error()));
Java::Alert("Cup liste er oprettet");
Java::GoToURL("../index.php?page=edit.tilmelding");

Du behøves ikke da du har besvaret mit spørsmål, men vil være kanon :)
Avatar billede retake Nybegynder
23. januar 2008 - 10:34 #6
ofc skal det først være når man trykker på submit :)
Avatar billede coderdk Praktikant
23. januar 2008 - 11:37 #7
Noget i stil med:

<?php

if ( $_SERVER['REQUEST_METHOD'] == 'POST' )
{
  $sql = sprintf("INSERT INTO x_systems_result (
result_team_id_a,
result_team_id_b,
result_cup_id
) VALUES (
'%d',
'%d',
'%d'
)"
,$_POST['team1']
,$_POST['team2']
,$_POST['result']
);
  mysql_query($sql) or die (Java::Alert("MySQL Error: ".mysql_error()));
Java::Alert("Cup liste er oprettet");
Java::GoToURL("../index.php?page=edit.tilmelding");
}

?>
<form method="post">
team1: <input type="text" name="team1" /><br />
team2: <input type="text" name="team2" /><br />
resultat: <input type="text" name="result" /><br />
<input type="submit" value="gem" /></form>

?
Avatar billede retake Nybegynder
23. januar 2008 - 12:51 #8
Vis vi siger der er 5 par af 2 så vil den da kun sætte 1par ind i databasen ikke?!
Avatar billede coderdk Praktikant
23. januar 2008 - 12:56 #9
ikke forstået? den kode jeg lige postede sætter kun én række med ét par teams ind :)
Avatar billede retake Nybegynder
23. januar 2008 - 13:11 #10
ahh det jeg vil havde den til er at den for vært par sætter det ind i databasen

alså
1: team1, team2, cup1
2: team3, team4, cup1
osv :)
alså ikke så den sætter en masse ind i team1 og team2
Avatar billede retake Nybegynder
23. januar 2008 - 13:30 #11
Sådan :D

<?php
session_start();
DB::Conn("open");
$cup_id = $_GET['cup_id'];
echo "Render list<br>";
$SQL = "SELECT team_teams_id FROM x_systems_team WHERE team_cup_id = '$cup_id'";
$loadin = mysql_query($SQL) or die("There is an Error in the database");
$team1 = array();
$team2 = array();
$i = 0;
while ($Get = mysql_fetch_object($loadin)){
  $i++;
  if ( $i % 2 == 0 )
  {
    $team1[] = $Get->team_teams_id;
  }
  else
  {
    $team2[] = $Get->team_teams_id;
  }
}
shuffle( $team1 );
shuffle( $team2 );
$teams = array_combine($team1, $team2);
foreach ( $teams as $t1 => $t2 )
{
  //echo "$t1 vs. $t2<br />";
    mysql_query("INSERT INTO x_systems_result (
    result_team_id_a,
    result_team_id_b,
    result_cup_id
    ) VALUES (
    '".$t1."',
    '".$t2."',
    '".$cup_id."'
    )") or die (Java::Alert("MySQL Error: ".mysql_error()));
    Java::Alert("Listen er genereret");
    Java::GoToURL("../index.php?page=edit.tilmelding");
}
?>
Avatar billede coderdk Praktikant
23. januar 2008 - 13:54 #12
GoToURL - redirecter den? For så sætter den jo kun én record ind? :P
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