2016-12-01 3 views
2

Ich beginne in PHP und ich würde gerne wissen, wie mysql Daten in Textfeldern angezeigt werden, die in einer HTML-Datei sind. Ich habe zwei Dateien erstellt ein HTML und ein PHP, im Moment des Aufrufs der Daten an die Texte ist Fehler gesendet.Wie kann ich Daten von MySQL in der Textbox anzeigen?

Error: Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in...

PHP-Datei

<?php 

$server= "localhost"; 
$user = "root"; 
$password = ""; 
$bd = "test"; 

$conexion = mysql_connect($server,$user,$password) or die ("alert(error)"); 
mysql_select_db($bd,$conexion); 
$query = mysql_query("SELECT city , zipcode FROM data WHERE client='$_POST[client]'"); 

while($rowvalor = mysql_fetch_array($query)) 
{ 
     $city = $rowvalor['city']; 
     $code = $rowvalor['zipcode']; 
} 
mysql_close($conexion); 
?> 

Html Datei

<!DOCTYPE HTML> 
<html> 
<head> 
<title>Test</title> 
<body> 
<form action = "test.php" method="post"> 
<button id="btnsearch" onclick="search()" style= "background: rgb(242, 243, 243); position: relative; left: 155px"; >Search</button> 

<input id="txtclient" name="client" type="text" class="form-control" value= '<?php echo $client; ?>'/><span class="fa arrow"></span> 

<input id="txtcode" name="zipcode" type="text" class="form-control" value= '<?php echo $zipcode; ?>'/><span class="fa arrow"></span> 

<input id="txtcity" name="city" type="text" class="form-control" value= '<?php echo $city; ?>' /><span class="fa arrow"></span> 

</form> 
</body> 
+0

sollten Sie "mysqli_select_db()" anstelle von "mysql_select_db()" verwenden? Am besten mit mysqli konsistent zu sein fordert für alle Ihre nachfolgenden Aufrufe –

+0

Ich änderte es in "mysql_select_db", aber immer noch einen Fehler ** "Warnung: mysql_fetch_array() erwartet Parameter 1 zu sein Ressource, boolean gegeben in" ** –

Antwort

0

Sie verwenden mysql_* Funktionen zusammen mit mysqli_functions, was wohl schief geht. Ich schlage vor, Sie verwenden nur PDO oder mysqli_* Funktionen. In Ihrem Code verwenden Sie auch die mysql_select_db Funktion falsch, Sie müssen Ihre 2 Parameter mischen.

Mysqli Beispiel

$conexion = mysqli_connect($server, $user, $password) or die ("alert(error)"); 
mysqli_select_db($conexion, $bd); 
$query = mysqli_query($conexion, "SELECT city , zipcode FROM data WHERE client='$_POST[client]'"); 

while ($rowvalor = mysqli_fetch_array($query)) { 
     $city = $rowvalor['city']; 
     $code = $rowvalor['zipcode']; 
} 
mysqli_close($conexion); 

Sie verwenden auch einen Beitrag Wert in Ihren Abfragen, so dass Sie Ihre $ _POST Wert entkommen sollte es zu sichern.

$client = mysqli_real_escape_string($conexion, $_POST['client']); 
$query = mysqli_query($conexion, "SELECT city , zipcode FROM data WHERE client='$client'"); 
+1

in Bezug auf den Schutz Db, ich könnte vorschlagen, vorbereitete Anweisungen zu verwenden, um gegen SQL-Injektionen zu schützen –

0

Bitte aktualisieren Sie Ihre PHP-Datei wie folgt:

<?php 

$server = "localhost"; 
$user = "root"; 
$password = ""; 
$bd = "test"; 

// Create connection 
$conn = mysqli_connect($server, $user, $password, $bd); 
// Check connection 
if (!$conn) { 
    die("Connection failed: " . mysqli_connect_error()); 
} 

$sql = "SELECT city , zipcode FROM data WHERE client='$_POST[client]'"; 
$result = mysqli_query($conn, $sql); 

if (mysqli_num_rows($result) > 0) { 
    // output data of each row 
    while ($row = mysqli_fetch_assoc($result)) { 
     $city = $row['city']; 
     $code = $row['zipcode']; 
    } 
} else { 
    echo "0 results"; 
} 
?> 
0

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in

Dies bedeutet, dass Ihre Abfrage fehlschlägt. Es gibt false zurück. Sie verwenden nicht die $_POST['client'] Variable rechts. Du hast die Zitate vergessen!

Dies sollte funktionieren:

$query = mysql_query("SELECT city , zipcode FROM data WHERE client='".$_POST["client"]."'"); 

Auch sind Sie mysql Injektion anfällig und mysqli instad von MySQL verwenden.

Verwandte Themen