php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 03.09.2011, 02:15  
Technikflo
Gast
 
Beiträge: n/a
Standard Problem mit Sortierung

Hi,
ich habe das Problem, dass ich es nicht hinbekomme, die Daten den Spalten entsprechend zu sortieren (Autor, Verlag, ISBN).
Es handelt sich hierbei um eine Bibliotheksdatenbank.
Vielen Dank für eure Tips.

PHP-Code:
<?php
require("connect.php");
$by="Titel";
$kind="ASC";
$found="Bitte Suchbegriff eintragen.";
$i=1;
$j=1;


echo 
"<div id='o' style='position:absolute; bottom:80%; top:5%; width:100%; left:2%;'><form action='anzeigen.php?s=query' method='POST'>Suchbegriff:&nbsp;<input type='text' name='query' width='100%'></form></div>";


echo 
"<div id='u' style='position:absolute; bottom:80%; top:20%; width:100%; left:2%;'>";

if(
$_GET['s']=='seite'){echo $found;}
if(
$_GET['s']=='query'){
         
$query=$_POST["query"];
         
$sql=mysql_query("SELECT id FROM books WHERE CONCAT (Titel,Autor,Verlag,ISBN,Kategorie) LIKE '%".$query."%'");
         
$answer=mysql_num_rows($sql);
         echo 
"Die Suche nach&nbsp;'".$query."'&nbsp;ergab&nbsp;".$answer."&nbsp;Treffer.<br><br>";
         if (
$answer>0){
                 echo 
"<table border=1>";
                 echo 
"<tr bgcolor='red'>";
                 echo 
"<td><b>Nr.</b></td>";
                 echo 
"<td><b>Titel</b></td>";
                 echo 
"<td><b>Autor</b></td>";
                 echo 
"<td><b>Verlag</b></td>";
                 echo 
"<td><b>Kategorie</b></td>";
                 echo 
"</tr>";
                 while(
$i<=$answer){
                          
$search mysql_query("SELECT * FROM books WHERE CONCAT (Titel,Autor,Verlag,ISBN,Kategorie) LIKE '%".$query."%' AND id='".$j."'");
                          
$findmysql_fetch_assoc ($search);
                          
$id$find ['id'];
                          
$titel$find ['Titel'];
                          
$autor$find ['Autor'];
                          
$verlag$find ['Verlag'];
                          
$isbn$find ['ISBN'];
                         if (!
$id ==FALSE){
                                 
$abfrage mysql_query("SELECT * FROM books WHERE id='".$id."' ORDER BY '".$by.$kind."'");
                                 
$ergebnis =mysql_fetch_assoc ($abfrage);
                                 
$id=$ergebnis['id'];
                                 echo 
"<tr>";
                                 echo 
"<td>$ergebnis[id]</td>";
                                 echo 
"<td>$ergebnis[Titel]</td>";
                                 echo 
"<td>$ergebnis[Autor]</td>";
                                 echo 
"<td>$ergebnis[Verlag]</td>";
                                 echo 
"<td>$ergebnis[ISBN]</td>";
                                 echo 
"</tr>";
                                 
$j++;
                                 
$i++;
                         }
                         else{
$j++;}
                 }
                 echo 
"</table>";
         }
}
echo 
"</div>";
?>
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 03.09.2011, 03:56  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
dass ich es nicht hinbekomme, die Daten den Spalten entsprechend zu sortieren (Autor, Verlag, ISBN).
Du hast ein Order drin, pass es halt wie gewünscht an.

Aber leider ist der Code wirklich schlecht - Queries in Schleifen, abspolut unnötige doppelte Abfragen, Verlassen auf eine fortlaufende ID (meines Erachtens steckt dort sogar ein Logikfehler)…
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 03.09.2011, 08:04  
Erfahrener Benutzer
 
Registriert seit: 28.06.2009
Beiträge: 108
PHP-Kenntnisse:
Fortgeschritten
eisenhans befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Technikflo Beitrag anzeigen
PHP-Code:
         $sql=mysql_query("SELECT id FROM books WHERE CONCAT (Titel,Autor,Verlag,ISBN,Kategorie) LIKE '%".$query."%'");
?> 
So ganz verstehe ich deinen Code nicht

Du machst eine Suchanfrage (unsortiert), und dann nimmst Du die ID und machst die nächste Suchanfrage(sortiert) und dann machst Du noch eine Query hinterher.

Also meiner Meinung nach kannst Du Dir die 2. und 3. schenken, und wenn Du dann in die erste dein ORDER BY setzt, sollte das hinhauen.

Folgenden Code benutze ich, um eine Tabelle nach Spaltenkopf zu sortieren:
PHP-Code:
            foreach($result->fetch_fields() as $meta){
                
// Diese Feld sortiert ?
                
$sort=($this->sortierung==$this->field[$i])?'%20DESC':'';
                
$html .= '<th><a href="' .$this->base_link.
                  
'&sortierung='.$this->field[$i].$sort.'">'.htmlentities($meta->name). '</a></th>';
                
$i++;
            } 
Bitte nicht 1 zu 1 übernehmen, sondern einfach so anpassen, daß der Tabellenheader einen Link auf das Suchergebnis mit Sortierfeld enthält.

Dazu mußt Du nur die Variable sortierung auswerten, hier wird beim Klick auf die sortierte Spalte das Ergebnis umgedreht.
__________________
Webstammtisch Oldenburg
eisenhans ist offline   Mit Zitat antworten
Antwort


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
Umlaut Problem nokieone PHP Tipps 2009 7 16.10.2009 19:30
[Erledigt] teilausgabe eines arrays nach sortierung bananajoe PHP Tipps 2009 2 11.06.2009 00:22
Problem mit Basedir in PhP cmuch05 Datenbanken 9 08.01.2009 14:17
[Erledigt] Problem: PHP Selbe Datei mehr als 1 Mal soulan PHP Tipps 2008 13 28.11.2008 22:51
Problem Upload mehrere Dateien und schreiben in DB Lapje PHP Tipps 2008 1 22.10.2008 13:12
utf8 Problem (Daten aus DB auslesen) go1denboy PHP Tipps 2008 1 23.09.2008 12:19
Problem mit swfobjects R4v3r JavaScript, Ajax und mehr 8 21.09.2008 14:17
[Erledigt] Galerie Problem... coraplanet PHP Tipps 2008 4 06.06.2008 13:42
Problem mit DB-Ausgabe und Speicherung Lia PHP Tipps 2008 3 18.09.2007 20:59
datensätze defekt oder problem mit dem einlesen? Ministry Datenbanken 4 06.07.2006 18:42
problem!!! PHP Tipps 2006 6 08.02.2006 11:06
[Erledigt] wieder ein Problem bei phpmailer und smtp PHP Tipps 2006 24 07.02.2006 01:07
Abfrage mit Sortierung Problem ! PHP Tipps 2005 2 08.01.2005 14:20
Smarty und PHP-Skript Problem PHP Tipps 2004-2 2 03.12.2004 22:27
Problem mit alter JavaScript-Funktion woods PHP Tipps 2004 1 13.08.2004 13:34

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
ein vorhanenes query sortuieren

Alle Zeitangaben in WEZ +2. Es ist jetzt 14:00 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