Autor |
Nachricht |
telepadune
Threadersteller
Dabei seit: 11.10.2006
Ort: -
Alter: -
Geschlecht:
|
Verfasst Mi 11.10.2006 08:30
Titel SQL Abfrage vereinfachen (Kategorien) |
|
|
Hallo zusammen
Ich habe nicht wirklich ein Problem, brauch eher ein Denkanstoss, da mein Kopf wohl etwas überladen ist
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 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
|
|
|
|
|
xaos
Dabei seit: 06.10.2004
Ort: Kargath
Alter: -
Geschlecht: -
|
Verfasst Mi 11.10.2006 10:30
Titel Re: SQL Abfrage vereinfachen (Kategorien) |
|
|
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
|
|
|
|
|
Anzeige
|
|
|
m
Moderator
Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht:
|
Verfasst Mi 11.10.2006 10:59
Titel
|
|
|
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
|
|
|
|
|
xaos
Dabei seit: 06.10.2004
Ort: Kargath
Alter: -
Geschlecht: -
|
Verfasst Mi 11.10.2006 11:11
Titel
|
|
|
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...
|
|
|
|
|
telepadune
Threadersteller
Dabei seit: 11.10.2006
Ort: -
Alter: -
Geschlecht:
|
Verfasst Do 12.10.2006 06:52
Titel
|
|
|
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
|
|
|
|
|
schachbrett
Dabei seit: 11.10.2006
Ort: Köln
Alter: -
Geschlecht:
|
Verfasst Do 12.10.2006 09:42
Titel
|
|
|
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
|
|
|
|
|
telepadune
Threadersteller
Dabei seit: 11.10.2006
Ort: -
Alter: -
Geschlecht:
|
Verfasst Fr 13.10.2006 23:16
Titel
|
|
|
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 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 =)
|
|
|
|
|
|
|
|
Ähnliche Themen |
vereinfachen von nem script
php-Code vereinfachen
php script vereinfachen?
Logo-Platzierung vereinfachen
Fotogalery mit verschiedenen Kategorien in PHP
Wordpress Kategorien Übersicht
|
|