Och büdde!!! Guck doch mal genau hin!!! Du benutzt den objektorientierten Stil, also guck dir den auch in der Doku an.
Suchscript funktioniert nicht
Einklappen
X
-
Hallo
hallo ich benutze den Prozeduraler Stil ( eine seite ein programm)
und nicht den objektorientierten Stil.
Und ich kann auch keinen fehler erkennen
PHP-Code:$suchwort = mysqli_real_escape_string($link, $_GET['search']);
aber
ich verstehs ja nicht richtig.
gruss micha
Kommentar
-
Du hast halt einen ziemlichen Chaos-Code. Datenbankabfragen haben inmitten der HTML-Ausgabe nichts verloren. Die gehören vor die Ausgabe (EVA-Prinzip).
Und SELECT * sollte nicht verwendet werden, da es den Code schlechter lesbar macht und Fehler provoziert. Gib im SELECT-Ausdruck immer die Spalten an, die du im Ergebnis erwartest, auch wenn es alle sind.
Unterdrücke keine Fehlermeldungen mit @. Wenn ein Fehler auftritt, sollte man ihn behandeln und nicht ignorieren.
Kommentar
-
Also
Das mit der datenbank abfrage habe ich schon nach vorne gemacht.
Damit gehts auch ohne Fehlermeldung. Ich gebe zu das ich es nicht verstehe. Da es ja in dem moment nur um GET geht und nicht um die datenmbank. Aber egal , es funktioniert,
Für alle die es mal brauchen hier der Code
PHP-Code:<section>
<form method="get">
<input type="text" class="suchfeld" name= "search" />
<input type="submit" class="suchbutton" name= "Suche" />
<form>
<p>
<?php
$db = @new mysqli ( 'localhost', 'root', '', 'suche');
if (isset($_GET["search"])){
$suchwort = mysqli_real_escape_string($db, $_GET['search']);
$abfrage = "";
echo "$suchwort";
$suchwort =explode(" ", $suchwort);
for ($i = 0; $i < sizeof($suchwort); $i++)
{
$abfrage .= "keywort like '%" . $suchwort[$i] . "%'";
if($i < (sizeof($suchwort) - 1)) {
$abfrage .=" or ";
}
}
if (mysqli_connect_errno() == 0)
echo "Die datenbank verbindung hat geklappt";
{
$sql = "SELECT * FROM linkliste WHERE " . $abfrage; ;
echo "$sql";
$ergebnis = $db->query($sql)
or die ("SQL: $sql <br>Error: " . $db->error);
while ($zeile = $ergebnis->fetch_object()) {
echo "<p>";
echo $zeile->linknr;
echo "  ";
echo $zeile->keywort;
echo "   <b>";
echo $zeile->link;
echo "</b></p>";
}
}
$db->close;
}
?>
</p>
</section>
Kommentar
-
Aber es funktioniert , mehr will ich nicht und mehr kann ich auch nicht ( wissensmässig ) Den Datenbankaufruf hab ich vor die Stringerstellung mit GET gemacht und es läuft
warum und wieso werde ich nicht erfahren da ich mit trial and error gearbeitet habe . logisch finde ich es nicht das man für einen String mit get noch den datenbank aufruf braucht . aber es läuft ja .
micha
Kommentar
-
Zitat von hippo21 Beitrag anzeigenAber es funktioniert , mehr will ich nicht
Kommentar
-
hallo bandit600
Es tut mir leid das ich dich in dieser richtung entäuscht habe. Aber ich bin nicht wirklich ein programierer ( hab ich auch nie behauptet ) Ich kopiere und passe an. Da ich das schon eine weile mache ( Access mit vb) und seit einigen monaten halt PHP ( ca 1-2 Sstunden die Woche ) , verstehe ich zwar ein bisschen aber halt nur ganz wenig. Dadurch kann ich halt nur was mit klaren Ansagen anfangen. Zb " Mach da das Komm weg " bekomme ich hin aber warum und wieso ich im string aufbau Die Datenbankverbindung aufrufe obwohl ich nur "GET" brauche verstehe ich nicht . Wenn du mir das erklärst Freue ich mich und merke mir das auch. Aber die meisten hier geben nur vage hinweise oder verweisen auf die dokumentation. Nur bevor ich mich hier äusere ( Ich bin eher schreibfaul ) habe ich normaler weise Dr Google ( oder die dokumentation ) schon gefragt und komme damit nich weiter. Nur um mir zuhelfen müssen Klare anweisungen sein.
Aber:
Ich bin for das es Leute gibt wie dich. Denn ohne die wäre ich und andere bei so projekten auf geschmissen. Also eine grose Bitte. Mach einfach weiter den du hilfst vielen. Und sorry das du das so empfindest .
Micha
Kommentar
Kommentar