[PHP] Datensätze durchsuchen?

01/25/2016 17:32 CeLiFiG#1
Hey, ich habe eine Seite mit Login & Register.
Nun will ich das alle User andere User durch ein Suchfeld suchen können.

Ich stelle mir das so vor, das der User in die Textbox den Namen eingibt und dann bspw. ein paar Informationen ausgibt. z.B: ich gebe CeLiFiG ein, drücke auf Suchen und er gibt mir folgende Informationen aus.

Nickname: CeLiFiG
Registriert am: 25.01.2016
email: [Only registered and activated users can see links. Click Here To Register...]

Die Daten sind alle schon drin, er muss nur quasi nach dem Namen suchen, und dann die dazugehörigen Informationen ausgeben. Aber halt nicht alle, also bspw. nicht das Passwort.

LG, wäre echt lieb wenn mir jmd. helfen könnte :)
01/25/2016 18:00 Syc#2
Sind die Daten in einer SQL-Datenbank? Dann kannst du ein einfaches Select verwenden.

Daten übergabe kannst du entweder per ajax (js) oder einfach per php post realisieren.
01/25/2016 20:25 CeLiFiG#3
Quote:
Originally Posted by Syc View Post
Sind die Daten in einer SQL-Datenbank? Dann kannst du ein einfaches Select verwenden.

Daten übergabe kannst du entweder per ajax (js) oder einfach per php post realisieren.
Ja sind sie.
Bin relativ neu, hab jetzt den Code bis jetzt:

Code:
<?php
$verbindung = mysql_connect("localhost", "root", "123456")
or die ("Fehler");

mysql_select_db("tool")
or die ("Fehler");

$username = $_POST["search"];
$query = mysql_query("SELECT * from mitglieder WHERE nickname like .$username.");
echo 'Ihre Suche nach <b>' .$username.' </b> ergab: <br>' ;
while(mysql_fetch_assoc($query)) {
	echo "'';
}
?>
Wie gebe ich das jetzt aus?
Tut mir Leid, wenn ihr euch an manchen Stellen mehrmals an den Kopf schlagen müsst, probiere php zum zweiten mal zu lernen, und hab jetzt erst richtig Zeit dafür gefunden.
01/25/2016 20:51 .Barone#4
PHP Code:
$verbindung mysqli_connect("localhost""root""123456");

$username mysqli_real_escape_string($verbindung,$_POST["search"]);
$query mysqli_query($verbindung,"SELECT * FROM mitglieder WHERE nickname like '".$username."'");
echo 
"Ihre Suche nach <b>'" .$username."' </b> ergab: <br>" ;
while(
$result mysql_fetch_assoc($query)) {
    echo 
"Name:$result[name] <br /> Alter:$result[alter] <br />'';

Mysql ist veraltet, verwende PDO oder mysqli.
Wenn du jetzt zb auf der index.php ein suchfeld einbindest, das ganze aber zb ohne die seite neu laden zu lassen ausgeben willst, dann kannst du auch zu ajax greifen:
PHP Code:
$(document).ready(function() {
            $(
"button[name='suchButton']").click(function(event){
             var 
searchstring = $('#suchInput').val(); 
               $.
post(
                  
"suche.php"// Datei mit der Datenbank verbindung
                  
suchbegriffsearchstring },
                  function(
data) {
                     $(
'#changeContent').html(data); // Container wo das Resultat angezeigt werden soll
                  
}
               );
            });
}); 
Die such Form:
PHP Code:
<input type='text' id='suchInput' class='form-control'  placeholder='suche'/>
<
button type='button' name='suchButton' >suchen</button
01/26/2016 14:03 CeLiFiG#5
Quote:
Originally Posted by .Barone View Post
PHP Code:
$verbindung mysqli_connect("localhost""root""123456");

