php script wird nicht angezeigt

Gesperrt
JulianH.
Beiträge: 71
Registriert: Mo 10. Mai 2004, 09:41
Kontaktdaten:

php script wird nicht angezeigt

Beitrag von JulianH. »

Hi Leuts,

ich habe folgendes Prob:
Ich habe ein eine Stichwortsuche in PHP gebaut mit einer Datenbank im Hintergrund......das funzt soweit auch alles ganz prima....

Nun möchte ich die ganze Sache aber in Contenido implementieren...

Code: Alles auswählen

<html>
<head>
<title>Suche1</title>
</head>

<body>

<div align="center">	
<table border="0" width="500">
  <tr>
	<td>
	<b><u>Bitte geben Sie ein Stichwort zum Suchen ein:</u></b><hr><br><br>
  	<form action="Stichwortsuche.php" method="post"><br>
		<input name="word"><br><br>
		Wählen Sie ob Sie in verwendeten Zutaten, nach Sprache <br>oder direkt nach Rezepten suchen wollen:<br>
		<input type="radio" name="art" value="rezept" checked>nach Rezept suchen<br>
		<input type="radio" name="art" value="zutat">nach Zutaten suchen<br>
		<input type="radio" name="art" value="sprache">nach Sprache suchen<br><br>
		<input type="submit" name="search">
		<input type="reset">
  		</form>
<br><br>


<?php


if ($search)     							//Überprüfung ob "Submit"-Button gedrückt wurde
{

	if ($word=="")							//Überprüfung ob eine Eingabe getätigt wurde
	{
	echo "<b><u>Suche hatte keinen Erfolg</u></b><hr><br><br>";
	echo "Bitte geben Sie ein Stichwort ein";
	exit;
	}

$db = mysql_connect();							//Verbindung zu MySQL hergestellt
							//Suchabfrage  
$sql= 	"SELECT rezept.rzp_name,keyword.kwd_text 			
	FROM keyword as keyword, 
	rezept as rezept,
	rezept_hat_keyword as rezept_hat_keyword 
	WHERE keyword.kwd_text like '%$word%'
	and keyword.kwd_id=rezept_hat_keyword.rhk_kwdid
	and rezept_hat_keyword.rhk_rzpid=rezept.rzp_id";


if ($art == rezept)							//Überprüfung welche Auswahl getroffen wurde
{
	$sql .=" AND keyword.kwd_art like '%r%'";			// und Erweiterung der Suchabfrage
}
else if ($art == zutat)
{
	$sql .=" AND keyword.kwd_art like '%z%'";
}
else if ($art == sprache)
{
	$sql .=" AND keyword.kwd_art like '%s%'";
}


$res= mysql_db_query("kochbuch", $sql);					//Verbindung zur DB Kochbuch + Suchabfrage ausführen
$num= mysql_num_rows($res);						//Überprüfung der Anzahl der Suchergebnisse (Zeilen)


if ($num == 0) 								//wenn kein Ergebnis vorhanden ist - Nachricht
{
	echo "<b><u>Suche hatte keinen Erfolg</u></b><hr><br><br>";
	echo "Das Wort ist nicht vorhanden";	
}
else echo "<b><u>Suche erfolgreich</u></b><hr><br><br>";		//ansonsten Ausgabe - Erfolgreich

for ($i=0; $i<$num; $i++)						//Ausgabe der Ergebnisse mit einer Schleife
   {									// im Falle mehrerer Ergebisse
      $one = mysql_result($res, $i, "keyword.kwd_text");
      $two= mysql_result($res, $i, "rezept.rzp_name");

      echo "Ihr gesuchtes Wort: <b>$one</b><br>";
      echo "wurde in Rezept: <b>$two</b> gefunden<br><br>";
   }

} 									//if_search Schleife ende

?>


	</td>
  </tr>
</table>
</div>
</body>
</html>
diesen Code habe ich in das Input-Feld in einem Modul gepackt...
Im Ausgabe-Feld ist nur der Container.....

Wenn ich nun unter Artikel auf diesen klicke, kann ich in der Vorschau nichts sehen....ebenso im Editor nicht....

In der Konfiguration (immernoch im Artikel) sieht man es aber.....

Ich weis jetzt einfach nciht wie ich mein PHP Script richtig einbinde, denn ich bin mir sicher das ich etwas falsch gemacht hab :wink:
Wie muss ich also den Code aufteilen damit ich mir die ganze Sache anzeigen lassen kann??


grüße
JulianH
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo »

ähm - hast du mal die Doku gelesen?

- in Module packt man keine Container.
- Die Eingabe dient zur Vorkonfiguration der Module.
- Die Ausgabe enthält das, was auf der Website angezeigt werden soll.
JulianH.
Beiträge: 71
Registriert: Mo 10. Mai 2004, 09:41
Kontaktdaten:

Beitrag von JulianH. »

Die Doku hab ich schon gelesen, bin nur nicht alzu sher daraus schlau geworden.....

Was gehört den zur Vorkonfiguration?
Sprich: was (vom Code) muss in die Eingabe und was muss in die Ausgabe??

wär für Hilfe sehr dankbar..
grüße
JulianH
dekurio
Beiträge: 18
Registriert: So 25. Jan 2004, 17:35
Wohnort: Isen, Bavaria, Germany
Kontaktdaten:

Beitrag von dekurio »

Hi Julian,

wenn ich deinen Code richtig interpretiere würde ich da so vorgehen:

Der HTML-Code gehört in den Seiten-Content, sprich in einen Artikel, allerdings ohne einleitende und abschließende Tags (HTML, TITEL usw.). Dieser Bereich wird von Contenido erstellt. Benötigst du einen gesonderten Seitentitel für die Seite, kannst du diesen in den Artikeleigenschaften festlegen.

Den PHP-Teil packst du, inklusive einleitendem und abschließendem PHP-Tag in den Output eines Modules.

Der aufrufende Container gehört in ein Layout, welches wiederrum von einem Template angesprochen werden muss. Nicht in den Output eines Moduls.

Ob das allerdings mit dem Aufruf des Moduls für die von dir verwendete Form so funktioniert, wie du das angegeben hast, wage ich zu bezweifeln. Allerdings räume ich ein, dass ich hier noch keine Erfahrungen sammlen konnte. Vielleicht kann dir da ja wer anderes weiter helfen.

HAPPY NETTING,

Dekurio
"Die Menschen stolpern nicht über Berge, sondern über Maulwurfshügel"
(Konfuzius)
JulianH.
Beiträge: 71
Registriert: Mo 10. Mai 2004, 09:41
Kontaktdaten:

Beitrag von JulianH. »

danke :oops: werds mal ausprobieren

cu

juli
Beleuchtfix
Beiträge: 1082
Registriert: Di 22. Jul 2003, 10:14
Wohnort: Hessen
Kontaktdaten:

Beitrag von Beleuchtfix »

Wenn ich das Programm richtig verstanden habe, kommt der ganze Teil in den Output. Der Input Teil bleibt leer (Input ist dafür da, um z.B. bei der Erstellung der Seite etwas auszuwählen (welches Navigationselement etc.)) Hier würdest Du etwas eintragen wenn du z.B. getrennte Seiten für Rezepte oder Sprache abfrage erstellen würdest und dies nicht den Anwender machen lassen willst. Anstatt dann mehrere Module zu programmieren kommt diese Abfrage.

Also: Neues Modul
Name = Rezeptsuche
Beschreibung = ........
Input = leer

Output=

Code: Alles auswählen

<div align="center">    
<table border="0" width="500"> 
  <tr> 
   <td> 
   <b><u>Bitte geben Sie ein Stichwort zum Suchen ein:</u></b><hr><br><br> 
     <form action="Stichwortsuche.php" method="post"><br> 
      <input name="word"><br><br> 
      Wählen Sie ob Sie in verwendeten Zutaten, nach Sprache <br>oder direkt nach Rezepten suchen wollen:<br> 
      <input type="radio" name="art" value="rezept" checked>nach Rezept suchen<br> 
      <input type="radio" name="art" value="zutat">nach Zutaten suchen<br> 
      <input type="radio" name="art" value="sprache">nach Sprache suchen<br><br> 
      <input type="submit" name="search"> 
      <input type="reset"> 
        </form> 
<br><br> 


<?php 


if ($search)                          //Überprüfung ob "Submit"-Button gedrückt wurde 
{ 

   if ($word=="")                     //Überprüfung ob eine Eingabe getätigt wurde 
   { 
   echo "<b><u>Suche hatte keinen Erfolg</u></b><hr><br><br>"; 
   echo "Bitte geben Sie ein Stichwort ein"; 
   exit; 
   } 

$db = mysql_connect();                     //Verbindung zu MySQL hergestellt 
                     //Suchabfrage  
$sql=    "SELECT rezept.rzp_name,keyword.kwd_text           
   FROM keyword as keyword, 
   rezept as rezept, 
   rezept_hat_keyword as rezept_hat_keyword 
   WHERE keyword.kwd_text like '%$word%' 
   and keyword.kwd_id=rezept_hat_keyword.rhk_kwdid 
   and rezept_hat_keyword.rhk_rzpid=rezept.rzp_id"; 


if ($art == rezept)                     //Überprüfung welche Auswahl getroffen wurde 
{ 
   $sql .=" AND keyword.kwd_art like '%r%'";         // und Erweiterung der Suchabfrage 
} 
else if ($art == zutat) 
{ 
   $sql .=" AND keyword.kwd_art like '%z%'"; 
} 
else if ($art == sprache) 
{ 
   $sql .=" AND keyword.kwd_art like '%s%'"; 
} 


$res= mysql_db_query("kochbuch", $sql);               //Verbindung zur DB Kochbuch + Suchabfrage ausführen 
$num= mysql_num_rows($res);                  //Überprüfung der Anzahl der Suchergebnisse (Zeilen) 


if ($num == 0)                         //wenn kein Ergebnis vorhanden ist - Nachricht 
{ 
   echo "<b><u>Suche hatte keinen Erfolg</u></b><hr><br><br>"; 
   echo "Das Wort ist nicht vorhanden";    
} 
else echo "<b><u>Suche erfolgreich</u></b><hr><br><br>";      //ansonsten Ausgabe - Erfolgreich 

for ($i=0; $i<$num; $i++)                  //Ausgabe der Ergebnisse mit einer Schleife 
   {                           // im Falle mehrerer Ergebisse 
      $one = mysql_result($res, $i, "keyword.kwd_text"); 
      $two= mysql_result($res, $i, "rezept.rzp_name"); 

      echo "Ihr gesuchtes Wort: <b>$one</b><br>"; 
      echo "wurde in Rezept: <b>$two</b> gefunden<br><br>"; 
   } 

}                            //if_search Schleife ende 

?> 


   </td> 
  </tr> 
</table> 
</div> 
  • Dann erstelle ein neues Template, und benutze das Layout, das dir zursagt.
  • An der gewünschten Stelle im Layout fügst du in den entsprechenden Container dieses Rezeptsuche Modul ein.
  • Jetzt mußt du noch eine neue Seite erstellen, die dieses Templare benutzt!
Wenn du Gück hast, klappt das dann. :D
Viel Erfolg Florian
Übrigens gibt es auch schon ein fertiges Volltext Suchmodul http://www.contenido.de/front_dev/index ... &idart=163 das durchsucht dann allerdings die gesamte Site und nicht nur die Rezepte.
JulianH.
Beiträge: 71
Registriert: Mo 10. Mai 2004, 09:41
Kontaktdaten:

Beitrag von JulianH. »

Hi Beleuchtefix....

erstma großes THX an euch beide...
coole Tips die mich schonmal ein Stückchen weiterbringen.
Die Volltextsuche bringt mir leider nix, aber das ist auch nicht so wichtig, mir gings nur darum wie/ob sich etwas ändert mit Contenido, wenn man mit PHP und einer Datenbank arbeitet...

Also ...ich setzt mich jetzt ran...und liefere dann wieder ein Statement wie es gelaufen ist..

stay tuned
Julian
JulianH.
Beiträge: 71
Registriert: Mo 10. Mai 2004, 09:41
Kontaktdaten:

Beitrag von JulianH. »

lol...geil......es geht....ich brauchte nur den Pfad zu ändern wenn das Script sich selbst aufruft......

Hammergeile Sache das ihr so schnell und korregt helft....
Weiter so + have fun!!! :wink:

grüße
Julian
dekurio
Beiträge: 18
Registriert: So 25. Jan 2004, 17:35
Wohnort: Isen, Bavaria, Germany
Kontaktdaten:

Beitrag von dekurio »

Freut mich, dass wir dir helfen konnten.

HAPPY NETTING,

Dekurio
"Die Menschen stolpern nicht über Berge, sondern über Maulwurfshügel"
(Konfuzius)
Gesperrt