tbl_categorie からカテゴリを選択するための PHP コードがあります。これで、記事に複数のカテゴリを含めることができるフォームで複数選択ができました。データベースに値を挿入するときに、複数のカテゴリの値を 1 つの列/属性に格納したいと考えています。ID_CAT 属性は、コンマ (,) で区切られた tbl_categorie のカテゴリ ID のみを格納します。1 つの DB に 2 つのテーブルがあり、
tbl_blog:
ID_BLOG ID_CAT TITLE ARTICL DATE
1 1,3 title1 article1 2013-03-04
2 4,10 title2 article2 2013-03-04
3 3,6 title3 article3 2013-03-04
tbl_categorie:
ID_CAT NOM_CAT
1 HTML
2 CSS
3 DESIGN
4 PHP
5 ..
implode() ステートメントを使用しましたが、最初に 1 つの記事に 2 つの ID_CAT を追加するのに問題がありますが、ID_CAT のタイプを int から varchar に変更すると機能します。記事を追加するプロセスは次のとおりです。
Article::creatArticle(0,$_POST['title'],implode(', ', $_POST['id_categorie']),$_POST['article']);
これは class_article から記事を追加する関数です:
/**
* function créeArticle
*/
public static function creatArticle($id_article,$title,$id_categorie,$article)
{
global $db;
$req = $db->prepare("INSERT INTO blog (ID_BLOG,TITLE,ID_CAT, ARTICLE,DATE) VALUES ('',:title,:id_categorie,:article,'".date('Y-m-d')."')");
$ok = $req->execute(Array('title' =>$title,'id_categorie' => $id_categorie,'article' => $article));
return $db->lastInsertId();
//$erreur = $req->errorInfo();
}
今、私は各記事にあるすべてのカテゴリを取得するのに問題があります.
<?php
foreach(Article::getAllArticle()as $blog ){
$article= new Article($blog->ID_BLOG);
$categorie = new Categorie($article->getIDCategorie());
echo'
<tr>';
echo '<td><input type="checkbox" /></td>';
echo '<td>'.$article->getTitlearticle().'</td>';
echo '<td>'.$categorie->getNomCategorie().'</td>';
echo '<td>'.$article->getDatearticle().'</td>';
echo '<td>35</td>';
echo ' <td class="actions">';
echo '<a href="javascript:editArticle('.$article->getIDarticle().');" title="Edit this content"><img src="img/icons/actions/edit.png" alt="" /></a>';
echo ' <a href="javascript:deleteArticle('.$article->getIDarticle().');" title="Delete this content"><img src="img/icons/actions/delete.png" alt="" /></a></td>';
echo '</tr>';
} ..
私は私が爆発()ステートメントを使用するか、ループを作成する必要があることを知っていますが、私はそれを理解することができません:( 、そして私はID_CATのタイプがvarcharであるべきかどうか疑問に思っています問題を起こす?ありがとう!