$username mysqli_real_escape_string($verbindung,$_POST["search"]);
$query mysqli_query($verbindung,"SELECT * FROM mitglieder WHERE nickname like '".$username."'");
echo 
"Ihre Suche nach <b>'" .$username."' </b> ergab: <br>" ;
while(
$result mysql_fetch_assoc($query)) {
    echo 
"Name:$result[name] <br /> Alter:$result[alter] <br />'';

Mysql ist veraltet, verwende PDO oder mysqli.
Wenn du jetzt zb auf der index.php ein suchfeld einbindest, das ganze aber zb ohne die seite neu laden zu lassen ausgeben willst, dann kannst du auch zu ajax greifen:
PHP Code:
$(document).ready(function() {
            $(
"button[name='suchButton']").click(function(event){
             var 
searchstring = $('#suchInput').val(); 
               $.
post(
                  
"suche.php"// Datei mit der Datenbank verbindung
                  
suchbegriffsearchstring },
                  function(
data) {
                     $(
'#changeContent').html(data); // Container wo das Resultat angezeigt werden soll
                  
}
               );
            });
}); 
Die such Form:
PHP Code:
<input type='text' id='suchInput' class='form-control'  placeholder='suche'/>
<
button type='button' name='suchButton' >suchen</button
Hey lieben Dank für deine Mühe, er gibt mir jedoch eine Fehlermeldung aus:


Parse error: syntax error, unexpected '(', expecting variable (T_VARIABLE) or '$' in C:\xampp\htdocs\details.php on line 59


Code:
$(document).ready(function() { // LINE 59 <--
            $("button[name='suchButton']").click(function(event){
             var searchstring = $('#suchInput').val(); 
               $.post(
                  "detailzz.php", // Datei mit der Datenbank verbindung
                  { suchbegriff: searchstring },
                  function(data) {
                     $('#changeContent').html(data); // Container wo das Resultat angezeigt werden soll
                  }
               );
            });
});
LG
01/26/2016 14:17 .Barone#6
PHP Code:
$(document).ready(function() { // LINE 59 <--
            
$("button[name='suchButton']").click(function(event){
             var 
searchstring = $('#suchInput').val(); 
               $.
post(
                  
"detailzz.php"// Datei mit der Datenbank verbindung
                  
suchbegriffsearchstring },
                  function(
data) {
                     $(
'#changeContent').html(data); // Container wo das Resultat angezeigt werden soll
                  
}
               );
            });
}); 
Dies musst du entweder in eine .js datei einbinden und diese bindest du dann im head tag ein per
PHP Code:
<script type="text/javascript" src="dateiname.js"></script> 
oder du schreibst es direkt in script tags
<script>
</script>
01/26/2016 14:33 Icetea#7
Quote:
Originally Posted by .Barone View Post
Dies musst du entweder in eine .js datei einbinden und diese bindest du dann im head tag ein per
PHP Code:
<script type="text/javascript" src="dateiname.js"></script> 
oder du schreibst es direkt in script tags
<script>
</script>
Man braucht nicht mehr das type Attribute zu verwenden, seit HTML5 ist vorgemerkt, dass wenn man kein type Attribute ausfüllt, type="text/javascript" als Standard gesetzt ist. Auch hier würde ich das async Attribute empfehlen, d.h. :

Code:
<script src="file.js" async"></script>
reicht mittlerweile vollkommen aus und sieht dazu noch sehr sauber aus. :)

Liebe Grüße,
Icetea'
01/26/2016 14:57 CeLiFiG#8
Danke euch, da ich mich aber mit JS kaum auskenne, bräuchte ich hilfe beim Container.

Wie kann ich jetzt den Namen,usw. dadrin ausgeben?
Wenn ich auf den Button klicke, passiert noch nix bei mir..
01/26/2016 15:55 .Barone#9
@Icetea
Danke dir. Wusst ich garnicht :p
Schonwieder was dazugelernt.

@TE
Also, dein mysqli script:
PHP Code:
$verbindung mysqli_connect("localhost""root""123456");

$username mysqli_real_escape_string($verbindung,$_POST["suchbegriff"]);
$query mysqli_query($verbindung,"SELECT * FROM mitglieder WHERE nickname like '".$username."'");
while(
$result mysqli_fetch_assoc($query)) {
    echo 
"Name:$result[name] <br /> Alter:$result[alter] <br />'';

javascript:
PHP Code:
$(document).ready(function() {
            $(
"button[name='suchButton']").click(function(event){
             var 
searchstring = $('#suchInput').val(); 
               $.
post(
                  
"suche.php"// Datei mit der Datenbank verbindung
                  
suchbegriffsearchstring },
                  function(
data) {
                     $(
'#CONTAINER').html(data); // Container wo das Resultat angezeigt werden soll
                  
}
               );
            });
}); 
Button + Suchinput:
PHP Code:
<input type='text' id='suchInput'  placeholder='suche'/>
<
button type='button' name='suchButton' >suchen</button
In dem mysqli script war noch n Fehler, wenn du das jetzt so einbindest, sollte es eigentlich keine probleme geben.
01/26/2016 16:58 ComputerBaer#10
Das JS funktioniert wahrscheinlich nicht, weil du [Only registered and activated users can see links. Click Here To Register...] nicht eingebunden hast. (Zumindest wurde es hier mit keinem Wort erwähnt, aber von .Barone verwendet)

