Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » PHP & MySQL » MySQL nach Rubrik ordnen Antworten
MySQL nach Rubrik ordnen

Diamo
Feiertags-Poster


Beiträge: 38


Hallo zusammen,

ich hab ein Script programmiert, dass ein Formular auswertet und Daten in eine MySQL Tabelle mit den Datensätzen 'name', 'url', 'kat' und 'datum' einschreibt.
Jetzt möchte ich aber, dass beim anzeigen der Tabelle die Datensätze nach der Kategorie angezeigt werden. Also, dass z.B. nur die Datensätze mit der Kategorie Lehrbuch angezeigt wird und die restlich Datensätzen mit anderen Kategorien nicht.
Außerdem sollte der Anwender noch die Möglichkeit haben, per Auswahl zwischen den Kategorien wechseln zu können.

Könnt ihr mir das weiterhelfen ?

best greets
willy

  Profil   E-Mail   Website   Editieren   Zitieren

einstein
Quasselstrippe


Beiträge: 241


Du scheinst vor keinem unlösbaren Problem zu stehen, daher empfehle ich den Blick in das ein oder andere Tutorial.

Mysql/PHP Grundlagen gibts z.B. hier:
http://php-center.de/tutorial/teil4.htm

  Profil   Editieren   Zitieren

Diamo
Feiertags-Poster


Beiträge: 38


OK danke, habs hinbekommen. Wusste nicht wo ich sowas nachschauen kann...

Ist es vielleicht auch möglich die Rubrik per Menü(link) zu ändern ?

  Profil   E-Mail   Website   Editieren   Zitieren

Der_HOmer[DE]
Quasselstrippe


Beiträge: 239


meinst du so?:
Link: <a href="index.php?ordnen=irgendwas">kjh</a>
PHP: mysql_query("SELECT * FROM tabelle ORDER by $_GET['ordnen']")

  Profil   Editieren   Zitieren

Diamo
Feiertags-Poster


Beiträge: 38


Ich habs so probiert, aber dann kommt dieser Fehler:
Warning: Supplied argument is not a valid MySQL result resource in /www/htdocs/v026937/adult/index.php on line 19


Hier mein Code:
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
28: 
29: 
30: 
31: 
32: 
33: 
34: 
35:
<?php
$benutzer = "v026xxx";
$passwort = "3wixxxxx";
$db = "v026xxx";

$link =  mysql_pconnect( "localhost", $benutzer, $passwort );
if (!$link) die ("Keine Verbindung zu MySQL");
mysql_select_db($db, $link) or die ("Konnte Datenbank \"$db\" nicht oeffnen:".mysql_error());

$ergebnis = mysql_query( "Select * From linklist WHERE kat=’".$_GET["category"]."’")
//$anz_reihen = mysql_num_rows($ergebnis);
//print "Es sind zur Zeit <b>$anz_reihen</b> Mitglieder im Clan<p>";
?>
<a href="index.php?category=kat1">Kategorie 1</a><br>
<a href="index.php?category=kat2">Kategorie 2</a><br>
<a href="index.php?category=kat3">Kategorie 3</a><br>

<table class="text" border="0" cellspacing="0" cellpadding="0">
	<?php while ($datensatz = mysql_fetch_array($ergebnis)) { ?>
	<tr>
		<td>
			<a href="<?php echo $datensatz[url]; ?>" target="_blank"><?php echo $datensatz[name]; ?></a>
		</td>
		<td>
		</td>
	</tr>
	<tr height="5">
		<td height="5">
		</td>
		<td>
		</td>
	</tr>	
</table>
<?php } 
mysql_close($link); ?>

  Profil   E-Mail   Website   Editieren   Zitieren

einstein
Quasselstrippe


Beiträge: 241


in Zeile 10 fehlt am Ende ein Semikolon, aber das würde einen Parse Error verursachen.

Füge unter die mysql_query() ein
1:
echo mysql_error();
ein. Das sollte dir beim Debuggen helfen.

  Profil   Editieren   Zitieren

Diamo
Feiertags-Poster


Beiträge: 38


Dann kommt dieser Fehler:
1:
You have an error in your SQL syntax near '' at line 1

  Profil   E-Mail   Website   Editieren   Zitieren

languitar
Foren-Team


Beiträge: 2795


1:
$ergebnis = mysql_query( "Select * From linklist WHERE kat='".$_GET["category"]."'")


Sollte wohl eher so aussehen:
1:
$ergebnis = mysql_query("SELECT * FROM `linkliste` WHERE kat = '".$_GET['category']."')


Zum einen solle man MySQL-Befehle immer groß schreiben und zum anderen musst du auf die art der Anführungszeichen achten:
' = Umschalt + # wird für Werte verwendet
` = Umschalt + ´ udn anschließend eine Leertaste wird für Tabellen- und Feldnamen verwendet.

---
Take a look here!
Lichtblick - Einblick - Ausblick

Diese Nachricht wurde geändert von: languitar
  Profil   E-Mail   Website   Editieren   Zitieren

Diamo
Feiertags-Poster


Beiträge: 38


In deiner Zeile war zwar auch ein kleiner Fehler(Anführungszeichen hat am ende im query gefehlt), aber jetzt funktionierts ! Super ! DAAANKKEEE

  Profil   E-Mail   Website   Editieren   Zitieren

Diamo
Feiertags-Poster


Beiträge: 38


Ich hab noch ne zusätzliche Frage:

Ist es vielleicht möglich die Tabelle so zu ordnen, dass nur die Einträge angezeigt werden, die nicht älter als x Tage sind ?

  Profil   E-Mail   Website   Editieren   Zitieren

languitar
Foren-Team


Beiträge: 2795


füge noch ne WHERE-Bedingung hinten an, also:

1:
$ergebnis = mysql_query("SELECT * FROM `linkliste` WHERE kat = '".$_GET['category'].' AND date > '".(time()-6*24*3600)."'")

Hier werden nur Einträge angezeigt, die jünger als sechs Tage sind.
Setzt voraus, dass das Datum als Timestamp gespeichert ist...

---
Take a look here!
Lichtblick - Einblick - Ausblick

  Profil   E-Mail   Website   Editieren   Zitieren

Diamo
Feiertags-Poster


Beiträge: 38


cool danke, hat funktioniert !

  Profil   E-Mail   Website   Editieren   Zitieren

Diamo
Feiertags-Poster


Beiträge: 38


wieso funktioniert es eigentlich so net ? Ich wollte, dass er alle neuen einträge in der datenbank anzeigt

1:
$ergebnis = mysql_query("SELECT * FROM `linklist` WHERE date > '".(time()-6*24*3600)."'");

  Profil   E-Mail   Website   Editieren   Zitieren

languitar
Foren-Team


Beiträge: 2795


Sollte eigentlich funktionieren. Zumindest sehe ich keinen Fehler.

---
Take a look here!
Lichtblick - Einblick - Ausblick

  Profil   E-Mail   Website   Editieren   Zitieren
 

Antworten
Nach oben