Извините за путаницу, вот что я спрашиваю. Я пытаюсь отправить видео на ftp-сервер, но не хочу, чтобы уже существующие на ftp видео были повторно загружены. Следовательно, мне нужен способ сообщить базе данных об этом. То, что у меня есть, ниже, внесено изменение благодаря @neo, но оно все еще возвращает и недействительный запрос.

<?php

$dest="/Tools";


$query = "SELECT videoid AS videoId FROM videos 
WHERE channel = 62 AND videoid NOT IN (@videoId)";


$results = mysql_query($query);

$server=("ftp.//");

$connect=ftp_connect($server);

$login_result=ftp_login($connect,"","");

if(!(login_result)||!($connect))
{
$error;
}
else
{
echo "success";
}


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


while ($row = mysql_fetch_assoc($result)) {
    // loop through every videoid returned, ftp each individually
$upload=ftp_put($connect,$dest,$row['videoid'],FTP_BINARY);
if (!upload)
{
echo "failed to upload $results\n";
}

else{
echo "successfully uploaded $videoid";
}

ftp_close($connect);

}
mysql_free_result($result);





?>
0
user875139 29 Авг 2011 в 16:09

3 ответа

Лучший ответ

ВЫБЕРИТЕ shoes.shoeid КАК shoeId ИЗ обуви, ГДЕ цвет = КРАСНЫЙ И обувь.shoeid НЕ ВХОДИТ (@shoeID);

Где @shoeID - это список идентификаторов обуви, разделенных запятыми, которые уже были загружены на FTP-сервер.

2
neo 29 Авг 2011 в 12:58

Вы имеете в виду что-то вроде:

SELECT shoes.shoeid AS shoeId, sox.shoeid AS soxId
FROM shoes, sox
WHERE color = RED AND sox.shoeid = shoes.shoeid;

Это вернет поле с их новым псевдонимом: shoeId и soxId

ПРИМЕЧАНИЕ. Это построено на логике MySQL. Он должен работать на другом движке sql, но не протестирован.

0
Yuck 29 Авг 2011 в 12:29

Вам необходимо получить список обуви, который уже был загружен на сервер.

Либо поместите флаг в db, как сказано в "Neo", иначе пройдитесь через всю обувь на FTP-сервере, а затем передайте его в db. Хотя последнее совсем не рекомендуется.

0
Raj Jayaswal 29 Авг 2011 в 13:30