Code:
<script src="//code.jquery.com/jquery-1.12.0.min.js"></script>
// Dein anderes JS
01/26/2016 18:43 CeLiFiG#11
Hab das eingebunden von ComputerBaer, danke dafür.
Klappt trotzdem nicht wie es sollte. Wenn ich drücke, passiert nix, jedoch auch keine Fehlermeldung oder sonstiges.

So sieht das aus:
[Only registered and activated users can see links. Click Here To Register...]
01/26/2016 19:04 ComputerBaer#12
Hast du denn irgendwo den Container angelegt, in den das Ergebnis rein soll?

Code:
<div id="CONTAINER"></div>
Edit:
Wenn ja, dann zeig uns vielleicht mal deinen kompletten Code. Es ist leichter einen Fehler zu finden als einen Fehler zu erraten.
01/26/2016 19:11 CeLiFiG#13
Hab hier das Design & co rausgeschnitten, wäre zu viel. (kann ja daran nichtliegen)

details.php, die Seite wo das Suchfeld & der Button ist.

Code:
	
Userdetails:
							<form method="post" action="detailzz.php">
							<input type='text' id='suchInput' class='form-control'  placeholder='suche'/>
							<button type='button' name='suchButton' >suchen</button>  
							</form>
						<div id="changeContent"></div>
                        <div id="footer" style="position:static;">
                        <html>
						
						<script>
						$(document).ready(function() { 
            $("button[name='suchButton']").click(function(event){
             var searchstring = $('#suchInput').val(); 
               $.post(
                  "detailzz.php", // Datei mit der Datenbank verbindung
                  { suchbegriff: searchstring },
                  function(data) {
                     $('#changeContent').html(data); // Container wo das Resultat angezeigt werden soll
                  }
               );
            });
});  
						</script>
        <center>
        <p> xx </p>
        </center>
</html>                </div>
                </center>
        </body>
        <div id="cookies" align="center">
                xx</a>
                </div>
</html>
<script src="//code.jquery.com/jquery-1.12.0.min.js"></script>
detailzz.php, mysqli code

Code:
<?php
$verbindung = mysqli_connect("localhost", "benutzer", "123456");

$username = mysqli_real_escape_string($verbindung,$_POST["suchInput"]);
$query = mysqli_query($verbindung,"SELECT * FROM mitglieder WHERE nickname like '".$username."'");
while($result = mysqli_fetch_assoc($query)) {
    echo "Name:$result[name] <br /> Alter:$result[datum] <br />";
}  
?>
01/26/2016 19:22 .Barone#14
Kleiner tipp:
Säubere mal den Code und halte ihn ordentlich, du findest dich hinterher nichtmehr zurecht.

die <script></script> tags kommen in den header.. nicht in den body.
Außerdem solltest du dir nochmal anschauen wie solch eine datei aufgebaut ist. du schließt 2mal den html tag, obwohl er einmal offen ist.
01/26/2016 19:29 CeLiFiG#15
Quote:
Originally Posted by .Barone View Post
Kleiner tipp:
Säubere mal den Code und halte ihn ordentlich, du findest dich hinterher nichtmehr zurecht.

die <script></script> tags kommen in den header.. nicht in den body.
Außerdem solltest du dir nochmal anschauen wie solch eine datei aufgebaut ist. du schließt 2mal den html tag, obwohl er einmal offen ist.
Er ist offen, hab den Teil mit dem html nur rausgetan, da es sonst zu viel wäre.
Das mit den Script Tags wusst ich nicht, danke sehr-
//edit

Jetzt gibt er einen Fehler code aus.

Notice: Undefined index: suchInput in C:\xampp\htdocs\detailzz.php on line 4

Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\detailzz.php on line 6

1. ist behoben