2016-08-06 18 views
-1

Ich bin Anfänger mit PHP und ich habe eine Postgres-Datenbank die folgende Tabelle enthält:PHP-Code in einer Schleife durch Datenbank

-------------------------------------------------- 
| Phone_Number| User_ID| file_ID| file_Path  | 
-------------------------------------------------- 
| 123456789 | 12345 | abc123 | /picture_22.jpg| 
-------------------------------------------------- 
| 987654321 | 67890 | xyz567 | /voice_33.mp3 | 
-------------------------------------------------- 

ich Schleife wollen durch jede Zeile, lesen Sie die file_ID hängen Sie die es zu Das Ende der URL, gehen Sie zu URL, um das Ergebnis zu erhalten, das ist ein Download-Link, ich bin mir nicht sicher, wie das zu erreichen ist. Ich schätze jede Hilfe/Unterstützung.

PS: Hier ist meine unvollständigen Code:

<?PHP 
ini_set('error_reporting',E_ALL); 

$website = "https://website.com; 

//Connect to Database 
$con = pg_connect("postgres://................." ); 

$query = "SELECT * FROM userdata"; 
$results = pg_query($con, $query); 
$row_users = pg_fetch_array($results); 

while ($row_users = pg_fetch_array($results)) { 

    $fileID = <---------------- Not sure what goes here 
    $filePath = file_get_contents('$website/.getFile?file_id=.fileID'); 
    $fixedPath = str_replace("\\","","$filePath"); 

} 

pg_close($con); 
?> 

Antwort

0

Ich denke, kann es sein:

$fileID = $row_users['file_ID']; 
$filePath = file_get_contents("$website/.getFile?file_id=$fileID"); 
1
<?PHP 
ini_set('error_reporting',E_ALL); 

$website = "https://website.com; 

//Connect to Database 
$con = pg_connect("postgres://................." ); 

$query = "SELECT * FROM userdata"; 
$results = pg_query($con, $query); 
# NOT NEEDED You are losing a row here $row_users = pg_fetch_array($results); 

while ($row_users = pg_fetch_array($results)) { 

    $fileID = $row_users['file_ID']; # This is what goes here 
    $filePath = file_get_contents("$website/.getFile?file_id={$fileID}"); 
    $fixedPath = str_replace("\\","","$filePath"); 

} 

pg_close($con); 
?> 

Neben der Änderung der Kennzeichnung, dass Sie die Datei vornehmen müssen, um bekommen ID, ich habe einen kleinen Fehler in Ihrem Code markiert, der dazu führt, dass Sie eine Datenzeile verlieren. Und auch bei der Verwendung Ihrer Variablen im file_get_contents-Aufruf.

Hier ist die Verwendung von pg_query in Ordnung, aber wenn Sie Parameter verwenden müssen, verwenden Sie bitte pg_query_params.

+0

Vielen Dank für Ihre Hilfe, wenn ich den Code mit XAMPP ausführen Ich bekomme den folgenden Fehler: ** Aufruf zu undefinierte Funktion pg_connect() in C: \ xampp \ htdocs \ downloader.php in Zeile 8 ** Irgendwelche Hinweise, wie Sie das bitte beheben können? –

+0

Ja, Sie haben nicht die Erweiterung beteiligt http://php.net/manual/en/pgsql.installation.php (aber das ist wirklich eine andere Frage) – e4c5

+0

Ich habe die Erweiterung erfolgreich installiert, jedoch, wenn ich die ausführen Code, bekomme ich die folgende Nachricht: ** Hinweis: Undefinierter Index: file_ID in C: \ wamp64 \ www \ Downloader.php ** Es sieht aus wie entweder die _query_ oder der Teil _pg_fetch_array ($ results) _ verursacht dies. –

0
<?PHP 
    ini_set('error_reporting',E_ALL); 

    $website = "https://website.com; 

    //Connect to Database 
    $con = pg_connect("postgres://................." ); 

    $query = "SELECT * FROM userdata"; 
    $results = pg_query($con, $query); 
    $row_users = pg_fetch_array($results); 

    while ($row_users = pg_fetch_array($results)) { 

     $fileID = $row_users["file_ID"]; 
     $filePath = file_get_contents("$website/getFile?file_id=" . $fileID); 
     $fixedPath = str_replace("\\","","$filePath"); 

     } 

    pg_close($con); 
?> 
1

denke ich, das Problem mit Apostroph

$fileID = $row_users['file_ID']; 
$filePath = file_get_contents($website."/getFile?file_id=".$fileID); 
$fixedPath = str_replace("\\","",$filePath); 

denken ist ich Sie die "$" mit der Variablen $fileID verpasst. Auch Anweisung innerhalb des Anführungsstrichs wird nicht von PHP-Interpreter verarbeitet, so $filePath wurde nicht korrekt Wert