A bis Z in Blätterfunktion

Detlev

Mitglied
Hi Leutz,

habe folgendes Prob, habe eine Blätter funktion, die auch einwandfrei geht.

Das einzige was ich irgendwie nicht hinbekomme ist, eine Alphabetische auflistung rein zu bekommen.

Zum beisspiel so, klicke ich auf A soll er mir alles ausgeben was unter A in der DB steht,
auf B und C usw.

Hat vielleicht jemand ne Idee wie man das an diesem Script verwirklichen kann, ohne das es ,so wie bei mir immer, konflikte gibt?
PHP:
<?php
include ('inc/config_inc.php');

// Verbindung herstellen
	mysql_connect($sqlhost,$sqluser,$sqlpass) OR DIE( "Couldn't connect to MySQL server!");
    mysql_select_db($database);

$query = "SELECT * FROM $downtable ORDER BY `id` DESC";
$re = mysql_query($query);
$anz = mysql_num_rows($re);
}


$c=0;
while($anz >0){
   $c++;
   $anz = $anz - 10;
}
?>

<?
# Prüft ob die Variable $page schon vorhanden ist.
# ($page wird später durch die links angegeben)
# Sofern diese Variable noch nicht vorhanden sein sollte wird sie erstellt und auf 1 gesetzt.
if(!isset($page))
   $page = 1;

$pag = $page-1;

# Falls die momentan betrachtete Seite grösser als 1 ist,
# so werden die Links für "zurück" und "zur ersten Seite springen" erstellt.
if($page > 1 ){
   echo "<a href=\"Blattresultd.php?page=1\">&laquo;</a>&nbsp;";
   echo "<a href=\"Blattresultd.php?page=".$pag."\">‹</a>&nbsp;";
}

# Hier werden die Seiten als Direktlink ausgegeben.
for($b=1;$b<=$c;$b++){
   $site = $b;

   # Diese If-Abfrage ist nötig, um die Momentan betrachtete Seite nicht als Link anzugeben.
   if(isset($page) && $page == $site){
      # die Momentane Seite ohne Link:
      echo $b."&nbsp;";
   }
   else
   {
      # Der auszugebende Link:
      echo "<a href=\"Blattresultd.php?page=$site\">$b</a>&nbsp;";
   }
}

$pag = $page+1;
if($page < $c ){
   echo "<a href=\"Blattresultd.php?page=".$pag."\">›</a>&nbsp;";
   echo "<a href=\"Blattresultd.php?page=$c\">&raquo;</a>&nbsp;";
}
?>

<br>
<br>

<?
$array = array();
while($l=mysql_fetch_array($re)){
array_push($array,$l);
}
?>

<?
$anzahl = mysql_num_rows($re);

for($x=($anzahl-10*$page+10)-1; $x>($anzahl-10*$page)-1; $x--){
   # Nur ausgeben wenn $x grösser als 0 ist:
   if($x >= 0){
?>

<hr noshade>
<p>Name: <? echo $array[$x]['id']; ?><br>
  Titel: <? echo $array[$x]['title']; ?><br>
  <?
  }
}
mysql_close();
?>
schon mal Danke
cu
 
Detlev hat gesagt.:
$query = "SELECT * FROM $downtable ORDER BY `id` DESC";
cu

Wie ich vermute soll $downtable einen Wert beinhalten.
Nun ist in deiner $query Variable nur ein String und $downtable nicht als Variable bekannt.

Hier mal verbessert dann dürfte der SELECT funktionieren:

PHP:
$query = "SELECT * FROM ".$downtable ."ORDER BY `id` DESC";
 
hi,

danke für deine schnelle Antwort, aber mit diesem script habe ich keine Probleme.

Das einzige Prob was ich habe ist das ich oberhalb der SQL ausgabe ein abc machen will,

wenn ich auf a klicke soll mir die ausgabe nur daten mit dem anfangsbuchstaben a anzeigen und immer so weiter.

Habe das mit einer if Schleife versucht, bin aber gescheitert.

die sah so aus
Code:
<?php echo "|"; 
for($j="A"; $j!="AA"; $j++){ 
echo "<A HREF=\"index.php?section=tracks&page=&genre=$genre&typ=$typ&alpha=$j\">$j</a> | "; 
} ?>

habe aber bei diesem versuch nichts mehr angezeigt bekommen.

cu
 
Zuletzt bearbeitet:
Detlev hat gesagt.:
Code:
<?php echo "|"; 
for($j="A"; $j!="AA"; $j++  ){ 
echo "<A HREF=\"index.php?section=tracks&page=&genre=$genre&typ=$typ&alpha=$j\">$j</a> | "; 
} ?>

Der Fehler hier liegt das du versuchst einen String hochzu zählen mit dem j++.

Schau mal im PHP manual nach Sting Funktionen nach die dann deinen String zerteilen und prüfen ob das was aus deiner DB kommt mit einem "a" anfängt. Dieses würde ich dann nur anzeigen lassen.

Peace SMO
 
Zuletzt bearbeitet:
Rufe die Seite z.B. so auf: index.php?alpha=a

Das hier ist der denke ich passende Query dazu:
PHP:
$query = mysql_query("SELECT * FROM tabelle WHERE name LIKE '".$_GET['alpha']."%' ORDER BY id DESC");
 
hi,

versteh das nicht, das es bei euch geht, bei mir sieht das so aus,

|A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in Blattresulte.php on line 19



Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in Blattresulte.php on line 74

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in Blattresulte.php on line 80

--------------------------------------------------------------------------------

Name:
Notice: Undefined offset: 9 in Blattresulte.php on line 88

Titel:
Notice: Undefined offset: 9 in Blattresulte.php on line 89

Was kann das sein?

cu
 
Probier's mal so :

PHP:
if(!isset($_GET['sort'])) $sort = 'A';
else $sort = $_GET['sort'];

$sql = 'SELECT * FROM '.$downtable.' WHERE nachname REGEXP "^'.$sort.'"';

Und deine Liste musst du nicht von Hand schreiben sondern kannst
sie mittels Schleife erstellen. Mit [phpf]chr[/phpf] und den Asciizahlen 65 - 90.
 
Zurück