Anzeige - [Hier werben]
(?) Tags raten (?) (edit)
 
Reply to this topicStart new topicStart Poll
Diskussion

[PHP+mySQL] Dynamische Links

name
Geschrieben am: Di 13.07.2004, 19:31
Report PostQuote Post

AyomRank 2
****

Gruppe: Member (aktiv)
Beiträge: 19
Mitglied seit: 10.07.2004


Hi,
wenn man eine seite (z.B. index.php) hat, dann kann man ja darin verschiedene links definieren und dann sagen, wonach in einer mySQL Datenbank gesucht werden soll und was gezeigt werden soll, abhängig vom Link.

Ich benutzte dafür zur Zeit diesen Schnippsel:

# Anzeige Aerobic Montags
if ($sportsart!="aerobicmontag")

// der Link definiert sich als: index.php?SPORTART=AEROBICMONTAG...
das möchte ich gerne mit variablen ersetzen (z.B. index.php?SPORTART=$SPORTART&WOCHENTAG=&WOCHENTAG, oder irgendwie so, damit man nicht sämtlich mögliche Links auf meine jetztige Art definieren muss.


{echo""; } else {
$sqlab = "select * FROM sportarten where sportart='aerobic' and wochentag=montag";

//Hier könnte ich mir nämlich auch vorstellen dass es mit variablen möglich ist. Also aus 'aerobic' wird zum Beispiel: $sportart und aus 'montag' wird $wochentag.

echo"<center><br>
<TABLE id=\"tablea\" cellSpacing=\"0\" cellPadding=\"1\" width=\"95%\" border=\"0\">
<tr>
<td class=\"box\" align=\"center\" width=\"15%\">Sportsgren</td>
<td class=\"box\" align=\"center\" width=\"20%\">Titel</td>
<td class=\"box\" align=\"center\" width=\"5%\">Hold</td>
<td class=\"box\" align=\"center\" width=\"20%\">Ugedag</td>
<td class=\"box\" align=\"center\" width=\"15%\">Sted</td>
</tr>";

$res = mysql_query($sqlab, $db);
while($movie = mysql_fetch_object ($res)) { ?>
<tr <? if ($options->hover=="ja") { print "onmouseover=\"this.bgColor='$options->hovercolor1'"
."\"onMouseOut=\"this.bgColor='$options->hovercolor2'\""; } ?>>
<TD align="left"><? echo "<a href=javascript:detail('detail.php?id=$movie->id')>&nbsp;$movie->sportsgren</a>"; ?></TD>
<td align="center"><? echo "$movie->titel"; ?></td>
<td align="center"><? echo "$movie->hold"; ?></td>
<td align="center"><? echo "$movie->ugedag"; ?></td>
<TD align="center"><? echo "$movie->sted"; ?></TD></tr>
<? } echo "</TABLE></center>";
}

//das ist alles in Ordnung, denn das bestimmt wie die Seite aufgebaut und was angezeigt wird.

Ich weiss nur nicht wie ich diese Variablen (ich hoffe man nennt sie so) definieren soll, - oder was ich schreiben muss, damit dieser Schnippsel herausfindet dass das was nach SPORTART (bei z.B. index.php?sportart=aerobic) das ist, wonach er in der Tabelle Sportarten im Feld Sportart suchen soll. Man müsste das dann auch noch erweitern so dass der Link index.php?sportart=aerobic&wochentag=montag aussieht, und der Schnippsel herausfindet dass wenn wochentag kommt, er danach in der Tabelle Sportarten im Feld Wochentag suchen soll. Danach sollen alle Einträge die der Schnippsel gefunden hat gelistet werden...

Ich hoffe ihr habt verstanden wass ich meine und würde mich sehr über Antwort freuen smile.gif
Top
PMEmail Poster
Top
 
 
Josh
#2 Geschrieben am: Di 13.07.2004, 20:58 (+01:26)
Report PostQuote Post

AyomRank 9
Group Icon 2 Gruppe: Moderator

Gruppe: Moderator
Beiträge: 2169
Mitglied seit: 19.10.2003


ok mein lieber, hier n kleiner einstieg.

CODE


$sportarten = array("aerobic","fussball","tennis");

foreach($sportarten as $currentSportart)
{
 echo "<a href='index.php?sportarte=$currentSportart'>$currentSportart</a><br>";
}



das sollte weiterhelfen.
Top
PMEmail PosterUsers WebsiteICQ
Top
 
name
#3 Geschrieben am: Di 13.07.2004, 21:48 (+00:49)
Report PostQuote Post

AyomRank 2
****

Gruppe: Member (aktiv)
Beiträge: 19
Mitglied seit: 10.07.2004


Hi, vielen Dank für deine schnelle und hilfreiche Antwort.
Das klappt auch eigentlich sehr gut, nur merkwürdiger weise definiert $currentSportart sich immer als den letzten wert vom array ($sportarten).
also ich erzähl mal kurz über meinen (beziehungsweise j0sh's wink.gif ) code. Das ist so, dass man ja erst $sportarten als mehrere begriffe definiert, danach werden diese doch alle "einzeln" zu $currentSportart definiert (oder? So seh ich es zumindest)
und wenn man dann, wie ich es mache, mit einem Kommando (oder wie das heisst, ich zeige ihn gleich) bestimmt, dass wenn die URL der index.php-Seite z.b. "index.php?sportart=aerobic" lautet, dann muss in der Tabelle Sportarten im Feld Sportart nach aerobic gesucht werden und alle Einträge aufgelistet werden.

Eigentlich muss man sich ja nur das hier angucken (ausschnitt vom PHP-Script):

$sportarten = array("aerobic","ballet","walking");

foreach($sportarten as $currentSportart);


if ($sportart=$currentSportart) {echo"$currentSportart"; } else {
$sqlab = "select * FROM sportsgrene where sportsgren='$currentSportsgren'";
echo"<center><br>
<TABLE id=\"tablea\" cellSpacing=\"0\" cellPadding=\"1\" width=\"95%\" border=\"0\">
<tr>
<td class=\"box\" align=\"center\" width=\"15%\">Sportsgren</td>
<td class=\"box\" align=\"center\" width=\"20%\">Titel</td>
<td class=\"box\" align=\"center\" width=\"5%\">Hold</td>
<td class=\"box\" align=\"center\" width=\"20%\">Ugedag</td>
<td class=\"box\" align=\"center\" width=\"15%\">Sted</td>
</tr>";

$res = mysql_query($sqlab, $db);
while($movie = mysql_fetch_object ($res)) { ?>
<tr <? if ($options->hover=="ja") { print "onmouseover=\"this.bgColor='$options->hovercolor1'\""
."onMouseOut=\"this.bgColor='$options->hovercolor2'\""; } ?>>
<TD align="left"><? echo "<a href=javascript:detail('detail.php?id=$movie->id')>&nbsp;$movie->sportsgren</a>"; ?></TD>
<td align="center"><? echo "$movie->titel"; ?></td>
<td align="center"><? echo "$movie->hold"; ?></td>
<td align="center"><? echo "$movie->ugedag"; ?></td>
<TD align="center"><? echo "$movie->sted"; ?></TD></tr>
<? } echo "</TABLE></center>";
}

Ich hätte gedacht, dass jetzt in der Tabelle Sportarten im Feld sportart nach $currentSportart also der Sportart die man in der URL definiert hat gesucht wird... (oder nicht?)

Ich glaube ich hab irgendetwas falsch gemacht, weiss aber nicht was...
Ok, vielen Dank schonmal, cu Bjarne
Top
PMEmail Poster
Top
 
Josh
#4 Geschrieben am: Di 13.07.2004, 23:19 (+01:31)
Report PostQuote Post

AyomRank 9
Group Icon 2 Gruppe: Moderator

Gruppe: Moderator
Beiträge: 2169
Mitglied seit: 19.10.2003


CODE
foreach($sportarten as $currentSportart);


erstmal hast du den foreach falsch verstanden. dies ist eine schleife, also musst du für jeden schleifendurchgang aktionen durchführen können. dies tust du in den dazugehörigen {}:

foreach($sportarten as $currentSportart)
{
// tue für jeden wert in $sportarten irgendetwas
}

so wie es in deinem code ist, wird einfach jeder wert aus $sportarten der variablen $currentSportart zugewiesen, ohne dass in einem {} body irgendwas geschehen würde. deshalb ist natürlich auch der schlussendliche wert von $currentSportart der letzte wert von $sportarten. kapiert?

CODE
if ($sportart=$currentSportart) {echo"$currentSportart"; } else {...}


dies ist ein typischer anfängerfehler. der operator "=" weist nur werte zu, es ist KEIN vergleichsoperator! um werte zu vergleichen brauchst du "==" ! in deinem falle wird das resultat immer true sein, denn php versucht, der variable $sportart den inhalt von $currentSportart zuzuweisen, was ja natürlich immer funktioniert. und da in php (wie auch in c) alles true ist, was nicht 0 ist, ist die bedingung hier immer true. also, immer "==" verwenden!!! smile.gif
Top
PMEmail PosterUsers WebsiteICQ
Top
 
name
#5 Geschrieben am: Di 13.07.2004, 23:46 (+00:27)
Report PostQuote Post

AyomRank 2
****

Gruppe: Member (aktiv)
Beiträge: 19
Mitglied seit: 10.07.2004


Ok...
aber was muss ich jetzt machen, damit das so funktioniert wie ich meine?
Also: wenn man in den InternetExplorer die index.php?sportart=aerobic&wochentag=montag eintippt, möchte ich, dass automatisch in der mySQL Datenbank "DAN" in der Tabelle "Sportarten" im Feld "Sportart" nach aerobic gesucht wird und in der selben Datenbank und Tabelle aber dem Feld "Wochentag" nach montag gesucht wird und die Einträge inklusiver andere Felder dann in der index.php-Seite gelistet werden. Wie man das mit dem auflisten macht, habe ich bereits... nur muss ich das mit det URL irgendwie hinkriegen...

Oder geht das mit dem was du mir schon gegeben hast? Ich habe das auf jeden Fall leider noch nicht hingekriegt.

cu
Bjarne
Top
PMEmail Poster
Top
 

#6 Geschrieben am: Mi 14.07.2004, 00:18 (+00:31)
Report PostQuote Post

AyomRank 10
Group Icon 2 Gruppe: Admin

Gruppe: Admin
Beiträge: 5270
Mitglied seit: 25.09.2003


Irgendwie mag ich deinen Code nicht lesen, sry, aber wie wärs so:

QUOTE
lso: wenn man in den InternetExplorer die index.php?sportart=aerobic&wochentag=montag eintippt, möchte ich, dass automatisch in der mySQL Datenbank "DAN" in der Tabelle "Sportarten" im Feld "Sportart" nach aerobic gesucht wird und in der selben Datenbank und Tabelle aber dem Feld "Wochentag" nach montag gesucht

1. Superglobale Variablen, alles was über die Url kommt ist in $_GET bzw $_REQUEST
CODE

$r = $_REQUEST; //ich bin faul.

2. Querysting für sql Abfrage:
CODE
$q = "select * from sportarten";

3. arbeite Variablen ein:
CODE

$where = " where ";
if (isset($r['sportart']) && $r['sportart'] != "" ) {
   $where .= "sportart='{$r['sportart']}' ";
}
if (isset($r['wochentag']) && $r['wochentag'] != "" ) {
   if (strlen($where)>7)
       $where .= "and ";
  $where .= "wochentag='{$r['wochentag']}' ";
}
if (strlen($where)>7)
   $q .= $where;

// stanard sortiereung wird angehängt
$q .= "order by Date DESC";

$my = mysql_query($q) or die(mysql_error());

So hast du ohne Eingabe alle Daten und mit Eingabe jeweis die Gewünschten.
Kein Gewähr.

Top
PMEmail PosterUsers Website
Top
 
name
#7 Geschrieben am: Mi 14.07.2004, 09:48 (+09:29)
Report PostQuote Post

AyomRank 2
****

Gruppe: Member (aktiv)
Beiträge: 19
Mitglied seit: 10.07.2004


JIHA! Es klappt wunderbar! biggrin.gif
Richtig genial! YES smile.gif
Vielen, vielen Dank, das ist echt genial nett!
Hehe,
cu
Bjarne
Top
PMEmail Poster
Top
 
Thema wird von 0 Benutzer(n) gelesen (0 Gäste und 0 anonyme Benutzer)
0 Mitglieder:

Topic Options Reply to this topicStart new topicStart Poll

 


> Ähnliche Themen
Biete natürliche Links aus Frage-Antwort-Portalen Ferdinand 1033 5 Mi 16.04.2014, 07:55
[B] Biete Linkaufbau: Basis- und hochwertige Links shiney 198 0 Do 10.04.2014, 15:12
Starke, natürliche Links durch Linkbaits David-Clickport 401 0 Di 4.02.2014, 13:40
Optimierung komplexer mySQL-Query DaSoMa 552 10 Fr 31.01.2014, 18:55
Starke, natürliche Links durch Linkbait-Kampagne David-Clickport 557 3 Mo 20.01.2014, 12:54
[B] Biete Linkaufbau: Basis- und hochwertige Links shiney 876 0 Di 7.01.2014, 17:35
Gratis Website-Links setzen FilOO 9049 39 Mo 6.01.2014, 14:28
Biete Linkaufbau Basis bis hochwertige Links shiney 474 0 Do 12.12.2013, 10:30
Links von eigenen Portalen w778163 500 0 Di 10.12.2013, 20:32


Günstig werben auf Ayom:
Kontakt: ayom@small-n-tall.com



Anzeigen

Textlinks kaufen oder anbieten



[Hier werben]

 

Statistiken:
Top 10 Autoren heute
Top 50 Autoren insgesamt