xXxPeterPanxXx
Neues Mitglied
Hi @ all,
nachdem meine Job Anfrage leider unbeantwortet geblieben ist. Habe ich es nochmal versucht meine Suchfunktion auf mysqli umzustellen, jedoch folgt eine Fehlermeldung nach der anderen:sad:.
An der momentanen komm ich nicht weiter, sie lautet:
Fatal error: Call to a member function bind_param() on a non-object in /is/htdocs/wp1158326_JHB43K6EP5/www/coder/suche.php on line 94
Die besagte Zeile ist diese hier:
aus dieser Suchabfrage:
So hier kommt nochmal ganz viel Code der aber mit der Suchfunktion zussamenhängt:
Die Suchfunktion(suche.php)
Die erweiterte Suche:
Die Suchfunktion im Header:
Lieber etwas zu viel als zu wenig:mrgreen:.
Man wird sicherlich nicht alles brauchen.
Den Link zu Seite findet ihr in der Signatur, so wie Username und Password.
Danke im Vorraus!
MfG xXxPeterPanxXx
Hoffentlich ist die Datenbank jetzt nicht überfüllt.:mrgreen:
nachdem meine Job Anfrage leider unbeantwortet geblieben ist. Habe ich es nochmal versucht meine Suchfunktion auf mysqli umzustellen, jedoch folgt eine Fehlermeldung nach der anderen:sad:.
An der momentanen komm ich nicht weiter, sie lautet:
Fatal error: Call to a member function bind_param() on a non-object in /is/htdocs/wp1158326_JHB43K6EP5/www/coder/suche.php on line 94
Die besagte Zeile ist diese hier:
PHP:
$prepare_ein->bind_param('si', $_POST['key'], $_POST['cat']);
PHP:
$suche = "SELECT * FROM eintraege WHERE MATCH name, tutorial AGAINST ??";
$prepare_ein = $db->prepare($suche);
$prepare_ein->bind_param('si', $_POST['key'], $_POST['cat']);
$prepare_ein->execute();
$prepare_ein->bind_result($ein_id,$ein_name,$ein_name_url,$ein_kategorie,$ein_tutorial,$ein_time);
$prepare_ein->fetch();
$prepare_ein->close();
So hier kommt nochmal ganz viel Code der aber mit der Suchfunktion zussamenhängt:
Die Suchfunktion(suche.php)
Code:
<?php
require_once("config.inc.php");
$title = $_POST['key']. " - Suche";
include("header.php");
if(isset($_POST['key'])) {
if(isset($_POST['adv']))
{
if($_POST['titel'] == 1 && $_POST['text'] == 1)
{
$match = "name, tutorial";
$ausgabe ="Titel und Text";
}
elseif($_POST['titel'] == 1 && $_POST['text'] == 0) {
$match = "name";
$ausgabe ="Titel";
}
elseif($_POST['titel'] == 0 && $_POST['text'] == 1) {
$match = "tutorial";
$ausgabe = "Text";
}
else {
$match = "name, tutorial";
$ausgabe = "Titel und Text";
}
if($_POST['cat'] == 0)
{
$cat = "";
$kategorie = "allen Kategorien";
}
else
{
$cat = " AND kategorie = '".$_POST['cat']."'";
$kategorien = "SELECT * FROM kategorien WHERE id = ?";
$prepare = $db->prepare($kategorien);
$prepare->bind_param('i', $_POST['cat']);
$prepare->execute();
$prepare->bind_result($id,$name,$name_url);
$prepare->fetch();
$prepare->close();
$kategorie = $name;
}
$suche = "SELECT * FROM eintraege WHERE MATCH ? AGAINST ??";
$prepare_ein = $db->prepare($suche);
$prepare_ein->bind_param('ssi', $match, $_POST['key'], $cat);
$prepare_ein->execute();
$prepare_ein->bind_result($ein_id,$ein_name,$ein_name_url,$ein_kategorie,$ein_tutorial,$ein_time);
$prepare_ein->fetch();
$prepare_ein->close();
}
else
{
if(isset($_POST['cat']))
{
$cat = " AND kategorie = '".$_POST['cat']."'";
echo $cat;
$kategorien = "SELECT * FROM kategorien WHERE id = ?";
$prepare_3 = $db->prepare($kategorien);
$prepare_3->bind_param('i', $_POST['cat']);
$prepare_3->execute();
$prepare_3->bind_result($id,$name,$name_url);
$prepare_3->fetch();
$prepare_3->close();
$kategorie = $name;
}
else
{
$kategorie = "allen Kategorien";
$cat = "";
}
$ausgabe = "Titel und Text";
$suche = "SELECT * FROM eintraege WHERE MATCH name, tutorial AGAINST ??";
$prepare_ein = $db->prepare($suche);
$prepare_ein->bind_param('si', $_POST['key'], $_POST['cat']);
$prepare_ein->execute();
$prepare_ein->bind_result($ein_id,$ein_name,$ein_name_url,$ein_kategorie,$ein_tutorial,$ein_time);
$prepare_ein->fetch();
$prepare_ein->close();
}
}
echo "<h2>Suchergebnisse</h2>";
if($prepare_ein->num_rows == 0) {
echo "<p class=\"error\">Ihre Suche erzielte leider keinen Treffer</p>";
}
if ($_POST['key'] == "") {
echo "<p class=\"error\">Bitte geben Sie einen Suchbegriff ein.</p>";
}
echo "<ul class=\"ausgabe\">";
while($prepare_ein->fetch())
{
echo "<li class=\"ausgabe\"><a href=\"tutorial.php?nameurl=".$ein_name_url. "\"class=\"ausgabe\" >".$ein_name. "</a></li>";
}
echo "</ul>";
if ($_POST['key'] != "") {
echo "<p class=\"ausgabe\">Es wurde nach ".$_POST['key']. " in ". $kategorie ." gesucht (" .$ausgabe. ")</p>";
}
include("footer.php");
?>
Code:
<form action="suche.php" method="POST">
<fieldset class="esuche">
<label for="key">Suchbegriff<input type="text" name="key" id="key" /> <br />
<label for="cat">Kategorie</label><select name="cat" id="cat"><option name="cat" value="0">Alle Kategorien</option>
<?php
$kategorien = "SELECT * FROM kategorien WHERE id != '5'";
$ergebnis = $db->query( $kategorien );
while ($kategorie = $ergebnis->fetch_array())
{
echo "<option name=\"cat\" value=\"".$kategorie['id']."\">".$kategorie['name']."</option>";
}
?>
</select>
<label class="esuche">Suchen in:</label><input type="checkbox" name="titel" value="1" checked="checked" /> <p>Titel</p> <input type="checkbox" name="text" value="1" checked="checked"/> <p>Text</p>
<input type="hidden" name="adv" value="1" />
<input type="submit" value="Suchen" />
</fieldset>
</form>
Code:
<form action="suche.php" method="POST">
<fieldset>
<input class="search" type="text" name="key" /><input class="but" type="submit" value="Suchen" />
<a href="erweitertesuche.php" class="header">Erweiterte Suche</a>
</fieldset>
</form>
Man wird sicherlich nicht alles brauchen.
Den Link zu Seite findet ihr in der Signatur, so wie Username und Password.
Danke im Vorraus!
MfG xXxPeterPanxXx
Hoffentlich ist die Datenbank jetzt nicht überfüllt.:mrgreen:
Zuletzt bearbeitet: