ID's in Reihenfolge

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

  • Abraxax
    antwortet
    nein. denn die 1 kommt aus $i und hat ncihts mit der DB-ID zu tun

    und warum bitte willst du die db noch einmal abfragen? die while macht doch schon alles, was sie soll.

    Einen Kommentar schreiben:


  • Timelesk
    antwortet
    Nuja, ich hab mir gedacht:

    case 0 = vorherige id
    case 1 = anzeige-id
    case 2 = nächste id

    und somit könnt man ja wieder ne mysql-abfrage starten, wo id=case 1 ist...

    aber anscheinend funzt das alles net

    Einen Kommentar schreiben:


  • Abraxax
    antwortet
    was soll das den bewirken?
    PHP-Code:
     $sql="SELECT * FROM adressen where id='$text'"

    Einen Kommentar schreiben:


  • Timelesk
    antwortet
    Hi,

    funktioniert...

    Ich weiß, jetzt werde ich ein bisschen blöde, kann nix selber denken, aber trotzdem:

    Ähm ja, wenn ich bei ID2 bin, sagt er zurück id1 und vorwärts id34.
    das stimmt auch. aber wenn ich bei id1 oder id34 bin, sagt er das selber.

    Habe den Code über die while-schleife in der detail.php eingebaut.

    PHP-Code:
      $aktuelle2 $id+1;
      

        
    $sql "SELECT id FROM adressen LIMIT 0,3";
        
    $res mysql_query($sql) or die(mysql_error());
        
        
    $i=0;
        while (
    $z=mysql_fetch_assoc($res))
        {
            switch(
    $i)
            {
                case 
    $back $z['id'];   break;
                case 
    $text $z['id']; break;
                case 
    $next $z['id'];   break;
            }
            
    $i++;
        }  

      
    $sql="SELECT * FROM adressen where id='$text'";  
      if (
    $id==0) die("<tr><td>Das war der erste Eintrag</td></tr>");

      
    $res=mysql_query($sql$db);
      while(
    $adresse mysql_fetch_object($res)) 

    Einen Kommentar schreiben:


  • Abraxax
    antwortet
    das x ist ja dynamisch. irgendwie brauchst du ja immer einen anderen anfangspunkt zum blättern. wenn du next drückst, muss das x ja eines nach oben genommen werden..

    hier ein einfachen bespiel...
    PHP-Code:
    <?php

        $sql 
    "SELECT id,text FROM tabelle LIMIT 0,3";
        
    $rel mysql_query($sql) or die(mysql_error());
        
        
    $i=0;
        while (
    $z=mysql_fetch_assoc($res))
        {
            switch(
    $i)
            {
                case 
    $back $z['id'];   break;
                case 
    $text $z['text']; break;
                case 
    $next $z['id'];   break;
            }
            
    $i++;
        }

        echo 
    'back : '.$back.'<br />';
        echo 
    'text : '.$text.'<br />';
        echo 
    'next : '.$next.'<br />';

    ?>

    Einen Kommentar schreiben:


  • Timelesk
    antwortet
    also:

    Limit x,3

    3 = max. anzeige der einträge
    x = ab wo

    oder versteh ich was da falsch?

    und dann mit for durchlaufen lassen (3x for)
    haste zufällig nen kleinen beispielcode?

    (Bei der suche, 17 seiten, hab ich bis jetzt noch nix g'scheites)

    Einen Kommentar schreiben:


  • Abraxax
    antwortet
    schau mal. du willst einen eintrag anzeigen. und einen back/next button haben.

    Code:
         back | page | next
    id:    3   |  6  |  8
    mit dem LIMIT x,3 bekommst du von mysql nun die 3 ids. 3,6,8

    die id 3 speicherst du zwischen für den back-button ...
    die id 6 gibst du aus und ...
    die id 8 legst du auf den next button.

    jetzt besser verstanden?

    Einen Kommentar schreiben:


  • Timelesk
    antwortet
    hmm

    blick ich jetzt zwar net so ganz, aber ich schau mal in der Suche nach auto_increment

    Einen Kommentar schreiben:


  • Abraxax
    antwortet
    das bekommt man auch anders hin. siehe mein gb.... ;-) (siehe sig)

    und dann lösche mal ein paar einträge raus. und es geht immer noch mit back/next .....

    du musst dir eben LIMIT x,3 machen. von ersten und dritten wert merkst du dir die id für back und next und den zweiten eintrag gibst du aus. soviel dazu...

    Einen Kommentar schreiben:


  • Timelesk
    antwortet
    Hi,

    das eigentliche Problem (warum des so sein soll) ist, dass man die datensätze eins vorher und eins nachher bekommen soll...

    also link zum nächsten eintrag und link zum vorherigen...

    Einen Kommentar schreiben:


  • graf
    antwortet
    in der detail.php
    hast du im stmt "... ORDER BY id "

    in der suche.php steht's noch nicht

    Einen Kommentar schreiben:


  • Abraxax
    antwortet
    1.
    quasi sql. -> *VERSCHIEB*

    2.
    ist es nicht sinnvoll die ids erst einmal umzuschreiben. verwende schon die id aus der tabelle um die daten gezieht anzusprechen. wenn es dir nur um die ausgabe geht, mache innerhalb der while-ausgabe $i++ und gib $i aus. vor der while natürlich $i=0 nicht vergessen.

    3.
    suche mal im forum nach auto_increment und co. dort findest du schon ähnliche fragen. und allen habe wir eigentlich gesagt, dass es so 'mist' (nicht abwertend, sonder hilfreich, gemeint) ist, wie der gedanke ist...

    Einen Kommentar schreiben:


  • Timelesk
    hat ein Thema erstellt ID's in Reihenfolge.

    ID's in Reihenfolge

    Hallo,

    ich weiß wieder nicht, wie ich das bewältigen soll... deswegen Frage an euch:

    Ich habe 3 MySQL-Einträge. den ersten mit ID1, dann ID3 und ID34
    Das Problem ist, dass sie in zusammenhängender Reihenfolge angegeben werden sollen.
    Also wenn ich SUCHE und das ergebnis sehe, soll der link nicht "detail.php?id=1" und "detail.php?id=3" und "detail.php?id=34" lauten, sondern:
    "detail.php?id=1", "detail.php?id=2", "detail.php?id=3" und so weiter (je mehr einträge)

    Suche.php
    PHP-Code:
     if ($search==1
     {
        eval (
    "\$search1[nosearchword] = \"".gettemplate("search_nosearchword")."\";");
        eval (
    "\$search1[noresult] = \"".gettemplate("search_noresult")."\";");
        eval (
    "\$search1[kategorie] = \"".gettemplate("alpha_kategorie")."\";");
          
    $sqlab "select * from adressen where $radio1 LIKE '%$suche%'";
        if(
    $suche=="") { echo $search1[nosearchword]; }
         else 
        {
        
    $res mysql_query($sqlab$db) or die(mysql_error());
        
    $anz_ds mysql_num_rows($res);
        if(
    $anz_ds == 0){echo $search1[noresult];}else{
           eval (
    "\$search1[resulttext] = \"".gettemplate("search_resulttext")."\";");
           echo 
    $search1[resulttext]; echo $search1[kategorie];
           while(
    $adresse mysql_fetch_object ($res)) 
              {
               
    $rubrik[name]="<a href=detail.php?id=$adresse->id>&nbsp;$adresse->name</a>";
               
    $rubrik[plz]="$adresse->plz";
               
    $rubrik[ort]="$adresse->ort";
               eval (
    "\$search_link_anzeige = \"".gettemplate("search_link_anzeige")."\";");
               echo 
    $search_link_anzeige;
              }
      } 

    Wobei des in der detail.php schon funktioniert (ich finds aber net, warum des da funzt )

    detail.php
    PHP-Code:
    <?php
     
    include("config.php");

     eval (
    "\$header = \"".gettemplate("header")."\";");
     echo 
    $header;
     
    $rubrik = array();
     
      
    //
      //Anzahl der Eintr&auml;ge bestimmen
      //
      
      
    $maximum="0";
      
    $sql="SELECT * FROM adressen ORDER BY id";  
      
    $res=mysql_query($sql$db);
      while(
    $adresse mysql_fetch_object($res))
      {
        
    $maximum++;
      }
      
      
    $aktuelle1 $id-1;
      
    $aktuelle2 $id+1;
      
      
    $sql="SELECT * FROM adressen ORDER BY nachname LIMIT $aktuelle1,1";  
      if (
    $id==$maximum+1) die("<tr><td>Das war der letzte Eintrag</td></tr>"); 
      if (
    $id==0) die("<tr><td>Das war der erste Eintrag</td></tr>");

      
    $res=mysql_query($sql$db);
      while(
    $adresse mysql_fetch_object($res))
      {
       
    $rubrik[name] = $adresse->name;
       
    $rubrik[nachname] = $adresse->nachname;
       
    $rubrik[adresse] = $adresse->adresse;
       
    $rubrik[telefon] = $adresse->telefon;
       
    $rubrik[email] = $adresse->email;
       
    $rubrik[homepage] = $adresse->homepage;
       
    $rubrik[beruf] = $adresse->beruf;
       
    $rubrik[speziell] = $adresse->speziell;
       
    $rubrik[rubrik] = $adresse->rubrik;
       eval (
    "\$adressen = \"".gettemplate("adresse")."\";");
       echo 
    $adressen;
      }
     eval (
    "\$footer = \"".gettemplate("footer")."\";");
     echo 
    $footer;   
    ?>
    Wenns net zuviel arbeit macht, könnt ihr mir dann vieleicht noch erklären, warum des in der detail.php schon funzt?

    BIG THX
Lädt...
X