Login  Regeln Aktuelles Datum und Uhrzeit: 22.11.2008, 17:43  
Startseite
Registrieren
Profil
Suchen
Mitgliederliste
Verzeichnis
Impressum



Partner
kostenlose Homepage
Fussball
Kostenloses Forum
SMS kostenlos
Webhosting
Webmasterportal
Kostenlos
Kredit ohne Schufa
Esoterik-Forum
Selbsthilfeforum
Artikel Backlink
Datenrettung
Problem mit mUsikdatenbank

 
Neues Thema eröffnen   Neue Antwort erstellen    Webmaster Forum -> Serverseitige Websprachen
Vorheriges Thema anzeigen Nächstes Thema anzeigen 
Autor Nachricht
Kuchen123
Stammuser [User]
Stammuser



Anmeldung: 29.12.06
Beiträge: 28

BeitragVerfasst am: 22.01.2008, 14:26    Titel: Problem mit mUsikdatenbank Antworten mit Zitat

Hey,

ich bin dabei ein Musikarchiv zu basteln und hänge jetzt bei folgendem Problem:

ich würde es gerne so machen, dass nicht alle lieder auf einer seite angezeigt werden sondenr immer nur ca. 200, udn wenn man unten dann auf weiter klickt, kommt man zur nächsten seite, ich hab aber keien idee wie ich das einbauen könnte.

functions_inc.php
Code:
<?php
   function showlist() {
      $query = "
         SELECT *
         FROM music_archiv
         ORDER BY Artist
      ";
      $sql = mysql_query($query) OR die(mysql_error());
      echo '<table class=tableBasic><thead><tr><th class="center">Interpret</th><th class="center">Titel</th><th class="center">Album</th><th class="center">Ändern</th><th class="center">Löschen</th></thead></tr>';

      while($row = mysql_fetch_assoc($sql)) {
         echo '<tbody><tr><td class="tdContent center">'.$row['Artist'].'</td>
            <td class="tdContent center">'.$row['Title'].'</td>
            <td class="tdContent center">'.$row['Album'].'</td>
            <td class="tdContent center"><a href="?action=edit&ID='.$row['ID'].'"><img src="inc/note_edit.png"></a></td>
            <td class="tdContent center"><a href="?action=delete&ID='.$row['ID'].'"><img src="inc/icon_small_cross.png"></td>'.
         '</tr></tbody>';
      }
      return false;
   }
   
   function makeentry($cdinfo) {
      $query = '
         INSERT INTO music_archiv (
               Artist,
               Title,
               Album
            ) VALUES (
            \''.$cdinfo['artist'].'\',
            \''.$cdinfo['title'].'\',
            \''.$cdinfo['album'].'\'
         );
      ';
      if(mysql_query($query)) {
         echo '<b>'.$cdinfo['artist'].' - '.$cdinfo['title'].' - '.$cdinfo['album'].'</b> erfolgreich eingetragen.<br /><br /><a href="?action=list">zurück zur Datenbank</a>';
      } else {
         die(mysql_error());
      return false;
      }
   }
   
   function deleteentry($id) {
      $query = '
         DELETE FROM music_archiv
         WHERE ID =  \''.$id.'\'
      ';
      if(mysql_query($query)) {
            echo 'Eintrag wurde erfolgreich aus der Datenbank gelöscht!<br /><br /><a href="?action=list">zurück zur Datenbank</a>';
      } else
         die(mysql_error());
      return false;
   }
   
   function saveentry($cdinfo, $id) {
      $query = '
         UPDATE music_archiv
         SET
            Artist = \''.$cdinfo['artist'].'\',
            Title = \''.$cdinfo['title'].'\',
            Album = \''.$cdinfo['album'].'\'      
         WHERE
            ID = \''.$id.'\'
      ';
      if(mysql_query($query)) {
         echo '<b>'.$cdinfo['artist'].' - '.$cdinfo['title'].' - '.$cdinfo['album'].'</b> wurde erfolgreich geändert.<br /><br /><a href="?action=list">zurück zur Datenbank</a>';
      } else
         die(mysql_error());
      return false;
   }
   
   function editentry($id) {
      $query = '
         SELECT *
         FROM music_archiv
         WHERE ID = \''.$id.'\'
         ORDER BY Artist
      ';
      $sql = mysql_query($query) OR die(mysql_error());
      $row = mysql_fetch_assoc($sql);
      
      include "inc/edit.form.inc.php";
   }
