2 Stimmen

Array von Arrays in PHP aus der MySQL-Datenbank

Ich versuche, Ergebnisse aus einer MySQL-Datenbank (für Rechnungen) zu erhalten, die mehrere Zeilen mit mehreren Spalten in jeder Zeile enthält. Die Datenbank hat drei Spalten: Datum (Text), Stunden (Text) und Abgerechnet (boolesch). Ich versuche, ein Array von Arrays zu erhalten, um es in ein PHP-Skript einzuspeisen, wobei das Endprodukt wie folgt aussehen würde:

$invoice = array(array("date1","hours1"),array("date2","hours2"));

Ich habe derzeit den folgenden Code:

$con = mysql_connect("$host", "$username", "$password");
$condb = mysql_select_db("$db_name");
...
120 | $sql = "SELECT date,hours FROM 'c1_log' WHERE charged=0";
121 | $result = mysql_query($sql,$con);
122 | $invoice = mysql_fetch_array($result);

Wenn ich den Code ausführe, erhalte ich den folgenden PHP-Fehler:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in .../dbcon.php on line 122

Gibt es eine alternative Funktion zu mysql_fetch_array() die funktionieren würde?

0voto

Rohit Chopra Punkte 2751
$sql = "SELECT date,hours FROM c1_log WHERE charged=0";

Edit: Nachdem ich Ihren Kommentar oben gelesen habe, erinnere ich mich, dass mysql_fetch_array eine Schleife sein sollte. Also versuchen Sie dies:

while ($invoice = mysql_fetch_array($result)) {
     var_dump($invoice )
}

0voto

Louis Punkte 4252

Ich glaube nicht, dass es eine fetch_all-Funktion für mysql gibt, die Sie programmatisch abrufen müssen:

$con = mysql_connect("$host", "$username", "$password");
if ( ! mysql_select_db("$db_name")) {
  echo "Could not select DB: " . mysql_error();
  exit;
}

$sql = "SELECT date,hours FROM `c1_log` WHERE charged=0";

if ( ! ($result = mysql_query($sql,$con) ){
  echo "Query error: " . mysql_error();
  exit;
}

// use fetch_assoc so that you end up with array
// keys as the column names not numbers
while ($invoice[] = mysql_fetch_assoc($result));

//While loop is used to get all results from the query into an array.

//To check your output:
// (if in a browser echo a pre tag for nice formatting)
echo "<pre>";
print_r($invoice);
echo "</pre>";

//Should give you something like this..
//$invoice = array(0=>array("date"=>"","hours"=>""),1=>array("date"=>"","hours"=>""));

Link zu fetch_assoc

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X