php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 26-11-2006, 15:17
stefens
 Junior Member
Links : Onlinestatus : stefens ist offline
Registriert seit: Nov 2004
Beiträge: 115
stefens ist zur Zeit noch ein unbeschriebenes Blatt
Standard order by problem

hallo ich habe mir mir mal den nutzen von schattenbaum gemacht.
nun bin ich am ende des seitenlateiens angekommen und brauche noch einmal eure hilfe.

Habe mir ein telefonregister gebastelt.
alles klappt. nur das sortieren bekomme ich nicht hin.
ich meine schon, aber nicht das ändern der sortierungen
z.b nach name oder telefonnummer etc.

hatte mir das so vorgestellt das man auf der übersicht auf name klickt
und er das dann sortiert, nur funktioniert das nicht..
bisher habe ich das automatisch machen lassen, aber will ich nicht.

KLICK HIER

mein bisheriges srcipt schaut so aus :

PHP-Code:

<table width="100%" border="1">
  <tr>
    <td width="76%"><span class="Stil1"> Telefonregister</span></td>
    <td width="24%"><div align="right"><a href="hinzu.php" class="Stil1">Neuen Datensatz hinzuf&uuml;gen </a></div></td>
  </tr>
</table>
<br>
<br>
<table width="900" border="1" align="center">
  <tr>
    <td width="109" class="Text1">Name</a></td>
    <td width="171" class="Text1">Vorname</td>
    <td width="168" class="Text1">Telefonnummer</td>
    <td width="173" class="Text1">Fax</td>
    <td width="76" class="Text1">ID</td>
    <td width="163" class="Text1">L&ouml;schen</td>
  </tr>
</table><br>
<?
# Kontakt zur Datenbank
include "config.php";

## Daten abfragen
$abfrage "SELECT Name, Vorname, Telefonnummer, Fax, ID FROM Telefonregister";

## Daten in eienr Variable speichern
#$ergebnis = mysql_query ($abfrage);


# Daten abfragen + sortieren
$ergebnis mysql_query ($abfrage);

$abfrage "SELECT * FROM Telefonregister ORDER BY Name";
$abfrage "SELECT Name, Vorname, Telefonnummer, Fax, ID FROM Telefonregister";
$ergebnis mysql_query($abfrage);
while(
$row mysql_fetch_object($ergebnis))


# Daten in Tabelle ausgeben

{
echo 
"

<html>
<table width=\"900\" border=\"1\" align=\"center\">
  <tr>
    <td width=\"109\" class=\"Text1\">$row->Name</td>
    <td width=\"171\" class=\"Text1\">$row->Vorname</td>
    <td width=\"168\" class=\"Text1\">$row->Telefonnummer</td>
    <td width=\"173\" class=\"Text1\">$row->Fax</td>
    <td width=\"76\" class=\"Text1\">$row->ID</td>
    <td width=\"163\" class=\"Text1\">
    <form action=\"loeschen.php\" method=\"post\" class=\"Stil1\">
        <input name=\"loeschdaten\" type=\"text\" class=\"Text1\" id=\"loeschdaten\" value=\"$row->ID\" size=\"3\">
<input name=\"submit\" type=\"submit\" class=\"Text1\" value=\"Löschen\">
    </form></td>
  </tr>
</table>
</html> "
;
}
?>
könnt ihr mir helfen ? tipps geben ? und bitte nicht stichwortartig, ich bin anfänger
Mit Zitat antworten
  #2 (permalink)  
Alt 26-11-2006, 16:13
Griecherus
 PHP Senior
Links : Onlinestatus : Griecherus ist offline
Registriert seit: May 2005
Ort: Berlin
Beiträge: 1.036
Griecherus ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Wenn ich dich richtig verstanden habe, dann musst du das vom Prinzip her so machen:

Die Tabellenköpfe, nach denen man sortieren können soll (Name, Tel-Nr. usw.) müssen jeweils einen $_GET Parameter haben, der deinem Script mitteilt, ob und wonach sortiert werden soll.
Beispiel:
PHP-Code:
...
<
td width="109" class="Text1"><a href="?order_by=name">Name</a></td>
... 
Dein Script fängt nun $_GET['order_by'] ab und kann die SELECT-Abfragen dementsprechend ausführen.

Vereinfachtes Beispiel:
PHP-Code:
$q sprintf("SELECT * FROM table_name ORDER BY '%s'"$_GET['order_by']);

$result mysql_query($q)
    or die(
mysql_error());
); 
Mit Zitat antworten
  #3 (permalink)  
Alt 26-11-2006, 16:35
stefens
 Junior Member
Links : Onlinestatus : stefens ist offline
Registriert seit: Nov 2004
Beiträge: 115
stefens ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ahja, ales klar, habs verstanden.. vielen dank !


Gruß, Stefens
Mit Zitat antworten
  #4 (permalink)  
Alt 26-11-2006, 16:49
stefens
 Junior Member
Links : Onlinestatus : stefens ist offline
Registriert seit: Nov 2004
Beiträge: 115
stefens ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hatte es gerade getestet, hat aber net funktioniert..

also ich habe als link wie du schon als beispiel gepostet hast verwendet

und im script hab ich dem beispiel hinzugefügt und dieses %s mit Name ersetzt , aber auch ohne das zu ersetzen klappt es net :/

was mach ich nun schon wieder falsch ?
Mit Zitat antworten
  #5 (permalink)  
Alt 26-11-2006, 17:31
Griecherus
 PHP Senior
Links : Onlinestatus : Griecherus ist offline
Registriert seit: May 2005
Ort: Berlin
Beiträge: 1.036
Griecherus ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Was genau funktioniert denn nicht? So kann ich dir nicht sagen, woran's hapert. Und poste auch gleich mal den neuen Codeausschnitt.
Mit Zitat antworten
  #6 (permalink)  
Alt 26-11-2006, 18:13
stefens
 Junior Member
Links : Onlinestatus : stefens ist offline
Registriert seit: Nov 2004
Beiträge: 115
stefens ist zur Zeit noch ein unbeschriebenes Blatt
Standard

sry, erst jetzt gesehen..

ja er sortiert eben nicht...

hier ist der neue komplette code

PHP-Code:
<link href="css/index.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
.Stil1 {
    font-size: 12px;
    font-weight: bold;
}
-->
</style>
<table width="100%" border="1">
  <tr>
    <td width="76%"><span class="Stil1"> Telefonregister</span></td>
    <td width="24%"><div align="right"><a href="hinzu.php" class="Stil1">Neuen Datensatz hinzuf&uuml;gen </a></div></td>
  </tr>
</table>
<br>
<br>
<table width="900" border="1" align="center">
  <tr>
    <td width="109" class="Text1"><a href="?order_by=Name">Name</a></a></td>
    <td width="171" class="Text1"><a href="?order_by=Vorname">Vorname</a></td>
    <td width="168" class="Text1">Telefonnummer</td>
    <td width="173" class="Text1">Fax</td>
    <td width="76" class="Text1">ID</td>
    <td width="163" class="Text1">L&ouml;schen</td>
  </tr>
</table><br>
<?
# Kontakt zur Datenbank
include "config.php";

## Daten abfragen
$abfrage "SELECT Name, Vorname, Telefonnummer, Fax, ID FROM Telefonregister";

## Daten in eienr Variable speichern
#$ergebnis = mysql_query ($abfrage);


# Daten abfragen
$ergebnis mysql_query ($abfrage);
# sortieren
#sortieren nach ################################### manuelles sortieren

$q sprintf("SELECT * FROM Telefonregister ORDER BY 'Name'"$_GET['order_by']);

$result mysql_query($q)
    or die(
mysql_error());


####################################################






$abfrage "SELECT Name, Vorname, Telefonnummer, Fax, ID FROM Telefonregister";
$ergebnis mysql_query($abfrage);
while(
$row mysql_fetch_object($ergebnis))






# Daten in Tabelle ausgeben

{
echo 
"

<html>
<table width=\"900\" border=\"1\" align=\"center\">
  <tr>
    <td width=\"109\" class=\"Text1\">$row->Name</td>
    <td width=\"171\" class=\"Text1\">$row->Vorname</td>
    <td width=\"168\" class=\"Text1\">$row->Telefonnummer</td>
    <td width=\"173\" class=\"Text1\">$row->Fax</td>
    <td width=\"76\" class=\"Text1\">$row->ID</td>
    <td width=\"163\" class=\"Text1\">
    <form action=\"loeschen.php\" method=\"post\" class=\"Stil1\">
        <input name=\"loeschdaten\" type=\"text\" class=\"Text1\" id=\"loeschdaten\" value=\"$row->ID\" size=\"3\">
<input name=\"submit\" type=\"submit\" class=\"Text1\" value=\"Löschen\">
    </form></td>
  </tr>
</table>
</html> "
;
}
?>

