2013-05-18 3 views
0

Im пытается создать динамические ссылки с некоторой пост внутри таблицы базы данных, , но я не могу понять, как создать ссылку, когда пользователь уже вошел в систему.создать динамическую связь с Mysql таблицы

Я думаю, что что-то как это.

<?php $articles = new Articles(); 

foreach($articles->fetch_user_article($_GET['uid']) as $article) :?> 
<a href="edit_articles.php?uid=<?php echo $_SESSION['id']?>&article=<?php echo $article['id'];?>"><?php echo $article['title'];?></a> 

    <?php endforeach ?> 

Это дает мне ссылку, которая выглядит, как этот

edit_articles.php?uid=5&article=213 

идентификатор статьи: s правильны из таблицы БД.

Теперь мой edit_articles.php файл

$articles = new Articles(); 
$article = $articles->fetch_user_article($_GET['uid']); 
echo $article['text']; 

Но когда им достичь файл edit_articles.php я получить

Undefined index: text 

И моя функция

function fetch_user_article($uid){ 
     $uid = (int)$uid; 
     $query = $this->link->query ("SELECT id, title,text FROM blog WHERE user_id = '{$uid}' "); 
     $tweet = array(); 
     while(($row = $query->fetch(PDO::FETCH_ASSOC)) !== FALSE) { 
      $tweet[] = $row; 
     } 
     return $tweet; 
    } 
+0

Это потому, что нет «текст» индекс статьи массива. Является ли статья возвращена как массив из fetch_user_article()? или это фактический текст статьи. Мне нужно будет увидеть код для fetch_user_article(), чтобы помочь дальше. – mlewis54

+0

@ mlewis54 Я обновил вопрос с помощью функции. – Dymond

+0

Я считаю, что структура массива должна быть: $ article [0] => (id = 5, title = 'blah', text = 'blah de blah blah "), $ article [1] => (id = 5, 'title 2', text = 'text 2') Кажется, вам нужно обратиться к статье [0] ['text']. Используйте print_r ($ article), чтобы увидеть структуру массива. – mlewis54

ответ

1

Ваша функция fetch_user_article возвращается более одной статьи. Используйте, как это, для всех статей.

$articles = $articles->fetch_user_article($_GET['uid']); 

foreach ($articles AS $article) { 
    echo $article['text']; 
} 

Если вы хотите fetch_user_article вернуть только одну статью, то поле user_id таблицы блога должен быть уникальным.

Или вам придется переписать запрос

SELECT id, title,text FROM blog WHERE user_id = '{$uid}' 

так что это дает вам только один результат, что-то вроде:

 $article_id = $_GET['article']; 
     SELECT id, title,text FROM blog WHERE id = '{$article_id}' 
+0

okej, но как я могу переписать запрос, чтобы он понял, что когда я захочу ввести post 270, он откроет столбец 270, а не первый в таблице? – Dymond

+0

Таким образом, условие в вашем запросе должно быть WHERE id = 270. Отредактированный ответ. – LorenzoR

+0

Ваше право !! Попробуй это сразу. – Dymond