Avatar billede jenslyn_s Nybegynder
16. april 2005 - 20:07 Der er 8 kommentarer og
1 løsning

Unexpected unexpected T_IF og T_variable - Parsing, argh, argh

Jeg har prøvet at tweake og gøre ved, men lige meget hjælper det. Jeg har prøvet at finde hjælp til problemet, men er ikke endt op med noget afgørende.

Første fejl er: parse error, unexpected T_IF på linie 45; if($puljeAntalRest == 0){

Hjælp mig :/


---- KODE BEGIN ---->
require_once('connect.php');
$rIDauto = 7; //$_POST['rIDauto'];
$pIDauto = 9; //$_POST['pIDauto'];
$tID = 1;

// Optælle hold i specifik række
    $antalHold = 0;
    $result = mysql_query("SELECT * FROM Hold WHERE RaekkeID = '".$rIDauto."' AND TurneringID = '".$tID."' AND BetStatus = '1' AND completed = '1' ");
    while ($row = mysql_fetch_array($result)) {
        $holdID[] = $row['HoldID'];
        $antalHold++;
    }

if($antalHold == 0){
    $alertP = "The division doesn't contain any teams. No groups were generated.";
} else if($antalHold <= 2){
    $alertP = "The division only contains ".$antalHold." which isn't enough to create a group.";
} else { // generate groups

/// <ARGH

    // beregne antal puljer
        $puljeAntalHel = floor($antalHold/4);
        $puljeAntalRest = $antalHold-(4*floor($antalHold/4));
        echo $puljeAntalHel."<br>".$puljeAntalRest;
       
        //sæt antal puljer m. 4 hold
       
LINIE 45        if($puljeAntalRest == 0){
                for ($i = 1; $i <= $puljeAntalHel; $i++) {
                    $puljeArray[] = 4;
                }
            }
            if($puljeAntalRest == 3){
                for ($i = 1; $i <= $puljeAntalHel; $i++) {
                    $puljeArray[] = 4;
                }
                // rest pulje mindre end 4 hold pr pulje
                $puljeArray[] = 3;
            }
            if($puljeAntalRest == 2){
                for ($i = 1; $i <= ($puljeAntalHel-1); $i++) {
                    $puljeArray[] = 4;
                }
                // rest pulje mindre end 4 hold pr pulje
                $puljeArray[] = 3;
                $puljeArray[] = 3;
            }
            if($puljeAntalRest == 1){
                for ($i = 1; $i <= ($puljeAntalHel-2); $i++) {
                    $puljeArray[] = 4;
                }
                // rest pulje mindre end 4 hold pr pulje
                $puljeArray[] = 3;
                $puljeArray[] = 3;
                $puljeArray[] = 3;
            }
}
--- KODE END --------->
Avatar billede dennismp Nybegynder
16. april 2005 - 20:12 #1
Hvilken version af php bruger du? Jeg får ingen fejl.

Men prøv evt at rette
} else if($antalHold <= 2){

til

} elseif($antalHold <= 2){
Avatar billede barklund Nybegynder
16. april 2005 - 20:13 #2
Hm, det script kan vist laves mange gange lettere, hvis man forstår at bruge modulo.
Avatar billede jenslyn_s Nybegynder
16. april 2005 - 20:16 #3
PHP Version 4.3.10

dennismp, prøver lige

Barklund, det betvivler jeg ikke. Kan du komme med et kort hint?
Avatar billede jenslyn_s Nybegynder
17. april 2005 - 19:30 #4
Ingen som løse problemet?
Avatar billede dennismp Nybegynder
17. april 2005 - 19:35 #5
.. jeg antager at det betyder det ikke virkede?
Avatar billede jenslyn_s Nybegynder
17. april 2005 - 19:36 #6
ja, og jeg sparede lige et "kan"....
Hvilken php. ver. kører du Dennis?
Avatar billede jenslyn_s Nybegynder
17. april 2005 - 19:58 #7
Okay, nu har jeg løst det :/

De 4 if-sætninger skulle skrive sammen til:
if(){
} elseif(){
} elseif(){
}

lidt underligt....

Dennis du leverede det mest afgørrende til dette åndsvage problem - smid et svar.
Avatar billede dennismp Nybegynder
17. april 2005 - 20:07 #8
Jeg bruger 4.3.10.

Problemet kan måske bedst forklares med et eksempel (det er jo i samme stil det du gør).

if() {
  A
}
else if() {
  B
}
else {
  C
}

kan skirves som

if() {
  A
}
else {
  if() {
    B
  }
  else {
    C
  }
}

hvilket er nok er det du vil. Men det kan også læses som (det er nemlig problemet, det er tvetydigt)

if() {
  A
}
else {
  if() {
    B
  }
}
else {
  C
}

Nu har du en
if()
..
else
..
else

og det giver ikke nogen mening i php - og så får du en fejlmeddelelse.

Der imod er
if()
elseif()
else

gyldigt, som du også er nået frem til.

Håber det gav mening
Avatar billede jenslyn_s Nybegynder
17. april 2005 - 22:10 #9
Ja tak, det giver mening.
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