2017-10-28 1 views
-1

ich ein Problem mit dem Programm bekomme ich erstellt, eine Meldung wie diese erscheintzeigt Datenbank-Datensatz PHP

Undefined variable: html_response in C:\xampp\htdocs\

, wenn ich auf einen Datenbank-Datensatz angezeigt werden soll meine Webseite.

Dies ist das Skript, das ich erstellt:

Anruf-data.php

<?php 
$mysqli= mysqli_connect('localhost','sman10bdl','xx','x10x'); 
     $kls = $_POST['kelas']; 
     $query = "SELECT * FROM data_siswa WHERE kls='$kls'"; 
     // Execute Query 
     $result = mysqli_query($mysqli,$query); 
     if (!$result) { 
     printf("Error: %s\n", mysqli_error($mysqli)); 
     exit(); 
     } 
     $noUrut = 0; 
     while($row = mysqli_fetch_array($result)){ 
       $noUrut++; 
       $nis = $row["nis"]; 
       $nisn = $row["nisn"]; 
       $nama = $row["nama"]; 
       $kls = $row["kls"]; 
       $sex = $row["sex"]; 
       $alamat = $row["alamat"]; 
       $telp = $row["hanphone"]; 

       $html_response.= "<tr> 
       <td align='center'>$noUrut</td> 
       <td align='center'>$nis</td> 
       <td align='center'>$nisn</td> 
       <td align='left'>$nama</td> 
       <td align='center'>$sex</td> 
       <td align='center'>$alamat</td> 
       <td align='center'>$telp</td> 
       </tr>"; 
      } 
     echo $html_response; 
?> 

ich jede Stelle hoffe mir Lösung geben kann. Vielen Dank.

+0

Ihre Abfrage ist nicht sicher. Verwenden Sie eine vorbereitete Anweisung mit einem Platzhalter. – mickmackusa

Antwort

0

Sie haben die Variable nicht deklariert, bevor Sie sie hinzugefügt haben.

Mit .= wird nur an die vorhandene Variable angehängt ... es wird nicht deklariert und dann angehängt.

So wäre Ihre Lösung zu $html_response vor dem Hinzufügen deklarieren.

2

Sie versuchen, an Variable $html_response anhängen, aber Sie definieren es nie. Auf diese Weise definieren Sie es nur innerhalb der while Schleife, so dass es außerhalb davon nicht zugänglich ist.

Der Aufruf $html_response .= 'something'; ist im Grunde eine Abkürzung für diese:

$html_response = $html_response . 'something'; 

Diese Arbeit sollte:

$html_response = ''; // initialize with empty string 

while ($row = mysqli_fetch_array($result)){ 
    // ... 
    $html_response .= "..."; 
    // ... 
} 

echo $html_response; 

Ich sehe Ihre „Antwort“ hier mit mehr Erklärung - sollten Sie Ihre Frage aktualisieren, nicht veröffentlichen eine "Antwort", die nichts beantwortet:]

Das letzte Problem ist das gleiche wie Sie zuvor hatten, Sie versuchen immer noch an nicht vorhandene va anzuhängen ratifizierbar. Verwenden Sie diese stattdessen (beachten Sie, dass der Punkt nicht vorhanden ist):

$html_response = "<table>"; // define variable initialized with string 
+0

Nur ein Kommentar, aber Sie mussten nicht den ganzen Code kopieren, nur um eine Zeile hinzuzufügen – Akintunde007

+0

Ja, ich weiß, verbesserte es ein wenig. –

+0

ein Problem nicht klar, ein jetzt bekomme ich Fehler auf einer anderen Zeile, die ich diesen Code $ html_response. = "

"; $ noUrut = 0; \t \t while ($ row = mysqli_fetch_array ($ result)) { – Yudi