fehler in blaetterfunktion!

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • fehler in blaetterfunktion!

    und zwar hab ich mir aus den codeschnipseln eine blaetterfunktion kopiert, die eigenltich auch einwandfrei funktioniert.
    jetzt habe ich mehrere SELECTS eingefuegt - bei einem der beiden selects wird nur ein einzelner datensatz ausgewaehlt, bei dem anderen sind es ca 100. Bei diesem select funktiert die blaetterfunktion nun leider nicht mehr. ich habe in diesem select nun einige $variablen die von der vorherigen seite uebergeben werden - ich kann mir vorstellen das dies zu problemen fuehrt, da bei dem blaettern auf eine neue seite nun der select nochmals durchgefuehrt wird und die $variablen nicht mehr vorhanden sind. (die blaetterfunktion funktioniert bei einem anderen select mit ueber 100 ergebnissen wunderbar - allerdings sind dort keine variablen im select)
    ich hab versucht das problem(von dem ich denke das es daran liegt) zu mit SESSION variablen zu umgehen, funzt aber auch nicht.
    vieleicht hat ja jemand eine idee - bin fuer jede hilfe dankbar.
    PHP-Code:
    <?php
    error_reporting
    (E_All);
    include(
    "connect.php");
    include(
    "usermanagment.inc.php");
    session_start();
    $_SESSION['customernr2']=$_POST['customernr2'];
    $_SESSION['customernr1']=$_POST['customernr1'];
    $_SESSION['projnr1']=$_POST['projnr1'];

    if(
    $_SESSION['customernr2']!='' && $_SESSION['customernr1']=='' && $_SESSION['projnr1']==''){
      
    $sqlab "SELECT sam_bestellung.Projnr,sam_bestellung.CustomerNr,sam_bestellung.Groupp,
    sam_bestellung.EqDes ,sam_bestellung.Area FROM sam_bestellung,sam_date_val WHERE 
    sam_bestellung.projnr=sam_date_val.projnr 
    AND sam_bestellung.customernr='"
    .$_SESSION['customernr2']."' AND sam_date_val.customernr=
    '"
    .$_SESSION['customernr2']."' ORDER BY projnr";
      
    mysql_select_db('safe');

       
    $daten mysql_query($sqlab) OR die(mysql_error());
       
    $num mysql_num_rows($daten);
    }

    if(
    $_SESSION['customernr2']=='' && $_SESSION['customernr1']!='' && $_SESSION['projnr1']!=''){

      
    $sqlab "SELECT sam_bestellung.Projnr,sam_bestellung.CustomerNr,sam_bestellung.Groupp,
    sam_bestellung.EqDes ,sam_bestellung.Area FROM sam_bestellung,sam_date_val WHERE 
    sam_bestellung.projnr='"
    .$_SESSION['projnr1']."' 
    AND sam_date_val.projnr='"
    .$_SESSION['projnr1']."' AND sam_bestellung.customernr=
    '"
    .$_SESSION['customernr1']."'

     AND sam_date_val.customernr='"
    .$_SESSION['customernr1']."'";
      
    mysql_select_db('safe');

       
    $daten mysql_query($sqlab) OR die(mysql_error());
       
    $num mysql_num_rows($daten);
    }
        if (
    $istanzahl == "1") {
             echo 
    "<font size=\"2\" face=\"Verdana\">$num Dataset found.</font>";
        }
        if (
    $istanzahl == "mehrere") {
             echo 
    "<font size=\"2\" face=\"Verdana\">$num Datasets found.</font>";
        }
    echo 
    "<br><br>";
        
    $Zeilen_pro_Seite 17
        
    $maximal_ergebnisse 1000;   
    if (
    $num $maximal_ergebnisse) {
        echo 
    "<br>Zu viel<br><br>";
        
    $num $maximal_ergebnisse;
        }
        for (
    $i =-1$i<$Zeilen_pro_Seite$i++) {
            
    $mail = @mysql_result($daten,$i"mail");

            if (isset (
    $_GET['page'])) {
                
    $page $_GET['page'];
                
    $start=$page $Zeilen_pro_Seite;
            }
            else {
            
    $start 0;
            
    $page 0;
            }

    if(
    $_SESSION['customernr2']!='' && $_SESSION['customernr1']=='' && $_SESSION['projnr1']==''){
          
    $sqlab "SELECT gleicher select wie oben miy ---> LIMIT $start,$Zeilen_pro_Seite";
            
        
    $daten mysql_query($sqlab) OR die(mysql_error());
            
    $mail = @mysql_result($daten,$i"mail");
    }
    elseif(
    $_SESSION['customernr2']=='' && $_SESSION['customernr1']!='' &&

    $_SESSION['projnr1']!=''){
          
    $sqlab "SELECT gleicher select wie oben miy ---> LIMIT $start,$Zeilen_pro_Seite";
            
        
    $daten mysql_query($sqlab) OR die(mysql_error());
            
    $mail = @mysql_result($daten,$i"mail");
    }

    echo 
    "<table border=\"4\", align=\"center\", cellpadding=\"4\", rules=\"all\">\n";
    echo 
    "<form action=\"update_order_suc.php\" method=\"post\">";
      echo 
    "  <tr>\n";
        echo
    "<th>Change</th>";
      for (
    $i 0$i mysql_num_fields($daten); $i++){
        echo 
    "    <th>".mysql_field_name($daten,$i)."</th>\n";
      }
      echo 
    "  </tr>\n";
      while (
    $row mysql_fetch_row($daten)){
        echo 
    "  <tr>\n";
        echo
    "<td><input type=\"checkbox\" name=\"change[]\" value=\"".$row['1'].'"\"></td>";
        for ($i = 0; $i < mysql_num_fields($daten); $i++){
          echo "    <td>$row[$i]</td>\n";
        }
        echo "  </tr>\n";
      }
      echo "</table>\n";
    echo "<html>\n<body>\n";
        }
    echo "<br>";
       if ($num > $Zeilen_pro_Seite) {
           $seiten=floor($num/$Zeilen_pro_Seite);

               if ($seiten == $num/$Zeilen_pro_Seite) {
                   $schluss = $seiten;
               }
               if ($seiten < $num/$Zeilen_pro_Seite) {
                   $seiten++;
                   $schluss = $seiten;
               }
        }
    if (isset($seiten)) {
        for ($a =0; $a<$seiten; $a++) { 
            $mail = @mysql_result($daten,$a, "mail");
            if ($a == 0) {
                echo "<A HREF=\"update_order_sel.php?page=$a\">Seite 1</A>";  // Nur seite 1
            }
            if (($a > 0) And  (($a +1) < $schluss)) {
                $b = $a + 1;
                echo "<A HREF=\"update_order_sel.php?page=$a\">$b</A>";
            }
            if (($a +1 ) == $schluss) {
                echo "<A HREF=\"update_order_sel.php?page=$a\">letzte Seite</A>";
            }
            if (($a + 1) < ($seiten)) {
                echo "&nbsp;|&nbsp;";
            }
        }
    }
    ?>
    Zuletzt geändert von joeCrack; 19.01.2006, 09:07.
    Zwei Dinge sind unendlich: das Universum und die menschliche Dummheit;
    aber bei dem Universum bin ich mir noch nicht ganz sicher. (Albert Einstein)

  • #2
    also auf die schnelle hier ist schon ein fehler
    PHP-Code:
    echo"<td><input type=\"checkbox\" name=\"change[]\" value=\"".$row['1'].'"\"></td>"; 
    das siehst du auch an der einfärbung (wenn das forum da was nicht falsch formatiert hat).

    gruß
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      das ist nur daurch gekomen das ich da mehrere variablen hatte und einige deleted habe wegen der zeilenlaenge ... an meinem echo solte es eigenltich nicht liegen - der hat ja weniger was mit der blaetterfunktion an sich zu tun ...
      Zwei Dinge sind unendlich: das Universum und die menschliche Dummheit;
      aber bei dem Universum bin ich mir noch nicht ganz sicher. (Albert Einstein)

      Kommentar


      • #4
        also ich hab jetzt mal aus der funktion die IFs rausgenommen und nur den SELECT drinnen gelasen, bei dem eine variable uebergeben wird.
        nun wird mir wieder nur die erste seite angezeigt und ich bekomme auf den folgenden seiten nur die tabellenueberschriften angezeigt.
        ich habe ausserdem an den anfange der ausgabe ein ECHO mit der $_SESSION variable geschriben. diese wird mir nun auf der ersten seite angezeigt und auf allen darauffolgenden nicht. HEISST die variable wird an die neuen seiten trotz session nicht uebergeben, HEISST select kann nicht ausgefuehrt werden. Hat jemand jetzt vieleicht eine idee wie ich das prob loesen kann ??
        Zuletzt geändert von joeCrack; 23.01.2006, 00:48.
        Zwei Dinge sind unendlich: das Universum und die menschliche Dummheit;
        aber bei dem Universum bin ich mir noch nicht ganz sicher. (Albert Einstein)

        Kommentar


        • #5
          also ich hab es jetzt erstmal so hinbekommen indem ich folgenden code eingefuegt habe:
          PHP-Code:
          if($_POST['customernr2']!='' && $page==0){

          $_SESSION['customernr2']=$_POST['customernr2'];
          $_SESSION['customernr1']=$_POST['customernr'];
          $_SESSION['projnr1']=$_POST['projnr'];

            
          $sqlab "SELECT sam_bestellung.Groupp,sam_bestellung.EqDes,sam_bestellung.Area FROM sam_bestellung,sam_date_val 
          WHERE sam_bestellung.projnr=sam_date_val.projnr AND sam_bestellung.customernr='"
          .$_SESSION['customernr2']."' 
          AND sam_date_val.customernr='"
          .$_SESSION['customernr2']."' ORDER BY projnr";
            
          mysql_select_db('safe');

             
          $daten mysql_query($sqlab) OR die(mysql_error());
             
          $num mysql_num_rows($daten);
              
          }
              elseif(
          $_SESSION['customernr2']!='' && $page>0){

            
          $sqlab "SELECT sam_bestellung.Groestellung.Hupp,sam_bestellung.EqDes,sam_bestellung.Area,sam_bestellung.Yard 
          FROM sam_bestellung,sam_date_val WHERE sam_bestellung.projnr=sam_date_val.projnr 
          AND sam_bestellung.customernr='"
          .$_SESSION['customernr2']."' 
          AND sam_date_val.customernr='"
          .$_SESSION['customernr2']."' ORDER BY projnr";
                    
          mysql_select_db('safe');

                     
          $daten mysql_query($sqlab) OR die(mysql_error());
                     
          $num mysql_num_rows($daten);
              } 
          Nur bleibt ein Fehler - wenn ich ersteinmal von seite 1 weg bin .. und dann wieder zurueck bekomme ich eine lehre seite.
          Zuletzt geändert von joeCrack; 23.01.2006, 10:23.
          Zwei Dinge sind unendlich: das Universum und die menschliche Dummheit;
          aber bei dem Universum bin ich mir noch nicht ganz sicher. (Albert Einstein)

          Kommentar


          • #6
            Hast Du mal am Anfang $_POST und $_SESSION kontrolliert?

            PHP-Code:
            <?php
            error_reporting
            (E_All);
            include(
            "connect.php");
            include(
            "usermanagment.inc.php");
            session_start();
            echo 
            '<pre>Post:';
            print_r($_POST);
            echo 
            "Session:";
            print_r($_SESSION);
            echo 
            '</pre>';
            Die zehn Gebote sind deswegen so kurz und logisch, weil sie ohne Mitwirkung von Juristen zustande gekommen sind. (Charles de Gaulle)

            Kommentar

            Lädt...
            X