Profil | Mitglieder | Registrieren | Start | Suche


PHP-Support.de » Programmierung » PHP & MySQL » nach dynamischen urls suchen    » Hallo Gast [Login | Registrieren]

Neues Thema | Antworten   

Autor Beitrag
anja-alsdorf
Mitglied
Neuling


Dabei seit: 22.08.2018
Herkunft: keine Angabe
Posts: 9
     nach dynamischen urls suchen Zitat | Bearbeiten

Bei einer website bei der Heimtiere vermittelt werden, können user neue Tierprofilseiten erstellen,
diese Profilseiten sind dynamisch und werden in der Datenbank nur als name, id, etc.
nicht aber mit dem zugehörigen Pfad bzw. url gespeichert. Jetzt soll die website um eine Suchfunktion erweitert werden.
Als Sucheingabe soll die Beschreibung bzw. der zugehörige Name der url dienen.
Nach erfolgreicher Suche soll der/die Suchtreffer "url" als klickbarer link ausgegeben werden.

Hat jemand eine Idee, wie der Code für die Suche aussehen könnte?
Da die urls nicht aus der Datenbank auszulesen sind stehe ich etwas auf dem Schlauch.



Ausgabe der Tierprofilseiten als Liste:

//Auszug aus .php:


if ($app->setting->multiple_profile_pages) {
require_once('snippet.class.php');
$g =& $_REQUEST['profile'];
$g = max(1, $g);
$g = min(count($profiles), $g);
$links = array();
for ($i = 0; $i < count($profiles); $i++) {
$title = htmlspecialchars(Snippet::snippet_text('profile_title', $profiles[$i]->id, '##bd##'));
if ($i == $g - 1)
$links[] = '<strong>' . $title . '</strong>';
else {
$params = array();
if ($i > 0)
$params = array('profile' => $i + 1);
$links[] = '<a href="' . htmlspecialchars($app->url(false, $params)) . '">' . $title . '</a>';
}
}
$smarty->assign('links', $links);
$profiles = array($profiles[$g - 1]);
$c = 1;
}



//Auszug aus .tpl:


<div class="table-scrollable">
<table align="left" border="1">
<td height="40">
<div style="height:100px;width:100px;overflow:auto;">
{if $links}
{foreach item=link from=$links}

{$link}<br>

{/foreach}
{/if}
</div>
</td>
</table>
</div>


22.08.2018, 13:51 Profil | PM | E-Mail  
Htaccess
Mitglied
Sehr guter User


Dabei seit: 22.08.2010
Herkunft: Deutschland
Posts: 683
      Zitat | Bearbeiten

Wie sieht denn der Link zu der Profilseite des Tieres aus? Denn irgendwie wird ja bestimmt, welcher Inhalt in das Smarty-Template geladen werden soll. So kann man dann zum Beispiel auch für die Suchfunktion die Links herausfinden.

Liebe Grüße,
Htaccess


25.08.2018, 17:40 Profil | PM | E-Mail  
anja-alsdorf
Mitglied
Neuling


Dabei seit: 22.08.2018
Herkunft: keine Angabe
Posts: 9
      Zitat | Bearbeiten

Oh super, hatte die Hoffnung schon aufgegeben, dass sich jemand zu meinem Problem äußert! :-)
Die Links zu den Profilseiten sehen z.B. folgendermaßen aus:

index.php?grid=19
index.php?grid=20
index.php?grid=21
index.php?grid=34

Die Zahl am Ende ist die ID der Profilseite (grid). In der Tabelle Grid steht neben der ID auch der Name nach dem ja auch gesucht werden soll, leider aber keine url!
Man findet die oben genannten Links auch wenn man sich den Quelltext im Browser anzeigen lässt..
Ich hoffe, ich bekomme nochmals eine Rückmeldung. :-D






29.08.2018, 23:04 Profil | PM | E-Mail  
Htaccess
Mitglied
Sehr guter User


Dabei seit: 22.08.2010
Herkunft: Deutschland
Posts: 683
      Zitat | Bearbeiten

Du müsstest die einen SQL Befehl schreiben mit einem JOIN der nach der Eingabe in den Beschreibungen etc. sucht. So behaltest du auch die id der Links.


