2016-08-27 5 views
1
  1. Ich versuche, bestimmte Zeile eins nach dem anderen wie folgt zu erhalten:num_rows nicht in php/mysqli Arbeits

    while($getRowCount = $query->fetch_assoc()){ 
    
    $uid = $getRowCount['ID']; 
    
  2. Als nächstes werde ich die Auswahl der Zeile, in der dies entsprechend in der zweiten Tabelle übereinstimmt, wie unten:

    $getFullName = $db->prepare("SELECT * from registered_users where id = ?"); 
    $getFullName->bind_param("i",$uid); 
    $getFullName->execute(); 
    if(($getFullName = $getFullName->num_rows) == 1){ 
        echo 'code reach'; 
        $getname = $getFullName->fetch_assoc(); 
        $FirstName = $getname['first_name']; 
        $LastName = $getname['last_name']; 
        echo ' 
         <br/> 
         <div id ="connect" style="font-weight:bold; font-size: 15px; color: #CF0B05;"> 
         <strong>'.$FirstName.' '.$LastName.'</strong> 
         </div><hr/>';         
    } 
    
    } 
    

Das Problem ist num_rows == 1 kehrt nicht wahr, trotz dem es eine Übereinstimmung in der Tabelle für diese Zeile zu sein.

Auch, wenn ich mit num_rows == 0 gewaltsam auswerte, es Echo 'Code Reichweite' aber fügt ein paar Fehler mit sich. Ich verstehe nicht, warum num_rows == 1 trotz einer Reihe nicht wahr zurückkehrt.

Notice: Trying to get property of non-object in /var/www/html/pages.php on line 634 

Fatal error: Call to a member function fetch_assoc() on integer in /var/www/html/pages.php on line 635 

Vorschläge, wie dieses Problem zu beheben eine große Hilfe sein würde.

Antwort

1

Blick auf Ihrem Ausdruck: ($getFullName = $getFullName->num_rows) == 1

Sie sind erst $getFullName gleich die Anzahl der Zeilen (integer) Einstellung zu sehen, dann, wenn es 1 entspricht. Dann versuchen Sie später $getFullName als Objekt zuzugreifen:

$getname = $getFullName->fetch_assoc(); 

So natürlich Sie den Fehler:

Fatal error: Call to a member function fetch_assoc() on integer in /var/www/html/pages.php on line 635 

Warum Sie $getFullName gleich der Anzahl der Zeilen setzen? Dies ist ein einfacher Fall, um zu verstehen, was jede Zeile Ihres Codes tatsächlich tut.

+0

aw besuchen, Snap, wurde mir klar, dass ich nicht mehr als $ bin mit getPostFullName = $ getPostFullName-> get_result(); vor der Auswertung. Es funktioniert jetzt gut. Auch, ja ich denke, ich mache es falsch, es zu schreiben $ getFullName = $ getFullName-> num_rows) == 1. Geändert Vielen Dank für den Hinweis auf die richtige Richtung. :) –

0

Ihre ersetzen, wenn Bedingung

if(($getFullName = $getFullName->num_rows) == 1) 

mit

if((getFullName = mysqli_num_rows($getFullName)) == 1) 

für mehr über mysqli_num_rows Funktion können Sie click here