php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 20.09.2004, 17:39  
Gast
 
Beiträge: n/a
Standard [Erledigt] sortierung vom user aus

Also mein Problem ist folgendes ich möchte gern das der user selbst entscheiden kann, nach welch kritterien er sortiert! im meinem fall geht es hierbei um Spielerstatistiken beim Fußball! Also ich möchte links zur sortierung der Tabellenspalte!

Hoffe auf eure Hilfe!

Danke!
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 20.09.2004, 17:41  
Gast
 
Beiträge: n/a
Standard

sehr konkrete angaben..

sortiert wird über order by..
am besten du macht .php?order=bla

dann wertest du das bla aus.. und dann machst du damit das mysqlquery...
  Mit Zitat antworten
Alt 20.09.2004, 17:43  
Gast
 
Beiträge: n/a
Standard

tut mir leid hier ein beispiel!

http://kurzhose.ku.funpic.de/base/lm...action=spieler

ungefähr so will ich es dann haben!
  Mit Zitat antworten
Alt 20.09.2004, 17:50  
Gast
 
Beiträge: n/a
Standard

hab meine glaskugel grad nicht zur hand.. und ohne die kann ich keine gedanken lesen..
was willst du genau wissen?
falls du ein script suchst -> gesuche forum..

falls du ne konkrete frage zu mysql hast..
frage stellen mit möglichst viel infos..
  Mit Zitat antworten
Alt 21.09.2004, 14:51  
Gast
 
Beiträge: n/a
Standard

Also noch mal ich möchtet das der betrachter selber entscheiden kann nach welchen ktiterien er sortiert!

PHP-Code:
$sql="SELECT `Vorname`,`Nachname`,`Position`,`Spiele`,`Tore`,`Vorlagen`,`Gelb`,`GelbRot`,`Rot`,`Einwechslungen`,`Auswechslungen` FROM `spieler` ORDER BY `Nachname`"
also muss denke ich mal bei order by 'nachname' eine variable rein!
die dann durch einen link geändert wird und so sich dir Ordnungsweise auch ändert!

Ich bin leider blutiger anfänger und fange mit php gerade erst an denke mal das die lösung simple sein wird für euch!
  Mit Zitat antworten
Alt 21.09.2004, 15:05  
Erfahrener Benutzer
 
Registriert seit: 29.08.2003
Beiträge: 216
wurtzel
Standard

ein tip wenn du eine idee hast dann probier sie doch erst mal aus das spart dir das warten auf eine antwort wenns richtig ist.

ich würde nur die variable zuvor noch prüfen ob sie ein gültiger spaltenname ist.
PHP-Code:
... order by $var 
wurtzel ist offline   Mit Zitat antworten
Alt 21.09.2004, 20:09  
Gast
 
Beiträge: n/a
Standard

ich würds so machen..

http://www.bla.net/site.php?order=bla

PHP-Code:
$sql ".." //dein statement

