2013-07-25 3 views
0

Я создаю приложение, которое извлекает фотографии, которые пользователи загружают через мою службу, и отображает их во всемирной новостной ленте.Grab Stream от конкретного пользователя ID

У меня возникли проблемы с созданием кода MYSQL PHP для конкретного пользователя с конкретным идентификатором пользователя, но не для всех.

В нашей базе данных есть следующая таблица фотографий: IdPhoto, IdUser, title.

Вот как я захватывая во всем мире канал (это работает):

//stream API 
// 
// there are 2 ways to use the function: 
// 1) don't pass any parameters - then the function will fetch all photos from the database 
// 2) pass a photo id as a parameter - then the function will fetch the data of the requested photo 
// 
// Q: what "$IdPhoto=0" means? A: It's the PHP way to say "first param of the function is $IdPhoto, 
// if there's no param sent to the function - initialize $IdPhoto with a default value of 0" 

function stream($IdPhoto=0) { 

if ($IdPhoto==0) { 

    // load the last 50 photos from the "photos" table, also join the "login" so that you can fetch the 
    // usernames of the photos' authors 
    $result = query("SELECT IdPhoto, title, l.IdUser, username FROM photos p JOIN login l ON (l.IdUser = p.IdUser) ORDER BY IdPhoto DESC LIMIT 50"); 

} else { 
    //do the same as above, but just for the photo with the given id 
    $result = query("SELECT IdPhoto, title, l.IdUser, username FROM photos p JOIN login l ON (l.IdUser = p.IdUser) WHERE p.IdPhoto='%d' LIMIT 1", $IdPhoto); 
} 

if (!$result['error']) { 
    // if no error occured, print out the JSON data of the 
    // fetched photo data 
    print json_encode($result); 
} else { 
    //there was an error, print out to the iPhone app 
    errorJson('Photo stream is broken'); 
} 
} 

Я хотел бы сделать подобную сделку. Но для конкретного пользователя с определенным идентификатором. Любые предложения по коду/PHP-коду MYSQL необходимы для этого?

Я попытался следующие за моей профиля функции которые не похоже на работу:

SELECT IdPhoto, IdUser,title, username FROM photos WHERE IdUser=$IdUser; 

Я также вызова функции в моем файле index.php, используя случаи:

case "stream": 
    stream((int)$_POST['IdPhoto']); 
    break; 

Любая идея, что должно быть для моей функции тоже?

+0

Что * тип * является 'IdPhoto'? Попробуйте 'WHERE IdUser = '$ IdUser';' – user1477388

+0

@ user1477388 См. Выше, что я пробовал :) Это целое число – qweqweqwe

+0

Разделите свой '$ result' и фактический запрос, чтобы вы могли вывести фактический запрос перед его отправкой к методу 'query()'. Сообщите нам значение запроса до его запроса. – user1477388

ответ

1

запрос должен быть:

SELECT IdPhoto, IdUser, title FROM photos WHERE IdUser = $IdUser; 
1

Обязательно используйте одинарные кавычки, когда вы объявляете переменные; т.е. IdUser = '$ IdUser' ;.

+0

Нет необходимости использовать одинарные кавычки, так как это целое число. – Simone

Смежные вопросы