[PHP] Datensätze durchsuchen?

01/26/2016 19:30 Icetea#16
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.
Ebenfalls zu beachten ist, dass er erst die Bibliothek einbindet (jQuery) und dann sein script mit dem async Attribute einbindet.:)

Liebe Grüße,
Icetea'
01/26/2016 19:37 CeLiFiG#17
Quote:
Originally Posted by Icetea' View Post
Ebenfalls zu beachten ist, dass er erst die Bibliothek einbindet (jQuery) und dann sein script mit dem async Attribute einbindet.:)

Liebe Grüße,
Icetea'
Habs nicht in einer einzelnen Datei drin, hast aber natürlich Recht, danke
01/26/2016 19:38 Icetea#18
Quote:
Originally Posted by CeLiFiG View Post
Mein Script ist mit den <script> </script> tags drin, habs also nicht in einer externen Datei drin
async hat nichts mit extern oder nicht zu tun. Tipp es einfach mal in deine Suchmaschine ein... :)

Liebe Grüße,
Icetea'
01/26/2016 19:41 .Barone#19
Code:
$username = mysqli_real_escape_string($verbindung,$_POST["suchInput"]);
ist falsch. es muss
Code:
mysqli_real_escape_string($verbindung,$_POST["suchbegriff"]);
sein, wenn ich nicht falsch liege.
01/26/2016 19:55 CeLiFiG#20
Quote:
Originally Posted by .Barone View Post
Code:
$username = mysqli_real_escape_string($verbindung,$_POST["suchInput"]);
ist falsch. es muss
Code:
mysqli_real_escape_string($verbindung,$_POST["suchbegriff"]);
sein, wenn ich nicht falsch liege.
Hab jetzt das gemacht:
Code:
$username = mysqli_real_escape_string($verbindung,$_POST["suchbegriff"]);
Was am Anfang auch so war, da ich dachte das es etwas mit "suchbegriff" zu tun haben könnte.. naja. Die Erste Fehlermeldung kommt aufjedenfall nicht mehr.
Die Fehlermeldung bleibt dennoch.


Code:
Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\detailzz.php on line 6
Line 6 - 8
Code:
while($result = mysqli_fetch_assoc($query)) {
    echo "Name:$result[name] <br /> Alter:$result[datum] <br />";
}
01/26/2016 20:40 ComputerBaer#21
Irgendwas stimmt bei deiner SQL-Abfrage nicht, deshalb steht "false" (boolean) in $query und kein mysqli_result. Du solltest dir vielleicht mal den Fehler ausgeben lassen.
01/26/2016 22:24 Icetea#22
Quote:
Originally Posted by ComputerBaer View Post
Irgendwas stimmt bei deiner SQL-Abfrage nicht, deshalb steht "false" (boolean) in $query und kein mysqli_result. Du solltest dir vielleicht mal den Fehler ausgeben lassen.
Wie mein Vorposter bereits erwähnte solltest du dir den Fehler einmal ausgeben lassen mit var_dump();

Hab dir hier mal eine Funktion in PHP dazu geschrieben, die du generell für deine Fehlerausgaben nutzen kannst um genaueres zu erfahren. Wie du die Funktion nutzt brauch ich dir, denke ich, nicht zu erklären. Wenn doch, einfach posten.

PHP Code:
    function my_var_dump($expression) {
        echo 
'<pre>';
        
var_dump($expression);
        echo 
'</pre>';
    } 
Liebe Grüße,
Icetea'
01/26/2016 22:32 Serraniel#23
Im connect von mysqli fehlt noch die Auswahl der Datenbank. Ihr connected zwar zum Server aber nen Statement zu feuern ohne Datenbank auszuwählen bringt halt auch keine results.

Wieso müssen script tags in den Header? Es ist durchaus in bestimmten Situationen legitim diese an den Ende des Body zu schieben finde ich.
01/26/2016 23:40 Icetea#24
Quote:
Originally Posted by Serraniel View Post
Im connect von mysqli fehlt noch die Auswahl der Datenbank. Ihr connected zwar zum Server aber nen Statement zu feuern ohne Datenbank auszuwählen bringt halt auch keine results.

