Datenbank abfrage

01/11/2014 17:20 Ledjen#1
Hallo,

ich habe eine Datenbank modelliert. Nun wollte ich mit Hilfe von php und mysql eine Abfrage machen. Die Datenbank dient als Übung.
Quote:
<html>
<head> Spielerabfrage <head>
<body>

<form action="spielerabfrage.php" metod="post">
<input type="text" name="name">
<input type="submit" value="Abfrage" name="abfrage">

</form>

<?php
if(isset($_POST['abfrage']))

{
$name=$_POST['abfrage'];

//Verbindung zu MySQL
$verbindung = mysql_connect("-","-","-")
or die ("keine Verbindung möglich. Benutzername oder Passwort sind falsch");

//Verbing zur richtigen Datenbank herstellen
mysql_select_db("fcchelsea")
or die ("Die Datenbank existiert nicht.");

$abfrage = "SELECT * FROM spieler";
$ergebnis = mysql_query($abfrage);

//Ausgabe an der Datenbank
while($row = mysql_fetch_object($ergebnis))
{
echo "Nachname: $row->Name, Vorname:$row->Vorname <br>";
}
}
?>
</body>
</html>
Mein Ziel ist es , wenn ich ein Name eingebe, dass ich als Antwort den Vor und Zunamen bekomme.
01/11/2014 17:34 snow#2
Code:
 $name=$_POST['abfrage'];
- der Name wird aber in das Input-Feld "name" eingegeben, $_POST['name'] dürfte das beheben.

Code:
 $abfrage = "SELECT * FROM spieler";
- hier rufst du alle Spieler ab. Die korrekte Abfrage dürfte
Quote:
"SELECT * FROM spieler WHERE Name = {$name}"
sein, abhängig davon, was mit $name gesucht werden soll.

Evtl. solltest du das ganze noch auf eine aktuellere MySQL Schnittstelle umstellen, alleine schon wegen der möglichen SQL-Injections.
01/11/2014 17:56 Nynq#3
Wie schon erwähnt ist die MySQL Schnittstelle veraltet und es sollte MySQLi/PDO verwendet werden.
Außerdem sollten alle Variablen die in Datenbankabfragen verwendet werden entsprechend vorbereitet werden ([Only registered and activated users can see links. Click Here To Register...] etc.).
01/11/2014 18:53 マルコ#4
Quote:
Originally Posted by snow911 View Post
Code:
"SELECT * FROM spieler WHERE Name = {$name}"
Code:
"SELECT * FROM spieler WHERE Name = '{$name}'"
Die Hochkommas um den String nicht vergessen ;)

BTW, wenn du das ganze dann für PDO umschreibst, mach direkt prepared Statements, dann brauchst du auch kein extra escapen mehr.