2016-04-21 26 views
1

Ich versuche, eine PHP-Datei zu erstellen, die die Datenbanktabelle liest und die Zeilen dieser Tabelle in ein PHP-Formular via curl schreibt.Post Datenbank Daten über curl zu PHP

Der folgende Code postet nur erste Zeile der Tabelle in die php-Datei über curl. Es durchläuft nicht alle Zeilen der Tabelle und stellt sie fortlaufend fort.

<?php 

define('DB_HOST', 'localhost'); 
define('DB_NAME', 'dbname'); 
define('DB_USER','dbuser'); 
define('DB_PASSWORD','dbpass'); 
$con=mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die("Failed to connect to MySQL: " . mysql_error()); 
$db=mysql_select_db(DB_NAME,$con) or die("Failed to connect to MySQL: " . mysql_error()); 


$result = mysql_query("SELECT name,contact,city FROM customers; "); 

while ($row = mysql_fetch_assoc($result)) { 


$parts = explode(" ", $row[name]); 
$lastname = array_pop($parts); 
$firstname = implode(" ", $parts); 

$gmail = "@gmail.com"; 
$email = $firstname.$lastname.$gmail ; 

$particip = "aaa" ; 


$fields = array(
    'fname' => rawurlencode($firstname), 
    'lname' => rawurlencode($lastname), 
    'mbl' => rawurlencode($row[contact]), 
    'email' => rawurlencode($email), 
    'city' => rawurlencode($row[city]), 
    'e' => rawurlencode($particip) 
); 




//extract data from the post 
//set POST variables 


$url = 'http://example.com/form.php'; 


//url-ify the data for the POST 
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; } 
rtrim($fields_string, '&'); 

//open connection 
$ch = curl_init(); 

//set the url, number of POST vars, POST data 
curl_setopt($ch,CURLOPT_URL, $url); 
curl_setopt($ch,CURLOPT_POST, count($fields)); 
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string); 

//execute post 
$result1 = curl_exec($ch); 

echo $result1; 

//close connection 
curl_close($ch); 



} 
?> 

Update: Die Werte werden in der Form PHP-Datei veröffentlicht. Von der obersten bis zur untersten Reihe. Aber nur die erste Zeile im Datenbankeintrag bekommen.

Gibt es eine Möglichkeit, die $ url vor dem Posten der zweiten Zeile der Datenbankdaten zu aktualisieren?

Antwort

0
$fields[] = array(
    'fname' => rawurlencode($firstname), 
    'lname' => rawurlencode($lastname), 
    'mbl' => rawurlencode($row[contact]), 
    'email' => rawurlencode($email), 
    'city' => rawurlencode($row[city]), 
    'e' => rawurlencode($particip) 
); 

versuchen auf diese Weise

+0

Die Werte werden nicht bilden geschrieben zu werden. 0 oder Null-Ausgabe erhalten. – user445403

+0

Verschieben Sie den Curl-Code außerhalb der while-Schleife und versuchen Sie einmal, die Zeichenkette, die Sie $ fields_string erstellen, wiederzugeben, wenn sie den richtigen Wert erhält oder nicht. –