2011-08-26 6 views
0

Je suis en train d'obtenir le chemin direct du résultat de $ ci-dessous:obtenir un résultat de requête en php

$query="SELECT videoid from blabla"; 
$result=mysql_query($query); 
$destination="ftp:/.../"; 

Je suis en train d'obtenir le chemin direct du VideoId qui est en $ result donc Je peux envoyer tous les fichiers vidéo réels à un ftp.

Jusqu'à présent, j'ai:

ftp_put ($connection,$destination,$result,FTP_ASCII); 

Quand je le lance, il dit que la source doit être une chaîne ou quelque chose comme ça.

Répondre

1

$result n'est pas le champ que vous recherchez, vous devez aller chercher les données du $result. Notez l'appel mysql_fetch_assoc qui extrait les données du résultat de la requête.

Voici un exemple de la mysql_query documentation

// Formulate Query 
// This is the best way to perform an SQL query 
// For more examples, see mysql_real_escape_string() 
$query = sprintf("SELECT firstname, lastname, address, age FROM friends WHERE firstname='%s' AND lastname='%s'", 
    mysql_real_escape_string('fred'), 
    mysql_real_escape_string('fox')); 

// Perform Query 
$result = mysql_query($query); 

// Check result 
// This shows the actual query sent to MySQL, and the error. Useful for debugging. 
if (!$result) { 
    $message = 'Invalid query: ' . mysql_error() . "\n"; 
    $message .= 'Whole query: ' . $query; 
    die($message); 
} 

// Use result 
// Attempting to print $result won't allow access to information in the resource 
// One of the mysql result functions must be used 
// See also mysql_result(), mysql_fetch_array(), mysql_fetch_row(), etc. 
while ($row = mysql_fetch_assoc($result)) { 
    echo $row['firstname']; 
    echo $row['lastname']; 
    echo $row['address']; 
    echo $row['age']; 
} 

// Free the resources associated with the result set 
// This is done automatically at the end of the script 
mysql_free_result($result); 

Vous pouvez donc modifier votre code comme suit:

$query="SELECT videoid from blabla"; 
$result=mysql_query($query); 

if (!$result) { 
    $message = 'Invalid query: ' . mysql_error() . "\n"; 
    die($message); 
} 

while ($row = mysql_fetch_assoc($result)) { 
    // loop through every videoid returned, ftp each individually 
    ftp_put ($connection,$destination,$row['videoid'],FTP_ASCII); 
} 
mysql_free_result($result); 
+0

@JJ, quel est le but de 'mysql_real_escape_string ('fred'), mysql_real_escape_string ('fox'));'? Ça n'a aucun sens. Vouliez-vous remplacer 'fred' par' $ _POST ['fred'] '? – Johan

+1

Fred est simplement un prénom d'exemple donné dans l'exemple. 'mysql_real_escape_string' échappe à certains caractères dans les données d'entrée pour éviter des problèmes tels que" injection sql "(Google this). Aussi Google 'mysql_real_escape_string' pour en savoir plus. –

+0

Merci pour l'explication JJ cela fonctionne comme un charme :) – user875139

0
$query = "SELECT videoid from blabla"; 
$result = mysql_query($query); 
$row = mysql_fetch_row($result); 
$videoid = $row[0]; // <== there is your videoid 
$destination="ftp:/.../"; 
ftp_put($connection, $destination, $videoid, FTP_ASCII); 
+0

Merci beaucoup pour votre explication – user875139

0

Vous devez probablement quelque chose comme ceci:

Pour sélectionner une vidéo:

// select all fields, not just the videoid 
$query = "SELECT * FROM blabla WHERE videoid = 1"; // replace 1 with actual video id 
// or only fields videoid and path 
$query = "SELECT videoid, path FROM blabla WHERE videoid = 1"; // replace 1 with actual video id 
$result = mysql_query($query); 
$row = mysql_fetch_assoc($result); 
$path = $row[ 'path' ]; // presuming 'path' is the column name 
/* do some ftp stuff */ 

Pour sélectionner toutes les vidéos:

// select all fields, not just the videoid 
$query = "SELECT * FROM blabla"; 
// or only fields videoid and path 
$query = "SELECT videoid, path FROM blabla"; 
$result = mysql_query($query); 
while($row = mysql_fetch_assoc($result)) 
{ 
    $path = $row[ 'path' ]; // presuming 'path' is the column name 
    /* do some ftp stuff per row */ 
} 
+0

Merci beaucoup pour votre explication – user875139

Questions connexes