Avatar billede nc85 Nybegynder
03. november 2005 - 13:48 Der er 3 kommentarer

hvorfor looper denne løkke igennem uendeligt?

Har et problem her...

HVorfor bliver den ved med at loope igennem?

<?
session_start();
if($_SESSION['admin'] != "ok") {
    echo '<script>alert("Du skal være logget ind");</script>';
    echo '<script>document.location.href("index.php");</script>';
    }
include("includes/config.inc.php");
if ($_REQUEST['mode'] == "reprio") {
    $iduk = $_REQUEST['uk']; //uk // ID
    $idhk = $_REQUEST['hk']; //hk //REFERENCE ID
    $dir = $_REQUEST['dir'];
    $SQL = "SELECT * FROM artikel WHERE idartikel_kategorier = $idhk ORDER BY prioritet";
    $mq_prio = mysql_query($SQL) or die(mysql_error());
    $i = 0;
    $next1up = false;
    while ($prio = mysql_fetch_assoc($mq_prio)) {
        if ($prio['idartikel'] == $iduk and $dir == "up") {
            array_splice($arrprio,$i-1,0,$prio['idartikel']);
           
        }
        else {       
           
            if ($next1up == true) {           
                array_splice($arrprio,$i-1,0,$prio['idartikel']);
               
                $next1up = false;               
            }
            else {

                $arrprio[] = $prio['idartikel'];
            }
           
            if ($prio['idartikel'] == $iduk and $dir == "down") {
                $next1up = true;
            }
        }
       
       
        $i++;   
    }
   
    $i = 0;
    foreach ($arrprio as $thisid) {
        $SQL = "UPDATE artikel SET prioritet = $i WHERE idartikel_kategorier = $thisid;";
        mysql_query($SQL) or die(mysql_error());
        $i++;
    }
}
?>
<?php

$idartikel_kategorier = $_REQUEST['idkategori'];

?>

<?
$start = $_REQUEST['start'];

$SQL = "SELECT * FROM artikel_kategorier WHERE idartikel_kategorier = $idartikel_kategorier";
$mq_kategori = mysql_query($SQL) or die(mysql_error());
$kategori = mysql_fetch_assoc($mq_kategori);

?>

<h1><?=$kategori['navn']?></h1>
<p align="left">
Vælg side<br>
</p>
<table cellspacing=2 cellpadding=2 border=0>
  <?
  $SQL = "SELECT * FROM artikel ORDER BY idartikel";
    $mq_hk = mysql_query($SQL) or die(mysql_error());
    while ($hk = mysql_fetch_assoc($mq_hk)) {
                  $hkvar = $hk['idartikel_kategorier'];
                $SQL = "SELECT * FROM artikel WHERE idartikel_kategorier = '$hkvar' ORDER BY prioritet";
                $mq_uk = mysql_query($SQL) or die(mysql_error());

               
                $first = true;
                $lastNum = mysql_num_rows($mq_uk);
                $thisNum = 1;

                $SQL = "SELECT * FROM artikel WHERE idartikel_kategorier = $idartikel_kategorier";
                $mq_artikel = mysql_query($SQL) or die(mysql_error());
                echo $SQL;
                while ($uk = mysql_fetch_assoc($mq_uk)) {
                    while ($artikel = mysql_fetch_assoc($mq_artikel)) {
                   
                    $SQL_overskrift = "SELECT * FROM template_felt WHERE idartikel = " . $artikel['idartikel'] . " AND felt_id = 'titel'";
                    $mq_overskrift = mysql_query($SQL_overskrift) or die(mysql_error());
                    $overskrift = mysql_fetch_assoc($mq_overskrift);
                    ?>
  <tr>
    <td><?
                                $idhk = $uk['idartikel_kategorier'];
                                $iduk = $uk['idartikel'];
                                if ($first == true) {
                                    $first = false;
                                    echo "<img height=10 width=10 src='../img/spacer.gif'> ";
                                }
                                else {
                                    $idkategori = $kategori['idkategori'];
                                    $idaktivitet = $aktivitet['idaktivitet'];
                                    echo "<a href='artikler_liste.php?mode=reprio&hk=$idhk&uk=$iduk&dir=up'><img height=10 border=0 width=10 src='../img/pilop.gif'></a> ";
                                }
                                if ($thisNum == $lastNum) {
                                    echo "<img height=10 width=10 src='../img/spacer.gif'> ";
                                }
                                else {
                                    $idkategori = $kategori['idkategori'];
                                    $idaktivitet = $aktivitet['idaktivitet'];
                           
                                    echo "<a href='artikler_liste.php?mode=reprio&hk=$idhk&uk=$iduk&dir=down'><img border=0 height=10 width=10 src='../img/pilned.gif'></a> ";   
                                }
                           
                            ?>
    </td>
    <td width=150><?=$overskrift['felt_data']?>
    </td>
    <td><a href='edit-artikel.php?idartikel=<?=$artikel['idartikel']?>'>
    [<?
$tempDato = split("-",$artikel['dato']);
$tempDato = array_reverse($tempDato);
echo join("-",$tempDato);

?>] <?=$overskrift['felt_data']?></a>
</td>
  </tr>
  <?   
                    $thisNum++;
                }
                }
                }
            ?>
