Eintrag aus Datenbank suchen..

Erst einmal ein freundliches Hallo an alle :)

Ich hatte mit einem Tutorial versucht, mittels eines Inpufeldes und PHP eine bestimmte Spalte einer SQL-DB zu durchsuchen.
Leider funktioniert das ganze nicht :( Die Verbindung zur Datenbank steht, aber ein Klick auf "Suchen" bewirkt rein gar nichts.
Evtl. findet jmd den/die Fehler. PHP in Verbindung mit mySQL is für mich noch ein Erprobungsgebiet.
PHP:
if($send)
  {
	$db = @ mysql_connect ( $db_server, $db_user, $db_pwd )	or die ( 'Keine Verbindung zur Datenbank!' );
 	$db_check = @ mysql_select_db ( $db_name );

	$sql = "SELECT * FROM $table WHERE artikelname LIKE '%$search%'";
	$result = mysql_query($sql);

		echo "<b>Suchergebnisse</b>";
	while($row = mysql_fetch_array($result))
	{
			echo $row ->artikelname;
	}

	mysql_close ($verbindung);
	echo "<br>Verbindung zu Server <b>$server</b> beendet.";
  }
  else
  {
	echo "<form action=\"$PHPSELF\" method=\"post\">";
	echo "Suchen : <input type=\"text\" name=\"search\">";
	echo "<input type=\"submit\" name=\"send\" value=\"Suchen\">";
	echo "</form>";

  }

Schonmal Danke im Voraus :)
 
Probier mal folgendes:

PHP:
<?php
  if( isset($_POST['send']) )
  {
    $db = @ mysql_connect ( $db_server, $db_user, $db_pwd ) OR die ( 'Keine Verbindung zur Datenbank!' );
    $db_check = @ mysql_select_db ( $db_name ) OR die ( 'Konnte Datenbank nicht auswaehlen!' );

    $sql = "SELECT * FROM $table WHERE artikelname LIKE '%".mysql_real_escape_string($_POST['search'])."%'";
    $result = mysql_query($sql);

    echo "<b>Suchergebnisse</b>";

    while($row = mysql_fetch_object($result))
    {
            echo $row->artikelname . "<br />\n";
    }

    mysql_free_result($result);
    mysql_close ($verbindung);
    echo "<br>Verbindung zu Server <b>$server</b> beendet.";
  }
  else
  {
    echo "<form action=\"$_SERVER['PHP_SELF']\" method=\"post\">";
    echo "Suchen : <input type=\"text\" name=\"search\">";
    echo "<input type=\"submit\" name=\"send\" value=\"Suchen\">";
    echo "</form>";

  }
?>

Die $db_* und $table Variablen sollte allerdings auch gesetzt sein!!

Außerdem solltest Du globale Variablen nicht benutzen und komplett deaktivieren, da sie ein großes Sicherheitsrisiko darstellen!

Gruß
 
Danke für die schnelle Antwort :)

die $db_* Variablen habe ich gesetzt, jetzt nur hier rausgelassen. Hätte ich wohl erwähnen sollen.

Mit der Zeile
PHP:
echo "<form action=\"$_SERVER['PHP_SELF']\" method=\"post\">";
ergab sich jetzt folgendes:
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\xampp\htdocs\test.php on line 26
:(

Hab von hier* schon ein paar Varianten durch, aber irgendwie bleibt der Fehler bestehen.

*Link: PHP-Fehlermeldungen.de
 
Original von .Gast
Mit der Zeile
PHP:
echo "<form action=\"$_SERVER['PHP_SELF']\" method=\"post\">";
ergab sich jetzt folgendes:
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\xampp\htdocs\test.php on line 26
:(
Dann mach lieber eine vernünftige Konkatenation (String-Verknüpfung):
PHP:
echo '<form action="' . $_SERVER['PHP_SELF'] . '" method="post">';
Du kannst den Ausgabeblock auch ganz aus dem PHP ausklammern:

PHP:
<?php ...
else
  {
?>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
Suchen : <input type="text" name="search">
<input type="submit" name="send" value="Suchen">
</form>
<?php
  }
...
?>

mfg, metax.
 
Zurück
Oben