Geändert von stefens (26-11-2006 um 18:15 Uhr)
Mit Zitat antworten
  #7 (permalink)  
Alt 26-11-2006, 18:22
Griecherus
 PHP Senior
Links : Onlinestatus : Griecherus ist offline
Registriert seit: May 2005
Ort: Berlin
Beiträge: 1.036
Griecherus ist zur Zeit noch ein unbeschriebenes Blatt
Standard

So wie ich das sehe, machst du da einen ganzen Haufen unnötiger Abfragen, oder nicht? Die ersten beiden SELECTs werden nirgends benötigt, die abgefragten Datensätze werden nichtmal mit einem mysql_fetch_* abgerufen. Das macht zumindest so keinen Sinn.

Also fangen wir nochmal bei dem Funktionsprinzip deines Scripts an:
Du möchtest eine Tabelle generieren und dem Benutzer die Möglichkeit geben, diese Tabelle nach einem bestimmten Kriterium zu sortieren. Demnach überprüfst du erstmal, ob ein bestimmtes Sortierungskriterium als Parameter übergeben wurde. Falls ja, dann führst du die Abfrage mit diesem Parameter durch. Falls nein, dann nach einem Standard-Parameter. Dein Script sollte im Ganzen also nur eine Abfrage benötigen.
Mit Zitat antworten
  #8 (permalink)  
Alt 26-11-2006, 18:27
stefens
 Junior Member
Links : Onlinestatus : stefens ist offline
Registriert seit: Nov 2004
Beiträge: 115
stefens ist zur Zeit noch ein unbeschriebenes Blatt
Standard

wie jetzt, versteh ich nicht.
mein script macht doch bisher nur die abfrage um anschließend die ergebnisse anzeigen lassen zu können oder nicht ?!
Mit Zitat antworten
  #9 (permalink)  
Alt 26-11-2006, 18:31
Griecherus
 PHP Senior
Links : Onlinestatus : Griecherus ist offline
Registriert seit: May 2005
Ort: Berlin
Beiträge: 1.036
Griecherus ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Schau dir dein Script doch nochmal an. Du führst insgesamt 3 SELECTs aus, richtig? Und der einzige SELECT davon, der Sinn macht, ist der letzte. Wieso? Du fragst mit den ersten beiden SELECTs Datensätze ab, die du doch gar nicht weiter verwendest. Ein SELECT ohne anschließendem mysql_fetch_* macht keinen Sinn, da du mit den abgefragten Datensätze nicht arbeiten kannst. Bei dem letzten SELECT hingegen wendest du mysql_fetch_object an, damit du anschließend durch die Ergebnisse iterieren und die Tabelle generieren kannst. Und nur das macht Sinn. Also streich die anderen Abfragen.

EDIT:
Und schon brauchst du nur noch dafür sorgen, dass deine Abfrage entweder nach einem Kriterium sortiert, das der Benutzer übergeben hat, oder nach einem Standard.

Pseudo-Code:

WENN parameter order_by gesetzt DANN
abfrage nach diesem kriterium ausführen
SONST
abfrage nach einem standard-kriterium ausführen (z.b. name)


Geändert von Griecherus (26-11-2006 um 18:34 Uhr)
Mit Zitat antworten
  #10 (permalink)  
Alt 26-11-2006, 18:33
stefens
 Junior Member
Links : Onlinestatus : stefens ist offline
Registriert seit: Nov 2004
Beiträge: 115
stefens ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ups, das ist mir wohl beim rumbasteln doppelt gekommen *g*
naja, es hat ja nicht wehgetan *g* danke...

also hier wäre dann das ergebnis dazu, und wie klappt das dann mit dem sortieren ?

PHP-Code:

<?
# Kontakt zur Datenbank
include "config.php";

# Daten abfragen    ## Daten in eienr Variable speichern/// #$ergebnis = mysql_query ($abfrage);
$abfrage "SELECT Name, Vorname, Telefonnummer, Fax, ID FROM Telefonregister";
$ergebnis mysql_query($abfrage);
while(
$row mysql_fetch_object($ergebnis))
# Daten in Tabelle ausgeben