if(!empty($_GET["order"])){
$sql .= "ORDER BY ".$_GET["order"];

prüfen obs ne spalte ist, würd ich auch.. weiss aber grad nicht, wie die funktion heisst, mit der man die spalten (resp. metadaten) auslesen kann..
  Mit Zitat antworten
Alt 21.09.2004, 20:43  
Gast
 
Beiträge: n/a
Standard

Zitat:
prüfen obs ne spalte ist, würd ich auch.. weiss aber grad nicht, wie die funktion heisst, mit der man die spalten (resp. metadaten) auslesen kann..
Vielleicht hilft es dem einen oder anderen weiter, auch wenn es nicht direkt zur Eingangsfrage gehört.

Enum-Felder werden ausgewertet und Datumsfelder als Auswahl mit gesetztem aktuellen Datum, gesplittet in Tag Monat und Jahr dargestellt.
Darum die drei Funktionen vor dem Hauptteil.

Code:
<?php

include("dbconnect.php");

$tabelle = $_GET['tabelle'];

if ($tabelle == "") exit; # Tabellenname muss als Variable übergeben werden (in diesem Beispiel)

##################################################################
function showEnum($tabelle,$field,$leer) 
##################################################################
{ 
 $items = '';
 $xq = mysql_query("SHOW COLUMNS FROM ".$tabelle." LIKE '".$field."'") or die (mysql_error()); 
 if(mysql_num_rows($xq)>0) 
 { 
  $row=mysql_fetch_row($xq); 
  $ops=explode("','",preg_replace("/(enum|set)\('(.+?)'\)/","\\2",$row[1])); 
 } 

 for ($i=0;$i<count($ops);$i++)
 {
  $items .="<option value=\"".$ops[$i]."\">".ucfirst($ops[$i])."</option>\n"; 
 }
 $text  = "<select name=".$field." style='width:350px;'>";
 if ($leer != 0)
  { $text .= "<option value=''>Auswahl</option>"; }
 $text .= $items."</select>\n\n"; 
 return $text; 
} 
##################################################################

##################################################################
function testEnum($tabelle,$feldname = '*')
##################################################################
{ # Ergebnis(liste) enthält Feldernamen, die den Typ enum haben
 $eresult = mysql_query("SELECT ".$feldname." FROM ".$tabelle);
 $fields = mysql_num_fields($eresult);
 $felder = '';
 $xi = 0;
 while ($xi < $fields)
 {
  $flags = mysql_field_flags ($eresult, $xi);
  if ($flags == 'enum')
  {
   #$type  = mysql_field_type  ($eresult, $xi);
   #$len   = mysql_field_len   ($eresult, $xi);
   $name  = mysql_field_name  ($eresult, $xi);
   $felder .= $name;
   if ($feldname == '*') $felder .= ",";
  }
  $xi++;
 }
 return $felder;
}
##################################################################

##################################################################
function generate_dt_form($feldname)
##################################################################
{
 $text  = "<input type=hidden name=".$feldname." value='$feldname'>";

 $text .= "<select style='width:40px;' name=".$feldname."_tag>";
 for ($xj=1;$xj<=31;$xj++) { $text .= "<option ";  if ($xj == date("d")) {$text .= "SELECTED ";} $text .= "value=".$xj.">".$xj."</OPTION>\n"; }
 $text .= "</select> . ";

 $text .= "<select style='width:40px;' name=".$feldname."_monat>";
 for ($xj=1;$xj<=12;$xj++) { $text .= "<option ";  if ($xj == date("m")) {$text .= "SELECTED ";} $text .= "value='".$xj."'>".$xj."</OPTION>\n"; }
 $text .= "</select> . ";

 $text .= "<select style='width:55px;' name=".$feldname."_jahr>";
 $jv = date("Y")-1;
 $jb = date("Y")+8;
 for ($xj=$jv;$xj<=$jb;$xj++) { $text .= "<option ";  if ($xj == date("Y")) {$text .= "SELECTED ";} $text .= "value='".$xj."'>".$xj."</OPTION>\n"; }
 $text .= "</select> - ";

 $text .= "<select style='width:40px;' name=".$feldname."_stunde>";
 for ($xj=0;$xj<=23;$xj++) { $text .= "<option ";  if ($xj == date("H")) {$text .= "SELECTED ";} $text .= "value='".$xj."'>".$xj."</OPTION>\n"; }
 $text .= "</select> : ";

 $text .= "<select style='width:40px;' name=".$feldname."_minute>";
 for ($xj=0;$xj<=59;$xj++) { $text .= "<option ";  if ($xj == date("i")) {$text .= "SELECTED ";} $text .= "value='".$xj."'>".$xj."</OPTION>\n"; }
 $text .= "</select> : ";

 $text .= "<select style='width:40px;' name=".$feldname."_sekunde>";
 for ($xj=1;$xj<=59;$xj++) { $text .= "<option ";  if ($xj == date("i")) {$text .= "SELECTED ";} $text .= "value='".$xj."'>".$xj."</OPTION>\n"; }
 $text .= "</select>";

 echo $text;
}
##################################################################

$query = "SELECT * FROM ".$tabelle;
$result = mysql_query($query) or die(mysql_error());
$felder = mysql_num_fields($result);

for ($i=0;$i<$felder;$i++)
 {
  $meta = mysql_fetch_field($result);
  echo "\n<tr valign=top><td>".$meta->name."</td><td> </td><td>";

Festlegung bei bestimmten (bekannten) Feldnamen
   if ($meta->name  == 'shadow'||$meta->name  == 'weiterleitung') 
   echo "<select name=".$meta->name." size=1 width=60 style='width:350px;'><option value=''>Auswahl</option>".$dopt."</select>";

  else # Enum-Feld
   if (testEnum($tabelle,$meta->name)  == $meta->name) 
   echo showEnum($tabelle,$meta->name,0);

  else # Datum Feld
   if ($meta->type  == 'datetime') 
   generate_dt_form($meta->name);

  else # Blobfeld
   if ($meta->type  == 'blob') 
   echo "<textarea name='".$meta->name."' wrap='physical' rows='5' cols='60' style='width:350px;'>".$meta->def."</textarea>";

  else # alles nix - dann halt Textfeld zeigen.
   echo "<input type=text size=60 style='width:350px;' name=".$meta->name." value='".$meta->def."'>";

  if ($meta->type  != 'blob' && $meta->type  != 'datetime') 
  echo "</td></tr>";

echo "</table>";
?>
  Mit Zitat antworten
Alt 23.09.2004, 16:24  
Gast
 
Beiträge: n/a
Standard habs

also ich habs ganz einfach gemacht, klappt auch ich hab
Zitat:
order by '$var'
so gesetzt und dann einfach per link!
Zitat:
<a href="/base/lmo/all.php?var=GelbRot">
Die verlangte spalte abgefragt!
Klappt auch!
http://kurzhose.ku.funpic.de/base/lmo/all.php
Also trotzdem danke!
  Mit Zitat antworten
Alt 23.09.2004, 17:26  
Gast
 
Beiträge: n/a
Standard

sieht cool aus..
kleiner vorschlag..
wenn man zwei mal drückt, wechselt es zwischen asc und desc.. das wär noch der hit..

dazu musst du nur das letzte order speichern..
  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
sortierung brian johnson Datenbanken 6 05.05.2008 19:53
User erkennen (ohne session + ohne cookies + prob mit IP) PHP Tipps 2007 8 30.12.2007 23:35
Aus mehreren Tabellen (Foren) den Top User ermitteln wizzardxx PHP Tipps 2006 9 15.02.2006 10:39
mysql_connect verbindet nicht wenn user passwort hat PHP Tipps 2005-2 3 28.10.2005 15:53
Session: Untersch. Seiten f. eingeloggte User und norm. User PHP Tipps 2005-2 2 20.07.2005 12:46
[Erledigt] MySQL user rausfinden Datenbanken 4 26.05.2005 12:15
User Profile erstellen für HP user, für eigene HP PHP Tipps 2005 2 23.05.2005 16:30
Counter für registrierte user PHP Tipps 2004-2 3 26.12.2004 11:32
[Erledigt] PHP linux user wechseln PHP-Fortgeschrittene 12 05.12.2004 16:11
Aktuelle Anzahl eingeloggter User ermitteln? PHP Tipps 2004-2 6 02.12.2004 13:03
User intenfication ohne Cookies und User hat temporale IP fender PHP Tipps 2004-2 1 15.11.2004 17:13
Access denied for user: '@localhost' / SYSTEM@localhost Datenbanken 0 10.11.2004 20:35
User ID TRW PHP Tipps 2004 3 25.10.2004 22:26
User identifizieren TRW PHP Tipps 2004 1 21.10.2004 21:36

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php xjs tabelle, blobfeld explode

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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.