?>


index.php
Code:
<?php

echo "
<html><head>";

   include ("inc/header_global_inc.php");
   include 'inc/head.inc.php';
   
echo "
<title>blubb</title>

</head><body>

    <div class=divMatrix>";


   include ("inc/navigation_global_inc.php");      
      
      if($umsSystem->level > 0 ) { 

      include ("inc/navigation_user_inc.php");
      
      } else {
            
      echo "";   
         
      }
   
   
      if($umsSystem->level == 0 ) { 
   
      echo "</div>";
   
      }   
      
   $action = strtolower(trim(strip_tags($_GET['action'])));
   if(empty($action))
      $action = 'list';

   switch($action)
   {
      case 'entry' :
      {
         include 'inc/form.inc.php';

         if(isset($_GET['do']))
         {
            if(!empty($_POST['artist']) AND !empty($_POST['title']))
            {
               $cdinfo['artist'] = trim(htmlspecialchars($_POST['artist']));
               $cdinfo['title']  = trim(htmlspecialchars($_POST['title']));
               $cdinfo['album']  = trim(htmlspecialchars($_POST['album']));

               makeentry($cdinfo);
            }
            else
               echo 'Bitte fehlende Felder ausfüllen.';
         }
         break;
      }
      
      case 'edit':
         if((isset($_GET['ID'])) OR (isset($_POST['ID']))) {
            editentry($_GET['ID']);
         
            if(isset($_GET['do'])) {               
               $cdinfo['artist'] = trim(htmlspecialchars($_POST['artist']));
               $cdinfo['title']  = trim(htmlspecialchars($_POST['title']));
               $cdinfo['album']  = trim(htmlspecialchars($_POST['album']));
                  
               saveentry($cdinfo, $_POST['ID']);
            }
         } else {
            echo 'Eintrag konnte nicht bearbeitet werden! Bitte versuchen Sie es erneut!<br />';
            showlist();
         }
         
      break;
      
      case 'delete':
         if(isset($_GET['ID']))
            deleteentry($_GET['ID']);
         else {
            echo 'Eintrag konnte nicht gelöscht werden! Bitte versuchen Sie es erneut!<br />';
            showlist();
         }
      break;
      
      case 'search' :
      {
         include 'inc/search.form.inc.php';

         if(isset($_GET['do']))
         {
            $artist = trim(htmlspecialchars($_POST['artist']));
            $title  = trim(htmlspecialchars($_POST['title']));
            $album  = trim(htmlspecialchars($_POST['album']));
            if(!empty($artist) || !empty($title) || !empty($album))
            {
               $query = "SELECT *
                           FROM music_archiv
                          WHERE (Artist LIKE '%$artist%')
                            AND (Title LIKE  '%$title%')
                            AND (Album LIKE  '%$album%')";

               $sql = mysql_query($query) OR die(mysql_error());
      echo '<table class=tableBasic><thead><tr><th class="center">Interpret</th><th class="center">Titel</th><th class="center">Album</th><th class="center">Ändern</th><th class="center">Löschen</th></thead></tr>';

      while($row = mysql_fetch_assoc($sql)) {
         echo '<tbody><tr><td class="tdContent center">'.$row['Artist'].'</td>
            <td class="tdContent center">'.$row['Title'].'</td>
            <td class="tdContent center">'.$row['Album'].'</td>
            <td class="tdContent center"><a href="?action=edit&ID='.$row['ID'].'"><img src="inc/note_edit.png"></a></td>
            <td class="tdContent center"><a href="?action=delete&ID='.$row['ID'].'"><img src="inc/icon_small_cross.png"></td>'.
         '</tr></tbody>';
      }
            }
            else
               echo 'Ihre Suche brachte keine Ergebnisse.';
         }
         break;
      }
      default:
         showlist();
   }

   echo "
</div>";
      
   include 'inc/footer.inc.php';

echo "
  </body></html>";


Danke schonmal für eure Hilfe

MfG
Chris


Nach oben
Private Nachricht senden
benjam4
Bekannter [Mod]
Bekannter



