mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 29.03.2024 08:13 Benutzername: Passwort: Auto-Login

Thema: SQL Abfrage vereinfachen (Kategorien) vom 11.10.2006


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> SQL Abfrage vereinfachen (Kategorien)
Autor Nachricht
telepadune
Threadersteller

Dabei seit: 11.10.2006
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mi 11.10.2006 08:30
Titel

SQL Abfrage vereinfachen (Kategorien)

Antworten mit Zitat Zum Seitenanfang

Hallo zusammen
Ich habe nicht wirklich ein Problem, brauch eher ein Denkanstoss, da mein Kopf wohl etwas überladen ist Lächel
folgendes:
ich habe ein linkscript in dem der user die links nach 4 kategorien eintragen kann... die tabelle dafür sieht so aus:
id | titel | url | beschreibung | kategorie

das ganze geb ich dann auf einer seite aus mit
Code:
<?php
   $result= mysql_query('SELECT * FROM '.$linktable.' WHERE kategorie="kategorie1" ') OR die(mysql_error()); //db-einträge auslesen
   while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
      {
?>
// ausgabe mit html-gerüst, echo und so zeugs ;)
<?php
    }
?>
//nächste kategorie usw...

nun muss ich das ganze codestück (hier gekürzt) auf der seite 4mal ausführen bzw schreiben und einfach die WHERE-bedingung ändern - find ich etwas übertrieben *balla balla* vorallem wenn ich den code evtl noch für ein grösseres script weiterverwendet werden möchte...
ich bin mir irgendwie sicher, dass sich das einfacher lösen lässt, aber ich habe im moment keine ahnung wie... oder bin ich da falsch und das ist wirklich die einzige möglichkeit?

danke schon mal
gruss
telepadune
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
xaos

Dabei seit: 06.10.2004
Ort: Kargath
Alter: -
Geschlecht: -
Verfasst Mi 11.10.2006 10:30
Titel

Re: SQL Abfrage vereinfachen (Kategorien)

Antworten mit Zitat Zum Seitenanfang

Code:
<?php
$ausgabe_kategorie = array()';

$query = "SELECT * FROM '$linktable';";
//db-einträge auslesen
$result= mysql_query($query) OR die(mysql_error());
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    $ausgabe_kategorie[$row->kategorie] .= $row->kategorie." ".$row->titel." ".$row->url." ".$row->beschreibung."<br>";
}

// Ausgabe gewünschten Kategorie
echo $ausgabe_kategorie[$kategorie];

?>


Kleine Überarbeitung...


Zuletzt bearbeitet von xaos am Mi 11.10.2006 10:55, insgesamt 2-mal bearbeitet
  View user's profile Private Nachricht senden
Anzeige
Anzeige
m
Moderator

Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mi 11.10.2006 10:59
Titel

Antworten mit Zitat Zum Seitenanfang

Code:
    $query =    "SELECT
                   `kategorie`,
                   `url`
                FROM
                   `links`
                ORDER BY
                   `kategorie` DESC
              ";
    $result = mysql_query($query);
    $tmp = null;
    while( $row = mysql_fetch_assoc($result) ) {
        if( $tmp != $row['kategorie'] ) {
            if( !is_null($tmp) ) {
                echo '</ul>';
            }
            echo '<h3>'.$row['kategorie'].'</h3>';
            echo '<ul>';
            $tmp = $row['kategorie'];
        }
        echo '<li>'.$row['url'].'</li>';
    }
    if( !is_null($tmp) ) {
        echo '</ul>';
    }


Zuletzt bearbeitet von m am Mi 11.10.2006 11:04, insgesamt 2-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
xaos

Dabei seit: 06.10.2004
Ort: Kargath
Alter: -
Geschlecht: -
Verfasst Mi 11.10.2006 11:11
Titel

Antworten mit Zitat Zum Seitenanfang

m hat geschrieben:

Edit: Sehe gerade xaos hat seinen Beitrag überarbeitet, vorher hätte das ja wenig Sinn gemacht wenn man jedesmal wenn man eine neue Kategorie anlegt das Script ändern hätte müssen.


Jo, der Kaffeepegel war noch nicht im grünen Bereich...
Für die Ausgabe muss er für die jeweilige Kategorie dann der Ausgabe den Namen übergeben... weiss ja nicht wie das genau aussehen soll...
  View user's profile Private Nachricht senden
telepadune
Threadersteller

Dabei seit: 11.10.2006
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Do 12.10.2006 06:52
Titel

Antworten mit Zitat Zum Seitenanfang

guten morgen allerseits
vielen dank für die antworten, ich hab die version von xaos mal getestet aber irgendwie komme ich nicht klar :/
wie kann ich der ausgabe sagen welche kategorie ich ausgeben will, z.B. kategorie1, wo muss ich das übergeben?
ausserdem bekomme ich in der zeile
Code:
    $ausgabe_kategorie[$row->kategorie] .= $row->kategorie." ".$row->titel." ".$row->url." ".$row->beschreibung."<br>";
den error "unexpected T_STRING".. aber ich nehme an das liegt an mir^^

tut mir leid das ich so schwer von begriff bin Au weia!
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
schachbrett

Dabei seit: 11.10.2006
Ort: Köln
Alter: -
Geschlecht: Männlich
Verfasst Do 12.10.2006 09:42
Titel

Antworten mit Zitat Zum Seitenanfang

Die Fehlermeldung macht dich auf falsch gesetzte Anfuehrungszeichen aufmerksam!

Ich wuerds so in ein Array schreiben, dann kannst du die Ausgaben noch unterschiedlich formatieren...

Code:
$query = "SELECT * FROM $linktable";
$kategorien = array();

$result= mysql_query( $query ) OR die( mysql_error() );

while ( $row = mysql_fetch_array( $result, MYSQL_ASSOC ) ) {
   $kategorien[ $row['kategorie'] ][] = array(
      "titel"        => $row['titel'],
      "url"          => $row['url'],
      "beschreibung" => $row['beschreibung']
   );
}


// Eine bestimmte Kategorie ausgeben:

$k = "2"; // ID oder Bezeichnung der Kategorie

echo "<ul>";
foreach ( $kategorien[$k] as $link ) {
   echo '<li><a href="' . 
        $link['url'] . '\">' . $link['titel'] . ':' . $link['beschreibung'] .
        '</a></li>';
}
echo "</ul>";


Gruss


Zuletzt bearbeitet von schachbrett am Do 12.10.2006 09:43, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
telepadune
Threadersteller

Dabei seit: 11.10.2006
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Fr 13.10.2006 23:16
Titel

Antworten mit Zitat Zum Seitenanfang

hi
bin in letzter zeit etwas beschäftigt, komme nicht zum testen und feedback geben, aber zur später stunde hab ichs doch noch geschafft Lächel so per copy&paste siehts das array gut aus, funktioniert bestens und erfüllt soweit ich gesehen habe auch meine zwecke... etwas anpassung und das ganze ist etwa das was ich mir vorgestellt habe - vielen dank!

schöns weekend =)
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
 
Ähnliche Themen vereinfachen von nem script
php-Code vereinfachen
php script vereinfachen?
Logo-Platzierung vereinfachen
Fotogalery mit verschiedenen Kategorien in PHP
Wordpress Kategorien Übersicht
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.