Avatar billede asn24 Nybegynder
11. februar 2008 - 12:02 Der er 10 kommentarer og
1 løsning

Goto funktion i php?

Hejsa

Er der i php en forholdsvis simpel måde at sige hvis noget fejler, så skal den hoppe op og starte scriptet forfra, med en ny værdi en en variabel?
Avatar billede limemedia Nybegynder
11. februar 2008 - 14:00 #1
Du kan jo starte med http://jp.php.net/exceptions
Naar du er lost, kan du jo komme med et specifikt eksempel paa hvad du egentligt vil opnaa
Avatar billede kjeldsted Novice
11. februar 2008 - 20:50 #2
Hvis jeg læser dit spørgsmål vil du have at hvis den lave en fejl i en funktion så starter den funktionen forfra. Hvis det er rigtig skal du passe på med det, da brugeren kan rissikere at siden bare står og prøver at loade i uendeligheder(i værste fald får browseren til at fryse). For hvis først der er en fejl i en php funktion, så er der en fejl. Jeg ville hellere kontrollere om den gør som den skal, og hvis ikke så bruge die() funktionen, og skrive til brugeren at han kan prøve igen.
Avatar billede asn24 Nybegynder
11. februar 2008 - 21:07 #3
Kjeldsted-> Det er ikke helt korrekt.. Jeg har en variabel der indeholder et tal. Hvis det tal trækker et andet tal ud og det er 0, så skal den bruge tal1 - 1, til at løbe funktionen igennem igen :)
Avatar billede olebole Juniormester
11. februar 2008 - 21:39 #4
<ole>

Hvad betyder: "Hvis det tal trækker et andet tal ud og det er 0"?

/mvh
</bole>
Avatar billede asn24 Nybegynder
11. februar 2008 - 21:52 #5
Lige nu er tallet 5 (år) .. Ud fra det finder jeg en persons arbejdsområde, og hvis det er 0, så skal den trække 1 fra 5, og prøve at se om hvad arbejdsområdet så er, er det igen 0, skal den igen trække 1 fra, og prøve forfra. Når den til år nr 0, skal den melde fejl, så scriptet selvfølgelig ikke bliver ved med at køre.
Avatar billede olebole Juniormester
11. februar 2008 - 22:29 #6
Jeg er ikke sikker på, hvad du mener ... er det sådan noget:

$num = 5;
for ($i=0; $i<$num; $i++) {
    $x = myFunc($num--);
    if ($x!=0) {
        // Gør noget
        break;
    }
}
if ($x==0) {
    // Der er en fejl
}
Avatar billede olebole Juniormester
11. februar 2008 - 22:31 #7
- eller:

$num = 5;
for ($i=$num; $i>0; $i--) {
    $x = myFunc($i);
    if ($x!=0) {
        // Gør noget
        break;
    }
}
if ($x==0) {
    // Der er en fejl
}
Avatar billede asn24 Nybegynder
11. februar 2008 - 22:48 #8
Det er denne kode:

$lastYear = 5;
$getEmployees = "SELECT employee.Festival, employee.Personel, employee.Employee_ID, myarea.Area, myarea.Manager, myarea.Deleted
                    FROM employee, myarea
                    WHERE employee.Employee_ID = myarea.Employee AND Festival = $lastYear";

        $sql = mysql_query($getEmployees) or die(mysql_error());
            while($r = mysql_fetch_array($sql)) {
                $area = $r['Area'];
                $manager = $r['Manager'];
                $deleted = $r['Deleted'];
                $employee = $r['Employee_ID'];
       
                    if($area == 0) {
                        $lastYear = $lastYear - 1;

                                                (her skal den starte forfra med den nye værdi)
                    }else{
                        //$insert = mysql_query("INSERT INTO myarea (`Employee`, `Area`, `Deleted`, `Manager`) VALUES ('$employee', '$area', '$deleted', '$manager')");
                    }               
            }

Håber det er nemmere at forstå nu :)
Avatar billede olebole Juniormester
11. februar 2008 - 23:48 #9
Pak den første query ind i en funktion og kald den, hvor jeg skrev 'myFunc' - den anden sætter du ind, hvor jeg skrev '// Gør noget'
Avatar billede asn24 Nybegynder
12. februar 2008 - 14:22 #10
Tusind tak, smid et svar og du skal få point :)
Avatar billede olebole Juniormester
12. februar 2008 - 20:10 #11
Selvtak  :)
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