Anmeldung: 17.05.06
Beiträge: 1311
Wohnort: Ostfildern ...

BeitragVerfasst am: 22.01.2008, 14:39    Titel: Antworten mit Zitat

Ich hab mir deinen Code jetzt nicht durchgelesen, aber du solltest dir mal dem SQL-Befehl "LIMIT" anschauen, damit machst du das
_________________
Rechtschreibfehler sind beabsichtigt, sie dienen der Verschleiherung meiner tatsächlichen Genialität Smilie
____________________________________
Eine Signatur sie alle zu knechten


Nach oben
Private Nachricht senden Website dieses Benutzers besuchen
Kuchen123
Stammuser [User]
Stammuser



Anmeldung: 29.12.06
Beiträge: 28

BeitragVerfasst am: 22.01.2008, 14:57    Titel: Antworten mit Zitat

naja den Befehl kenn ich ja, das problem is wie mach cih das dann das man auf die nächste seite kommt, sonst zeigt der z.b. ja einfach 200 titel an udn dann is ende, obwohl ich vlt 10000 hab..

Nach oben
Private Nachricht senden
benjam4
Bekannter [Mod]
Bekannter



Anmeldung: 17.05.06
Beiträge: 1311
Wohnort: Ostfildern ...

BeitragVerfasst am: 22.01.2008, 15:30    Titel: Antworten mit Zitat

Ok, ich geh jetzt hier nicht auf deinen Code ein, sondern zeige dir nur ein Bsp:

Über den URL wird ?seite=1.......unendlich weitergegeben.
Code:

if (!isset($_GET[seite])) {$seite = 1;}
else { $seite=$_GET[seite];}

$sel="SELECT id FROM songs";
$sel=mysql_query($sel);
$anz=mysql_num_rows($sel);

#Damit hast du die gesamtzahl der Ergebnisse.
$seite=$seite - 1;
$limit1=200*$seite;
$limit2=$limit1 + 200;
$sel="SELECT * FROM songs LIMIT ".$limit1.",".$limit2;
$sel=mysql_query($sel);


So damit bekommst du immer die übergebene Seite raus. Jetzt fehlt noch die Verlinkung:

Code:

print "Seiten: ";
$seiten=ceil($anz / 200);
$i=1;
while ($i<=$seiten) {
print "<a href='me.php?seite=".$i."'>".$i."</a>";
$i++;
}


Kann sein, das ein paar Syntax oder Rechtschreibfehler drin sind. Ich habe das Ding nicht getestet, aber an sich sollte das so Funktionieren.

_________________
Rechtschreibfehler sind beabsichtigt, sie dienen der Verschleiherung meiner tatsächlichen Genialität Smilie
____________________________________
Eine Signatur sie alle zu knechten


Nach oben
Private Nachricht senden Website dieses Benutzers besuchen
chris1988
Bekannter [User]
Bekannter



Anmeldung: 12.12.05
Beiträge: 1623

BeitragVerfasst am: 22.01.2008, 15:43    Titel: Antworten mit Zitat

Ich glaub' die Argumente für Limit sind da jetzt falsch, daran hatte ich mir bei nem Skript auch mal ordentlich einen abgebrochen...

Die erste Zahl beschreibt die Position; allerdings ist wäre die erste Position = 0, also hier dann

$limit1 = (200 * $seite) - 1;

wobei wenn $seite == 1

$limit1 = 0


darauf muss soweit ich weiß die Anzahl der gewünschten Ausgaben folgen, also

$limit2 = 200


Bin mir aber nicht 100%ig sicher.


Schönen Gruß,

chris

_________________
Mancher ertrinkt lieber,
als daß er um Hilfe ruft.


(Wilhelm Busch)


Nach oben
Private Nachricht senden
benjam4
Bekannter [Mod]
Bekannter



Anmeldung: 17.05.06
Beiträge: 1311
Wohnort: Ostfildern ...

BeitragVerfasst am: 22.01.2008, 15:48    Titel: Antworten mit Zitat

Bei der ersten Seite ist $seite=0 also wird auch limit1 Null, somit fängts ganz vorne an.
Bei dir wäre ja bei seite 1 limit so: LIMIT 199,200