Avatar billede jaw Nybegynder
03. november 2005 - 14:53 #1
Hvilken del er det der looper uendeligt ?
Avatar billede nc85 Nybegynder
03. november 2005 - 14:57 #2
det er sådan set alt dette her den bliver ved med at loope:

while ($uk = mysql_fetch_assoc($mq_uk)) {
                    while ($artikel = mysql_fetch_assoc($mq_artikel)) {
                 
                    $SQL_overskrift = "SELECT * FROM template_felt WHERE idartikel = " . $artikel['idartikel'] . " AND felt_id = 'titel'";
                    $mq_overskrift = mysql_query($SQL_overskrift) or die(mysql_error());
                    $overskrift = mysql_fetch_assoc($mq_overskrift);
                    ?>
  <tr>
    <td><?
                                $idhk = $uk['idartikel_kategorier'];
                                $iduk = $uk['idartikel'];
                                if ($first == true) {
                                    $first = false;
                                    echo "<img height=10 width=10 src='../img/spacer.gif'> ";
                                }
                                else {
                                    $idkategori = $kategori['idkategori'];
                                    $idaktivitet = $aktivitet['idaktivitet'];
                                    echo "<a href='artikler_liste.php?mode=reprio&hk=$idhk&uk=$iduk&dir=up'><img height=10 border=0 width=10 src='../img/pilop.gif'></a> ";
                                }
                                if ($thisNum == $lastNum) {
                                    echo "<img height=10 width=10 src='../img/spacer.gif'> ";
                                }
                                else {
                                    $idkategori = $kategori['idkategori'];
                                    $idaktivitet = $aktivitet['idaktivitet'];
                         
                                    echo "<a href='artikler_liste.php?mode=reprio&hk=$idhk&uk=$iduk&dir=down'><img border=0 height=10 width=10 src='../img/pilned.gif'></a> "; 
                                }
                         
                            ?>
    </td>
    <td width=150><?=$overskrift['felt_data']?>
    </td>
    <td><a href='edit-artikel.php?idartikel=<?=$artikel['idartikel']?>'>
    [<?
$tempDato = split("-",$artikel['dato']);
$tempDato = array_reverse($tempDato);
echo join("-",$tempDato);

?>] <?=$overskrift['felt_data']?></a>
Avatar billede jaw Nybegynder
03. november 2005 - 15:00 #3
Om det løser dit problem, kan jeg ikke overskue sådan lige, men der er adskillige steder, hvor du har variabler du kalder det samme.

Bare et lille eksempel:
    $mq_hk = mysql_query($SQL) or die(mysql_error());
    while ($hk = mysql_fetch_assoc($mq_hk)) {
                  $hkvar = $hk['idartikel_kategorier'];
                $SQL = "SELECT * FROM artikel WHERE idartikel_kategorier = '$hkvar' ORDER BY prioritet";
                $mq_uk = mysql_query($SQL) or die(mysql_error());

... og det går jo ikke. For så overskriver du $mq_uk som den er i gang med at køre en løkke på med noget andet indhold. Samme kan jeg se gør sig gældende med $SQL. Du bliver nødt til at finde utvetydige navne, som f.eks. $SQL1, $SQL2 eller hvad du nu lige vil.
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