02.09.2018, 20:29 Profil | PM | E-Mail  
anja-alsdorf
Mitglied
Neuling


Dabei seit: 22.08.2018
Herkunft: keine Angabe
Posts: 9
      Zitat | Bearbeiten

Danke für die rasche Antwort!
Der Join Befehl ist ne gute Sache, allerdings taucht die URL bzw. der Link in keiner Tabelle der Datenbank auf. ID und Name kann ich aus den Tabellen auslesen, das sieht bei mir unprofessioneller weise so aus:

$name= $_POST['name'];
$query = mysql_query("SELECT *
FROM mp_grids
WHERE name = '$name'");

while($line=mysql_fetch_object($query))



echo "<table align=\"center\" bgcolor=\"#999966\" width=\"200px\" border=\"1\" cellspacing=\"0\" cellpadding=\"5\">

<tr>


<td align=\center\"> $line->id </td>
<td align=\center\"> $line->name </td>

</table>

ID und Name werden mir also angezeigt, aber NATÜRLICH nicht der generierte Link!
Ich weiß einfach nicht, wie ich an den ran komme!!??
Htaccess, hast du noch ne Idee, oder sonst wer?






05.09.2018, 10:02 Profil | PM | E-Mail  
Andavos
Administrator
Foren-Gott


Dabei seit: 30.11.2003
Herkunft:
Posts: 6251
      Zitat | Bearbeiten

Wie wäre es einfach mit:

echo "index.php?grid=".$line->id;




www.php-einfach.de, PHP lernen leicht gemacht
www.webhosterwissen.de, Webhosting-Vergleich



05.09.2018, 10:24 Profil | PM | E-Mail  
anja-alsdorf
Mitglied
Neuling


Dabei seit: 22.08.2018
Herkunft: keine Angabe
Posts: 9
      Zitat | Bearbeiten

Guter Ansatz!
Aber irgendwas stimmt noch nicht, das Ergebnis meiner Suchanfrage sieht nun so aus:

index.php?grid=8index.php?grid=10index.php?grid=11index.php?grid=12index.php?grid=14

wenn mir die einzelenen Ergebnisse jetzt noch untereinander und als "klickbarer Link angezeigt werden, bin ich glücklich!

Danke schon mal!


05.09.2018, 11:15 Profil | PM | E-Mail  
Andavos
Administrator
Foren-Gott


Dabei seit: 30.11.2003
Herkunft:
Posts: 6251
      Zitat | Bearbeiten

Du musst natürlich entsprechendes HTML hinzufügen:

$url = "index.php?grid=".$line->id;
echo "<a href=\"$url\">$url</a><br>";



www.php-einfach.de, PHP lernen leicht gemacht
www.webhosterwissen.de, Webhosting-Vergleich



06.09.2018, 09:19 Profil | PM | E-Mail  
anja-alsdorf
Mitglied
Neuling


Dabei seit: 22.08.2018
Herkunft: keine Angabe
Posts: 9
      Zitat | Bearbeiten

Super!
Jetzt wird mir nach der Sucheingabe immer der passende Link angezeigt!
Teilweise müssten aber mehrere Links angezeigt werden.
Ich habe zum Beispiel zum Suchwort „Schäferhund“ 4 IDs, mir wird aber immer nur der Link mit der letzten ID angezeigt.
Wie kann ich mir alle IDs / Links (untereinander) anzeigen lassen?



09.09.2018, 00:46 Profil | PM | E-Mail  
anja-alsdorf
Mitglied
Neuling


Dabei seit: 22.08.2018
Herkunft: keine Angabe
Posts: 9
      Zitat | Bearbeiten

Hab's zunächst mit "for each" versucht, aber irgendwie funktioniert das nicht...
Kennt jemand ne Alternative?


14.09.2018, 00:04 Profil | PM | E-Mail  
Htaccess
Mitglied
Sehr guter User


Dabei seit: 22.08.2010
Herkunft: Deutschland
Posts: 683
      Zitat | Bearbeiten

Am besten könnten wir dir helfen, wenn wir den Quellcode sehen. Denn so ist eine Hilfe wohl kaum noch möglich.


14.09.2018, 21:45 Profil | PM | E-Mail  
anja-alsdorf
Mitglied
Neuling


Dabei seit: 22.08.2018
Herkunft: keine Angabe
Posts: 9
      Zitat | Bearbeiten

Sehr gerne!
Hier der Code-Auszug:


echo"
<table align=\"center\" background=\"logo.png\" width=\"400px\">
<br><br><br><br>
<td align=\"center\">
<FORM action=\"grid_list.php\" method=\"post\">
<input type=\"text\" name=\"name\" size=\"36\" value=\"$name\">
<input type=\"submit\" value=\"Absenden\">
</td>
</table>";

$name= $_POST['name'];
$query = mysql_query("SELECT *
FROM mp_grids
WHERE name = '$name'");

while($line=mysql_fetch_object($query))

$url = "index.php?grid=".$line->display_order;


echo "<a href=\"$url\">$name</a><b>";


Der gesuchte Name taucht in der Tabelle "name" öfters auf, es wird aber immer nur der letzte Eintrag der Tabelle "display_order" in meinen Ergebnislink eingebaut.
Ich hoffe Ihr versteht was ich meine!?
Wie schaffe ich es, dass mir alle passenden Ergebnislinks angezeigt werden?
Ist "for each" hier das Stichwort? Wenn ja, habe ich etwas falsche gemacht.



18.09.2018, 13:21 Profil | PM | E-Mail  
DingsDaBums
Mitglied
Exzellenter User


Dabei seit: 12.09.2010
Herkunft: keine Angabe
Posts: 2394
      Zitat | Bearbeiten

Es fehlen die geschweiften Klammern bei deiner While-Schleife, die das umfassen, was für jeden Eintrag einfach asugeführt werden soll.


Schau mal bei meinem Projekt vorbei. Vielleicht ist das ja was für dich MyStartPanel - Deine persönliche Startseite mit deinen Favoriten
Auf der Suche nach einem guten Vokabeltrainer? Vokabeltrainer Cramfire - Schnell und effektiv Vokabeln lernen
18.09.2018, 17:31 Profil | PM | E-Mail  
anja-alsdorf
Mitglied
Neuling


Dabei seit: 22.08.2018
Herkunft: keine Angabe
Posts: 9
      Zitat | Bearbeiten

Da bekomme ich immer nenn Syntax Fehler angezeigt.. Wo müssen die geschweiften Klammern denn genau hin?
Kannst du die in meinen Script Ausschnitt einbauen und nochmals posten?


19.09.2018, 00:55 Profil | PM | E-Mail  
DingsDaBums
Mitglied
Exzellenter User


Dabei seit: 12.09.2010
Herkunft: keine Angabe
Posts: 2394
      Zitat | Bearbeiten

[quote]Orginal von anja-alsdorf
Da bekomme ich immer nenn Syntax Fehler angezeigt.. Wo müssen die geschweiften Klammern denn genau hin?
Kannst du die in meinen Script Ausschnitt einbauen und nochmals posten?
[/quote]

Besser wäre es offensichtlich, wenn du dir lieber die While-Schleife grundlegend nochmal anschaust:
https://www.php-einfach.de/php-tutorial/php-schleifen/

Dort wird das genauer beschrieben, wie eine While-Schleife aufgebaut ist.


Schau mal bei meinem Projekt vorbei. Vielleicht ist das ja was für dich MyStartPanel - Deine persönliche Startseite mit deinen Favoriten
Auf der Suche nach einem guten Vokabeltrainer? Vokabeltrainer Cramfire - Schnell und effektiv Vokabeln lernen
19.09.2018, 12:46 Profil | PM | E-Mail  
anja-alsdorf
Mitglied
Neuling


Dabei seit: 22.08.2018
Herkunft: keine Angabe
Posts: 9
      Zitat | Bearbeiten

Super, es funktioniert!!
Vielen lieben Dank!


20.09.2018, 16:53 Profil | PM | E-Mail  
Seiten (1):  1 
PHP-Support.de » Programmierung » PHP & MySQL » nach dynamischen urls suchen   

Neues Thema | Antworten   


Powered by Command Board 1.0 - Beta 2.0 © 2004-08 PHP-Einfach | Impressum | Datenschutz