Anfängerfrage

medicus41

Mitglied
Hi alle,

also ich bin absoluter Newbie in Sachen PHP/MySQL. Ich möchte über ein einfaches Suchformular Daten in meiner DB abfragen und ausgeben lassen. Um die Sache mal anzugehen habe ich ein Formular das wie folgt aussieht:

---schnipp---
<!--Suchfunktion-->
<tr>
<td class="rahmen" valign="top height="759" align="center">
<form action="<?php echo $PHP_SELF ?>" method="post">
<span class="fett"><FONT face='Tahoma' size=2 color=FF9900>Suche</FONT>
<input type="text" name="suche" class="rahmen">
<input type="submit" name="Abschicken" value="search" class="rahmen">
</span>
</form>
---schnapp---

Die Abfrage sieht wie folgt aus:
<?php
if($submit) {

$ergebnis=mysql_query($database,"SELECT * FROM $tablenam WHERE linkname LIKE '%$suche%'");

{
echo mysql_result($ergebnis,"linkname")." - ";
echo mysql_result($ergebnis,"linkurl")." - ";
echo mysql_result($ergebnis,"linkinfo")."<br>";
}
}
?>

Es werden keinerlei Fehler angezeigt, aber wenn ich in meinem Feld einen Suchbegriff eingebe erfolgt auch keine Ausgabe.

Habe wirklich schon einiges nachgelesen, aber irgendwie stehe ich auf dem Schlauch.


thx im Vorraus

medicus
 
mysql_result erwartet eigentlich 3 Parameter: Die Result ID, die Zeile und das Feld. Ich würde hier aber sowieso anders arbeiten, nämlich mit mysql_fetch_array in einer Schleife. Außerdem sieht´s so aus, als ob du mysql_query verwendest, aber eigentlich mysql_db_query meinst. Wenn das nicht schon an anderer Stelle in deinem Script steht, solltest du anfangs auch überhaupt erst eine Verbindung zu mySQL aufbauen ;) Versuch´s mal so:
PHP:
<?php 
if($submit)
{ 
  $server = "xxx"; $user = "xxx"; $pass = "xxx";
  $conn_id = mysql_connect($server, $user, $pass);
  $ergebnis=mysql_db_query($database,"SELECT * FROM $tablenam WHERE linkname LIKE '%$suche%'", $conn_id); 
  while ($row = mysql_fetch_array($ergebnis))
  {
    echo $row[linkname]." - ".$row[linkurl]." - ".$row[linkinfo]."<br>";
  }
  mysql_close($conn_id);
} 
?>
$server, $user und $pass natürlich statt "xxx" mit den jeweiligen Daten füllen.
Hope that helps.
 
hallo Reima,

also erstmal ein Dankeschön für deine flotte Antwort. Leider funktioniert es immer noch nicht. Hier mal der komplette Code.
PHP:
<?
require('config.inc.php');
?>
<html>
<head>
<title><?php echo $title ?></title>
</head>
<div align="center"><img src="./gfx/logo_links.jpg" width="586" height="63" alt="" border=0>
<br>
<br>
<body bgcolor="<?php echo $bgcolor; ?>" text="<?php echo $textcolor; ?>">

<?
mysql_connect($sqlhost,$sqluser,$sqlpass) OR DIE( "Couldn't connect to MySQL server!");
mysql_select_db($database);
?>

<!--Suchfunktion-->
<tr>
<td class="rahmen" valign="top height="759" align="center">
<form action="<?php echo $PHP_SELF ?>" method="post">
<span class="fett"><FONT face='Tahoma' size=2 color=FF9900>Suche</FONT>
<input type="text" name="suche" class="rahmen">
<input type="submit" name="Abschicken" value="search" class="rahmen">
</span>
</form>
<?php
if($submit)
{
  $ergebnis=mysql_db_query($database,"SELECT * FROM $database WHERE linkname LIKE '%$suche%'");
  while ($row = mysql_fetch_array($ergebnis))
  {
    echo $row[linkname]." - ".$row[linkurl]." - ".$row[linkinfo]."<br>";
  }
}
?>

In der Datenbank ist derzeit ein Link eingetragen mit Linkname "Test". Aber bei Eingabe "Test" im Suchfeld erfolgt keine Ausgabe.

medicus
 
Ach... in der Zeile sollte der Fehler stecken:
Code:
<input type="submit" name="Abschicken" value="search" class="rahmen">
Besser ist´s so:
Code:
<input type="submit" name="submit" value="Abschicken" class="rahmen">
 
Zurück