Avatar billede ofirpeter Nybegynder
08. juli 2004 - 17:11 Der er 7 kommentarer og
1 løsning

Problemer med ELSE

Hej, jeg har bygget et lille script som skal hjælpe mig med at ændre nogle tal i en database. Det er egentlig ikke det der er det vigtige, fordi der hvor problemet ligger, er i min if-sætning, jeg kan simpelthen ikke sætte en ELSE på som virker.

<?php
include("conn.php");

$from = $_GET["from"];
$to = $_GET["to"];

$rows = mysql_query("select navn from $table_tekst") or die(mysql_error());
$num_rows = mysql_num_rows($rows);

if($to > 0) {
if($num_rows >= $to) {

$hent_from = mysql_query("select navn from $table_tekst where prio='$from'") or die(mysql_error());
while ($ud_from = mysql_fetch_array($hent_from)){

$hent_to = mysql_query("select navn from $table_tekst where prio='$to'") or die(mysql_error());
while ($ud_to = mysql_fetch_array($hent_to)){

mysql_query("update $table_tekst set prio ='$from' WHERE navn ='$ud_to[navn]'") or die(mysql_error());
mysql_query("update $table_tekst set prio ='$to' WHERE navn ='$ud_from[navn]'") or die(mysql_error());

header("Location: tekst_valg.php");
}}
}}
?>

Hvordan får jeg en else funktion her til sidst?
Avatar billede jaw Nybegynder
08. juli 2004 - 17:14 #1
Sådan her, vel?

if($to > 0) {
    if($num_rows >= $to) {

        $hent_from = mysql_query("select navn from $table_tekst where prio='$from'") or die(mysql_error());
        while ($ud_from = mysql_fetch_array($hent_from)){

            $hent_to = mysql_query("select navn from $table_tekst where prio='$to'") or die(mysql_error());
            while ($ud_to = mysql_fetch_array($hent_to)){

                mysql_query("update $table_tekst set prio ='$from' WHERE navn ='$ud_to[navn]'") or die(mysql_error());
                mysql_query("update $table_tekst set prio ='$to' WHERE navn ='$ud_from[navn]'") or die(mysql_error());

                header("Location: tekst_valg.php");
            }
        }
    }   
} else {
  //noget
}

Der vil se ske //noget når $to er 0 eller mindre...
Avatar billede ofirpeter Nybegynder
08. juli 2004 - 17:39 #2
Vil det ikke være når "0 er større end $to" og "$num_rows større eller lig med $to"
Avatar billede jaw Nybegynder
08. juli 2004 - 17:41 #3
Nej, altså hvis vi omskriver den lidt, er det faktisk:


if($to > 0) {
  //blahblah
} else {
  //noget
}

alle if'er inde mellem { } er sådan set lige meget, hvis ikke de får adgang til den første if
Avatar billede ofirpeter Nybegynder
08. juli 2004 - 17:52 #4
Men hvordan får jeg så den anden IF til at gælde også?

Så scriptet bliver afviklet hvis $to ligger mellem 0 og $num_rows.
Hvis ikke skal der altså udskrives en else.
Avatar billede jaw Nybegynder
08. juli 2004 - 17:55 #5
Det må du kunne gøre sådan her:

if($to > 0 && $num_rows >= $to) {
    $hent_from = mysql_query("select navn from $table_tekst where prio='$from'") or die(mysql_error());
  while ($ud_from = mysql_fetch_array($hent_from)){
      $hent_to = mysql_query("select navn from $table_tekst where prio='$to'") or die(mysql_error());
    while ($ud_to = mysql_fetch_array($hent_to)){
        mysql_query("update $table_tekst set prio ='$from' WHERE navn ='$ud_to[navn]'") or die(mysql_error());
        mysql_query("update $table_tekst set prio ='$to' WHERE navn ='$ud_from[navn]'") or die(mysql_error());
      header("Location: tekst_valg.php");
    }
  }
} else {
  //noget
}
Avatar billede ofirpeter Nybegynder
08. juli 2004 - 18:06 #6
Perfekt! Det har jeg kun arbejdet på de sidste 4 timer :0)
Jeg blev klogere!
Mange tak. Du må meget gerne svare.
Avatar billede jaw Nybegynder
08. juli 2004 - 18:08 #7
Godt, det gør jeg :) Kan lige tilknytte, at && betyder AND og || betyder OR i if-sætninger
Avatar billede ofirpeter Nybegynder
08. juli 2004 - 18:12 #8
Tak :) Det er noteret.
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