php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 15.05.2008, 14:14  
Benutzer
 
Benutzerbild von Teela
 
Registriert seit: 23.03.2008
Beiträge: 30
PHP-Kenntnisse:
Anfänger
Teela befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] DB-Einträge nach Anfangsbuchstabe auslesen - Problem bei Zahlen/Sonderzeic

Hallo zusammen!

Ich möchte auf meiner Seite eine große Liste verschiedener Serien einbauen,
wobei ich die Serien alphabetisch anordnen will.

Soweit bin ich schonmal:
Anime4ever.info | Anime-Index

Allerdings habe ich bisher nur die Buchstaben A-Z untergebracht,
es gibt aber auch Serien, die mit einem Punkt, einer Zahl oder sonstwas anfangen.
Nun suche ich eine Möglichkeit, diese auch irgendwie anzeigen zu lassen.

Ich möchte all diese Serien vor [A] mit dem Link [#] (oder so ähnlich) anzeigen lassen.

Hier der Code der Paginierung:

PHP-Code:
<?php

$letters 
= array(=> "a"=> "b"=> "c"=> "d"=> "e"=> "f"=> "g"=> "h"=> "i"=> "j"10 => "k"11 => "l"12 => "m"13 => "n"14 => "o"15 => "p"16 => "q"17 => "r"18 => "s"19 => "t"20 => "u"21 => "v"22 => "w"23 => "x"24 => "y"25 => "z");
$lettere = array(=> 0=> 0=> 0=> 0=> 0=> 0=> 0=> 0=> 0=> 010 => 011 => 012 => 013 => 014 => 015 => 016 => 017 => 018 => 019 => 020 => 021 => 022 => 023 => 024 => 025 => 0);

$sql "SELECT " $select " FROM " $tabelle " WHERE " $required "!='' ORDER BY " $select;
$sql sql_query($sql"anime");

$count mysql_num_rows($sql);
while ( 
$row mysql_fetch_object($sql) )
{
    foreach(
$letters as $lettern => $letter)
    {
        if ( 
substr(strtolower($row->$select), 01) == $letter)
        {
            
$lettere[$lettern] = "1";
            break;
        }
    }
}
?>
<p class="c">
<?php
foreach ($lettere as $lettern => $lettert)
{
    if ( 
$lettert == "1" )
    {
        echo 
'[<a href="' $base_url '&amp;&amp;letter=' $letters[$lettern] . '">' strtoupper($letters[$lettern]) . '</a>] ';
    }
    else
    {
        echo 
"[" strtoupper($letters[$lettern]) . "] ";
    }
}
?>
</p>
<?php

if ( $_GET['letter'] == "" 
{
    
$letter "a";
}
else
{
    
$letter substr(strtolower($_GET['letter']), 01);
}

?>
Dabei wird überprüft, ob es überhaupt Einträge mit dem entsprechenden Anfangsbuchstaben gibt,
wenn nicht, wird der Eintrag erst gar nicht verlinkt.

Nun wäre das erste Problem, dass man einen "Buchstaben" hinzufügen muss,
der alles beinhaltet außer A-Z. Kann man das so formulieren? Oder muss man
alles aufzählen, was er beinhalten kann? (Wäre ziemlich umständlich...)

Dann noch die eigentliche Abfrage:

PHP-Code:
$abfrage "SELECT * FROM " $tabelle " WHERE " $select " LIKE '" addslashes($letter) . "%' AND " $required "!='' ORDER BY " $select ;
    
$sql sql_query($abfrage"anime");
$count mysql_num_rows(mysql_query($abfrage));
    
if ( 
$count != "0" )
{
...

Die muss ja dann auch anders lauten, da es bei dem neuen Link ja mehrere Möglichkeiten gibt.
Kann man die so formulieren, dass für $letter z.B. ein Array mit allen Möglichkeiten durchgegangen wird?

Ich hoffe echt, mir kann damit jemand weiterhelfen...

Geändert von Teela (15.05.2008 um 14:16 Uhr).
Teela ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 17.05.2008, 01:13  
Benutzer
 
Registriert seit: 07.11.2007
Beiträge: 45
phpler befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Teela Beitrag anzeigen
[php]
<?php

$letters = array(0 => "a", 1 => "b", .......
$lettere = array(0 => 0, 1 => 0, ......
Geht denn nicht, einfach die beiden Arrays zu erweitern:
zum Beispiel für Umlaute:
für letters: 26 => "ä", 27=>"ö",28=>"ü",.............
und so weiter für alle Einträge, die du benötigst.
$lettere muss dann einfach ebenfalls nur ergänzt werden mit den Arrayfeldnamen aus $letters und alle Werte auf 0.
phpler ist offline  
Alt 17.05.2008, 06:31  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.268
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

PHP/MySQL: Datensätze gruppiert nach Anfangsbuchstabe - phpfriend.de
Chriz ist gerade online  
Alt 19.05.2008, 11:00  
Benutzer
 
Benutzerbild von Teela
 
Registriert seit: 23.03.2008
Beiträge: 30
PHP-Kenntnisse:
Anfänger
Teela befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von phpler Beitrag anzeigen
Geht denn nicht, einfach die beiden Arrays zu erweitern:
zum Beispiel für Umlaute:
für letters: 26 => "ä", 27=>"ö",28=>"ü",.............
und so weiter für alle Einträge, die du benötigst.
$lettere muss dann einfach ebenfalls nur ergänzt werden mit den Arrayfeldnamen aus $letters und alle Werte auf 0.
Das kann ich zwar machen, allerdings müsste ich dann für jedes weitere Zeichen einen neuen Listenpunkt erstellen. Ich möchte aber, dass alle Zeichen außer A-Z unter einem einzigen Punkt zusammengefasst werden.

Ist zwar ein tolles Script, leider funktioniert es so, dass es alles auf einer Seite anzeigt. Es läuft durch alle Buchstaben und nimmt für den letzten einfach das, was übrig ist. Bei meinem Script sollen auf einer Seite aber immer nur die Einträge von einem Buchstaben angezeigt werden.

Daher brauche ich eine Abfrage in der Form:

Wenn $letter == "." dann soll er alle aus der Tabelle auslesen, wo der erste Buchstabe entweder "." oder "1" oder "2" etc ist.

Ich hatte das bisher immer mit dem Befehl LIKE '" . $letter . "%' gelöst,
wie kann ich bei diesem Befehl mehrere Möglichkeiten angeben,
von denen eine zutreffen muss (praktisch ein "oder" reinbringen)?
Teela ist offline  
Alt 19.05.2008, 11:11  
Erfahrener Benutzer
 
Registriert seit: 28.03.2008
Beiträge: 1.847
HPR1974 wird schon bald berühmt werden
Standard

benutz ein regulären ausdruck...
HPR1974 ist offline  
Alt 19.05.2008, 14:31  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Teela Beitrag anzeigen
Bei meinem Script sollen auf einer Seite aber immer nur die Einträge von einem Buchstaben angezeigt werden
Also mindestens bei dem von dir gezeigten Script ist das ja auch nicht der Fall. Du gibst auch alle Buchstaben (aber nicht die Titel) auf einer Seite aus. Dazu kannst du aber sehr wohl die etwas vereinfachte Funktion von Zergling benutzen:
PHP-Code:
<?php
$sql 
"
    SELECT 
        select 
    FROM 
        tabelle 
    WHERE 
        required != '' 
    ORDER BY 
        select"
;
$sql sql_query($sql) or exit(mysql_error());
foreach (
array_merge(array('#'), range('A''Z')) as $char){
    
$letters[$char] = 0;
}

while ( 
$row mysql_fetch_object($sql) ){
    
$initial getInitial($row->select);
    
$letters[$initial] ++;
}

foreach (
$letters as $letter){
    echo 
$letter == "[$letter]" "[<a href='$base_url&amp;letter='$letter'>$letter</a>]";
}


function 
getInitial($string){
    
$initial strtoupper(substr($string01));
    if (
preg_match('/^[A-Z]$/i'$initial) {
        return 
$initial;
    }
    else{
         
// Anfangsbuchstabe ein anderes Zeichen? Dann Raute als Default
        
return '#';
    }
}
?>
__________________
Gruss
L
lazydog ist offline  
Alt 19.05.2008, 19:29  
Benutzer
 
Benutzerbild von Teela
 
Registriert seit: 23.03.2008
Beiträge: 30
PHP-Kenntnisse:
Anfänger
Teela befindet sich auf einem aufstrebenden Ast
Standard

Die Links der Buchstaben oben waren ja das geringste Problem,
der eigentliche Knackpunkt war ja, dass er auf der #-Seite
alles außer A-Z ausliest.

Ist aber auch egal, wie man sieht, habe ich es irgendwie doch auf die Reihe bekommen ^^

Trotzdem danke für eure Hilfe ^^
Teela ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] wert auslesen aus mysql krackmoe PHP Tipps 2008 4 11.07.2008 17:58
[Erledigt] Sicherheitsfrage mit Sessions - Problem mit Intellitamper Leibi PHP-Fortgeschrittene 26 03.07.2008 12:38
[Erledigt] Statistik Script Referrer Problem 7Style PHP Tipps 2008 28 01.07.2008 15:14
[Erledigt] 'upload-Datei' Zeile für Zeile auslesen Felix PHP Tipps 2008 18 29.06.2008 02:55
[Erledigt] zufälliges Auslesen aus Datenbank aber nur einmal am Tag Nana_chan PHP Tipps 2008 3 27.06.2008 15:23
[Erledigt] Problem mit Grafik pfump PHP Tipps 2008 7 23.06.2008 11:24
[Erledigt] Problem mit geschickter Auswertung von Datenbankeinträgen Dominik PHP Tipps 2008 13 21.06.2008 22:33
[Erledigt] Datenbank und Ordner auslesen funzt net borsty PHP Tipps 2008 6 03.06.2008 13:56
Problem beim Array auslesen PHP Tipps 2005 4 01.02.2005 19:28
Problem mit dem Auslesen von Stringteilen ! PHP Tipps 2005 2 20.01.2005 20:38
Problem: css mit php auslesen und stylenamen ausgeben PHP-Fortgeschrittene 5 09.01.2005 11:12
Datei auslesen ergibt ein Problem Fraylman PHP Tipps 2004-2 4 22.12.2004 10:12
[Erledigt] Problem mit Verzeichnis auslesen PHP-Fortgeschrittene 7 20.10.2004 21:50
Problem beim Forum (Benutzer auslesen) PHP Tipps 2004 1 24.06.2004 10:05
quelltext auslesen problem??? PHP Tipps 2004 17 14.06.2004 19:46

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
http://www.php.de/php-tipps-2008/1230-erledigt-db-eintraege-nach-anfangsbuchstabe-auslesen-problem-bei-zahlen-sonderzeic.html, sql befehle nur anfangsbuchstaben, sql befehl anfangsbuchstabe, sql anfangsbuchstaben auslesen, nur datenbank einträge mit dem anfangsbuchstaben a auslesen, php array anfangsbuchstaben auslesen, mysql anfangsbuchstaben suchen, sql suche nach mehreren anfangsbuchstaben where, mysql befehl nach anfangsbuchstabe suchen, php anfangsbuchstabe auslesen, sql befehle anfangsbuchstabe, sql befehl alle datensätze auslesen die mit buchstaben beginnen, sql abfrage anfangsbuchstabe, sql mehreren anfangsbuchstaben, sql befehl nach anfangsbuchstabe suchen, sql nach ersten buchstaben gruppieren, tabelle anfangsbuchstabe sql php, strtoupper anfangsbuchgstabe, anfangsbuchstabe und zahlen php, fehler buchstabe y mysql

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:59 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum