Komm mit dem Such Php Tutorial net klar

mageDSA

Mitglied
Dieses Tutorial


Kann mir das einer von Euch sagen wie was ich wo einfügen muss.

Was kommt in welche Datei ?

Das Formular also $eintrag im Forumular ist kein Problem
Nur der Php Teil.

Bitte helft einem verwirrten Geist

Danke

:)
 
Also ich verstehe leider deine Frage nicht richtig. Bitte formuliere sie mal um oder sage mir genau was du suchst oder nicht weisst.

PS: Ich habe mir das Tutorial gerade mal angesehen. Ist nicht schlecht, aber IMHO etwas unflexibel. Wenn du absolute dynamik willst, dann must du mit dem mysql object arbeiten.

Aber stell mir bitte nochmal die Frage ... dann klappt das schon :p
 
nochmal

Hallo Fatility


Sorry das Du meinen Text net verstanden hast.

Ok here we go.

Ich hab ein Formular. Besser gesagt ein Suchformular.
Ich will da auf suchen drücken (submit bla bla).
eine andere Seite wird aufgerufen die sofort zu der Daten
bank connectet und meine 2 Tabellen abfragt (link,beschreibung)
Ok
Also ich hab da net so die Ahnung von wie ich das anstellen soll
ok sofort auf http://www.tutorials.de
Dann mal auf suchen geklickt und gesucht.
Und sogar fündig geworden.

Titel Suche durch eine Datenbank /Tutorial/PHP Abteilung.



Hier der Link

Ok ich lese mir das alles durch hab jetzt schon mehr Ahnung ok.

Das ganze mal mit Copy&Paste bei mir lokal eingefügt.

Und dann upgeloadet und ich bekommt nur Fehler.


Im Prinzip will ich nur folgendes:

Ein Forumlar (hab ich)
eine Php Datei die mir die Suchausgaben vom Formular übergibt
zur Datenbank connectet die Tabelle abfragt und den abgefragten Inhalt (gefundenen) zurück und ausgibt.


Hoffe Du kannst meinen Text nachvollziehen.

Danke für Deine Muhe

:)
 
OK jetzt blicke ich es schon mehr :D
Kannst du mir bitte noch das formular hier rein posten und Struktur deine Datenbank? Wenn möglich noch die Fehlermeldung!

Grüße
Fati
 
Formular hier hab ich in ner Index Datei aber dürfte kein Prob sein.

FORMULAR
<form action="suchen.php" method="post">
Link Suche<input type="text" name="anfrage" value="<?php $eingabe_array = explode(' ',$eingabe); ?>">
<input type="submit" value="Suchen">
</form>






SUCHEN FORMULAR

<body bgcolor="#4F4A87">

<?php
$connection = mysql_connect("localhost","geheim.at","Geheim") or die ("Konnte Verbindung zur Datenbank nicht herstellen!");
mysql_select_db("magedsa-at") or die ("Die Datenbank konnte nicht ausgewählt werden!");
$query = 'select * from table ao '; //anfang der abfrage
for($i=0; $i<count($eingabe); $i++){
$query .= "(news_text like '%".$eingabe[$i]."%' or ueberschrift like '%".$eingabe[$i]."%' or autor like '%".$eingabe[$i]."%')";
//ob der $i-te begriff in einer der drei spalten enthalten ist (mit oder verknüpft)
if($i<count($eingabe)-1){
$query .= ' and ';
}
//verknüpfung der einzelnen worte mit und
}
?>



<?php
$result = mysql_db_query('ao',$query); //anfrage an die datenbank
//$link = mysql_num_rows($result); //anzahl der zurückgegebenen datensätze
$num_news = mysql_num_rows($result); //anzahl der zurückgegebenen datensätze Zeile 29

for($i=0; $i<$num_news; $i++){
$id = mysql_result($result,$i,'id'); //abfrage der news_id von der datenbank
$link = mysql_result($result,$i,'link'); //abfrage der ueberschift
$beschreibung = mysql_result($result,$i,'beschreibung'); //abfrage der news
$first = array_slice(explode(' ', $link), 0, 40); //explode teilt den string wieder an der ' ' und array_slice erstellt einen neuen array mit den ersten 40 elementen = worten der news
$kurze_news = join(' ', $first) . '...&nbsp;'; //join verbindet die elemente des arrays wieder zu einem string. am ende werden noch drei punkte angehängt...
echo '<a href="show_news.php?news_id='.$id.'">'.$beschreibung.'</a><br>'; //links auf die seite show_news.php
echo $kurze_news.'<br><br>'; //der 40 worte lange anfang des newstextes
}
?>


Und die Fehlermeldung:

Supplied argument is not a valid MySQL result resource on line 30

hier

$num_news = mysql_num_rows($result); //anzahl der zurückgegebenen datensätze Zeile 30


Also ich check gar nix mehr und mir platzt gleich die Birne

Bitte hilf mir

Danke Dir

:)
 
Also ich habs nicht gelöst ... ich hatte schon bei ein paar Proggs das selbe problem, aber hier bekomme ich es nicht weg ^^''
Ich brauch unbedingt eine Suchfunktion!
 
Eine Suchfunktion kann mehr oder weniger komplex sein, es kommt darauf an nach welchen Feldern du suchen willst.

Hast du zum Beispiel ein Formular in welchen du nach Namen suchen kannst hast du keine Probleme mit dem SQL Satement!

Hast du aber Optionen zu anchecken, mehrere Felder usw. wird es komplexer.

Ich müßte von dir wissen wonach du succhen willst und wie das Formular aufgebaut ist, dann kann ich dir helfen!
 
Das ist fürs erste nur ein einfaches Suchscrip um Namen zu suchen, damit man sich nicht auf vercshiedenen Pages durchmogeln muss im zu finden was man sucht. Z.B. habe ich für ein Online spiel eine Itemliste angelegt ... wenn man ein Item sucht, welches nicht mehr gebraucht wird, es aber ca. 10 Seiten gibt weiß man ja nicht wo es ist, und da soll erst mal einfach nur der Name gesucht werden!

Das script von mir ist so aufgebaut:

Das Formular:
Code:
<html>

<head>
<title>Search</title>
<link rel="stylesheet" href="http://www.anime-dimension.de/style.css" type="text/css">
<script src="http://www.anime-dimension.de/link2.js" language="Javascript"></script>
</head>

<body id="body">

<form action="test2.php" method="post"> 
Item: <input type="text" name="suche" value="<?php $eingabe_array = explode(' ',$eingabe); ?>"> 
<input type="submit" value="Suchen"> 
</form> 



</body>
Ein einfaches "ein Textfeld" Suchformular
//-----------------

das Script/die ausgabe:
Code:
<html>

<head>
<title>User</title>
<link rel="stylesheet" href="http://www.anime-dimension.de/style.css" type="text/css">
<script src="http://www.anime-dimension.de/link2.js" language="Javascript"></script>
</head>

<body id="body">


<?php 
$connection = mysql_connect("localhost") or die ("Konnte Verbindung zur Datenbank nicht herstellen!"); 
mysql_select_db("dbfight") or die ("Die Datenbank konnte nicht ausgewählt werden!"); 
$query = "select * from table items "; //anfang der abfrage 
for($i=0; $i<count($eingabe); $i++){ 
$query .= "(name like '%".$eingabe[$i]."%' or beschreibung like '%".$eingabe[$i]."%' or datum like '%".$eingabe[$i]."%')"; 
//ob der $i-te begriff in einer der drei spalten enthalten ist (mit oder verknüpft) 
if($i<count($eingabe)-1){ 
$query .= ' and '; 
} 
//verknüpfung der einzelnen worte mit und 
}
?> 



<?php 
$result = mysql_db_query('items',$query); //anfrage an die datenbank 
//$link = mysql_num_rows($result); //anzahl der zurückgegebenen datensätze 
$num_news = mysql_num_rows($result); //anzahl der zurückgegebenen datensätze Zeile 29 

for($i=0; $i<$num_news; $i++){ 
$id = mysql_result($result,$i,'id'); //abfrage der news_id von der datenbank 
$name = mysql_result($result,$i,'name'); //abfrage der ueberschift 
$beschreibung = mysql_result($result,$i,'beschreibung'); //abfrage der news 
$first = array_slice(explode(' ', $link), 0, 40); //explode teilt den string wieder an der ' ' und array_slice erstellt einen neuen array mit den ersten 40 elementen = worten der news 
$kurze_news = join(' ', $first) . '... '; //join verbindet die elemente des arrays wieder zu einem string. am ende werden noch drei punkte angehängt... 
echo '<a href="show_news.php?news_id='.$id.'">'.$beschreibung.'</a><br>'; //links auf die seite show_news.php 
echo $kurze_news.'<br><br>'; //der 40 worte lange anfang des newstextes 
} 
?> 




<? include("footer.php"); ?>



</body>
//-------------------
Wie schon von einem Vorgänger hier gepostet! Dies hier ist fast mit dem anderen Identisch und baut so ziemlich 100%ig auf das Turorial von "bad taste" auf (da ich selber zum erstem mal ein mysql suchscript progge) Leider kommt egal was ich tu immer dieser Fehler:

Warning: Supplied argument is not a valid MySQL result resource in c:\apache\htdocs\dbleague\test2.php on line 31

Und dieser Tritt genau an der gleichen stelle auf wie es hier auch schon beschrieben wurde:
$num_news = mysql_num_rows($result);

Dieses Script ist von mir so geändert worden das es an meine Datenbank passt. Allerdings tritt dieser Fehler bei mir auch auf, wenn ich das script einfach in meine Seite kopiere und genau die gleiche Datenbank wie im Tutorial erstelle.

Verstehst mein Problem? ^^
 
Zurück