{
echo 
"

<html>
<table width=\"900\" border=\"1\" align=\"center\">
  <tr>
    <td width=\"109\" class=\"Text1\">$row->Name</td>
    <td width=\"171\" class=\"Text1\">$row->Vorname</td>
    <td width=\"168\" class=\"Text1\">$row->Telefonnummer</td>
    <td width=\"173\" class=\"Text1\">$row->Fax</td>
    <td width=\"76\" class=\"Text1\">$row->ID</td>
    <td width=\"163\" class=\"Text1\">
    <form action=\"loeschen.php\" method=\"post\" class=\"Stil1\">
        <input name=\"loeschdaten\" type=\"text\" class=\"Text1\" id=\"loeschdaten\" value=\"$row->ID\" size=\"3\">
<input name=\"submit\" type=\"submit\" class=\"Text1\" value=\"Löschen\">
    </form></td>
  </tr>
</table>
</html> "
;
}
?>
Mit Zitat antworten
  #11 (permalink)  
Alt 26-11-2006, 18:35
Griecherus
 PHP Senior
Links : Onlinestatus : Griecherus ist offline
Registriert seit: May 2005
Ort: Berlin
Beiträge: 1.036
Griecherus ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Schau dir mal das Edit meines letzten Postings an.
Mit Zitat antworten
  #12 (permalink)  
Alt 26-11-2006, 18:39
stefens
 Junior Member
Links : Onlinestatus : stefens ist offline
Registriert seit: Nov 2004
Beiträge: 115
stefens ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ist das dann wieder sone if und else sache ?
hm, also ich steh auf der stelle und weiß nicht weiter :/
Mit Zitat antworten
  #13 (permalink)  
Alt 26-11-2006, 18:47
Griecherus
 PHP Senior
Links : Onlinestatus : Griecherus ist offline
Registriert seit: May 2005
Ort: Berlin
Beiträge: 1.036
Griecherus ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Sicher ist es das. Und du solltest dich schnell mit diesen If-Else-Sachen anfreunden, denn ohne wirst du so schnell nichts verwirklichen können. Das ist einfach elementar.
Mein Tipp: PHP-Manual Online Dokumentation - Kontroll-Strukturen

Du bräuchtest in etwa das:
PHP-Code:
$sort_by = (isset($_GET['sort_by']) ? $_GET['sort_by'] : 'name');
// ist "kurzschreibweise" von

if (isset($_GET['sort_by'])) {
    
$sort_by $_GET['sort_by'];
} else {
    
$sort_by 'name'// das kriterium, nach dem du standardmäßig sortieren möchtest

Ich lege dir trotzdem nah, dir die Doku gut durchzulesen, denn hier werden dir in der Regel keine Fertiglösungen geboten und du möchtest dir ja auch selbst helfen können.
Mit Zitat antworten
  #14 (permalink)  
Alt 26-11-2006, 18:54
stefens
 Junior Member
Links : Onlinestatus : stefens ist offline
Registriert seit: Nov 2004
Beiträge: 115
stefens ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ja, das werde ich, ich war ja gerade schon dabei mit diesem if und else zeugs, aber ich bekomme es net hin.. auch mit deinem script nicht..

braucht mein html code noch ein formular tag ?
und wie lautet der code für dieses variablen selbst übergeben.
ich erinnter mich an etwas mit self php oder so ähnlich.

aber verstehen tu ich es immernoch net wirklich
Mit Zitat antworten
  #15 (permalink)  
Alt 26-11-2006, 19:00
Griecherus
 PHP Senior
Links : Onlinestatus : Griecherus ist offline
Registriert seit: May 2005
Ort: Berlin
Beiträge: 1.036
Griecherus ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich denke es ist am besten, wenn du dich erstmal mit dem Grundlagen auseinandersetzt und es dann nochmal versuchst. Alles, was du wissen musst, um dein Script zum laufen zu bringen, habe ich schon gepostet, du brauchst jetzt also nur noch ein halbwegs solides Grundlagenwissen, dann kommt das Verständnis für das Ganze fast wie von allein. Alles andere wird dir auf die Dauer nicht weiterhelfen, schon gar nicht, wenn ich dir dein Script schreibe.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:07 Uhr.