Wieso müssen script tags in den Header? Es ist durchaus in bestimmten Situationen legitim diese an den Ende des Body zu schieben finde ich.
Richtig, fällt mir auch gerade auf ... :D

PHP Code:
$database mysqli_connect("127.0.0.1""username""password""database"); 
Oder schau dir [Only registered and activated users can see links. Click Here To Register...] an, was ich total simpel und strukturiert finde.

@Serraniel: Es ist legitim, aber warum sollte man es machen wenn es das async Attribute gibt. Auch ich habe es immer vor dem </body> Tag eingebunden, aber als ich das async Attribute kennengelernt habe ist es für mich einfacher, und vor allem in meinen Augen sauberer das ganze im <head> Tag einzubinden. Kannst dir das ganze ja mal anschauen. :)

Liebe Grüße,
Icetea'
01/27/2016 13:36 xsrf#25
Da dein Verbindungsaufbau zu unsicher ist, was daran liegt, dass du, wie du selbst sagst, wenig Erfahrung in diesem Bereich vorweisen kannst, möchte ich dir an dieser Stelle meine Datenbankklasse, basierend auf MySQLi, zur Verfügung stellen.

Beispiele:

PHP Code:
$this->sql->Escape$array ); 
PHP Code:
$this->sql->Send"SELECT ..." ); 
Für das einfügen, löschen oder überschreiben von Daten solltest du diese Funktion nutzen, da diese mit der Funktion "Rollback" zusammen arbeitet.

PHP Code:
$this->sql->Send2"INSERT ..." );
$this->sql->Send2"UPDATE..." );
$this->sql->Send2"DELETE..." );
$this->sql->Commit(); 

Meine Datenbanklasse:

PHP Code:
<?php 

class DB
{
    private 
$sql;
    private 
$result;
    private 
$exec;
    
    function 
__construct$database null )
    {
        
$this->sql = @new MySQLiDB_HOSTDB_USERDB_PASS$database == null DB_BASE $database );
        
$this->sql->autocommitfalse );
        if( 
$this->sql->connect_errno )
        {
            
//change
            
die( "Unable to connect with the database. Error: " $this->sql->connect_errno .  " - " .   $this->sql->connect_error);
        }
    }
    
    public function 
Escape$post )
    {
        foreach(
$post as $key => $value)
        {
            
$value htmlspecialchars$value );
            
$value htmlentities$value );
            
$value strip_tags$value );
            
$value $this->sql->escape_string$value );
        }
        return 
$post;
    }
    
    public function 
Send $qry )
    {
        
$this->result DB::Exec$qry );
        if( 
$this->sql->errno )
        {
            die( 
"Error: " $this->sql->errno .  " - " .   $this->sql->error);
        }
        return 
DB::Result();
    }
    
    public function 
Send2 $qry )
    {
        
$this->result DB::Exec$qry );
    }
    
    public function 
Commit()
    {
        if( 
$this->sql->errno )
        {
            
$this->sql->rollback();
            die( 
"Error: " $this->sql->errno .  " - " .   $this->sql->error);
        }
        
$this->sql->commit();
    }
    
    private function 
Exec$qry )
    {
        
$exec = @$this->sql->query$qry );
        return 
$exec;
    }
    
    private function 
Result()
    {
        if( 
$this->result != "1" )
        {
            
$arr = array();
            if (!
function_exists('mysqli_fetch_all')){
                
$arr['obj'] = [];
                while (
$row $this->result->fetch_assoc()) {
                    
$arr['obj'][] = $row;
                }
            }else {
                
$arr['obj'] = $this->result->fetch_all(MYSQLI_ASSOC);
            }
            
$arr['rows'] = $this->result->num_rows;
            return 
$arr;
        }
        else 
        {
            return 
3;
        }
    }
    
}