Und ich meine insgesamt, das die start und die endposition angegeben werden muss.
Wenn es anders wäre, dann muss limit2 halt immer 200 sein, wie du es geschrieben hast.

_________________
Rechtschreibfehler sind beabsichtigt, sie dienen der Verschleiherung meiner tatsächlichen Genialität Smilie
____________________________________
Eine Signatur sie alle zu knechten


Nach oben
Private Nachricht senden Website dieses Benutzers besuchen
chris1988
Bekannter [User]
Bekannter



Anmeldung: 12.12.05
Beiträge: 1623

BeitragVerfasst am: 22.01.2008, 16:28    Titel: Antworten mit Zitat

benjam4 hat folgendes geschrieben:
Bei der ersten Seite ist $seite=0 also wird auch limit1 Null, somit fängts ganz vorne an.
Bei dir wäre ja bei seite 1 limit so: LIMIT 199,200

Wenn du beim letzten nicht die erste Seite meinst sondern die 2te (Also $seite = 1), dann ja Smilie
Zitat:

Und ich meine insgesamt, das die start und die endposition angegeben werden muss.
Wenn es anders wäre, dann muss limit2 halt immer 200 sein, wie du es geschrieben hast.

Grad nochmal nachgeguckt:

http://php.about.com/od/mysqlcommands/g/Limit_sql.htm

So wie du hab ich's damals intuitiv auch vermutet, und dementsprechend die Ausgabe überhaupt nicht verstanden Winken

_________________
Mancher ertrinkt lieber,
als daß er um Hilfe ruft.


(Wilhelm Busch)


Nach oben
Private Nachricht senden
benjam4
Bekannter [Mod]
Bekannter



Anmeldung: 17.05.06
Beiträge: 1311
Wohnort: Ostfildern ...

BeitragVerfasst am: 22.01.2008, 16:37    Titel: Antworten mit Zitat

ok, also limit2=200
_________________
Rechtschreibfehler sind beabsichtigt, sie dienen der Verschleiherung meiner tatsächlichen Genialität Smilie
____________________________________
Eine Signatur sie alle zu knechten


Nach oben
Private Nachricht senden Website dieses Benutzers besuchen
Kuchen123
Stammuser [User]
Stammuser



Anmeldung: 29.12.06
Beiträge: 28

BeitragVerfasst am: 22.01.2008, 18:59    Titel: Antworten mit Zitat

hm, also ich weiß dass das forum nicht dafür da ist, aber evtl könnte mir das ja jemand in das script einbauen - bin irgendwie irritiert und bekomme es auch nicht hin, also das wäre nur ne bitte, wenn nicht wäre das auch nicht schlimm, wenn es nach dem einbauen nich funktionieren würde knnte man ja immernoch fehler ausmerzen..

habe hier auch nochwas gefunden, weiß nicht ob das weiter hilft:

http://www.inspire-world.de/readartikel.php?aid=11

Danke schonmal für die Bemühungen udn auch die antworten

MfG
Chris


Nach oben
Private Nachricht senden
Kuchen123
Stammuser [User]
Stammuser



Anmeldung: 29.12.06
Beiträge: 28

BeitragVerfasst am: 28.01.2008, 19:55    Titel: Antworten mit Zitat

keiner eine idee? stelle auhc gerne das ganze script zur Verfügung, müsst euch nur per pn melden Winken

Nach oben
Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

Gehe zu:  

Ähnliche Beiträge
Thema Autor Forum Antworten Verfasst am
Keine neuen Beiträge Toplist bewertung / Problem: Banner n... MasterM112 HTML & CSS 0 20.11.2008, 18:12 Letzten Beitrag anzeigen
Keine neuen Beiträge Internet Serv Problem Chris Fabian Einsteigerforum 4 06.11.2008, 21:30 Letzten Beitrag anzeigen
Keine neuen Beiträge Onclick Javascript Problem im IE Timbo23 HTML & CSS 3 26.10.2008, 23:33 Letzten Beitrag anzeigen
Keine neuen Beiträge Problem mit Anpassung RaVoo Einsteigerforum 5 13.10.2008, 20:46 Letzten Beitrag anzeigen
Keine neuen Beiträge Problem mit Abtand im IE capillarvane HTML & CSS 2 02.10.2008, 11:51 Letzten Beitrag anzeigen
Threadübersicht