PDA

View Full Version : معادل این کد در pdo



behnam007
یک شنبه 24 شهریور 1392, 17:25 عصر
سلام من یک کد دارم که میخوام به صورت pdo بنویسم
کد :


$Query = mysql_query ("SELECT * FROM news WHERE status='normal' ORDER BY id DESC");
while ( $row_news = mysql_fetch_array($Query) ) {
echo $row_news['title'].'<br>';
$sql=mysql_query("SELECT name from comments WHERE status='Not confirmed' AND n_id='".$row_news['id']."' AND kind='news' ");
echo ' تعداد نظر '.mysql_num_rows($sql);
}

کدی که به صورت pdo نوشتم:


$Query =$pdo->query("SELECT * FROM news WHERE status='normal' ORDER BY id DESC");
while ($row_news =$Query->fetch() ) {
echo $row_news['title'].'<br>';
$num = $pdo->exec("SELECT name from comments WHERE status='Not confirmed' and n_id='".$row_news['id']."' AND kind='news' ");
echo ' تعداد نظر '.$num;
}

مشکل کدی که من به صورت pdo نوشتم اینه که قسمت نمایش تعداد نظر ها فقط یکبار اجرا میشه ،از fetchAll به جای fetch هم استفاده کردم اما error میده، به نظر شما مشکل از کجاست؟

parsboy
یک شنبه 24 شهریور 1392, 17:37 عصر
سلام من یک کد دارم که میخوام به صورت pdo بنویسم
کد :


$Query = mysql_query ("SELECT * FROM news WHERE status='normal' ORDER BY id DESC");
while ( $row_news = mysql_fetch_array($Query) ) {
echo $row_news['title'].'<br>';
$sql=mysql_query("SELECT name from comments WHERE status='Not confirmed' AND n_id='".$row_news['id']."' AND kind='news' ");
echo ' تعداد نظر '.mysql_num_rows($sql);
}

کدی که به صورت pdo نوشتم:


$Query =$pdo->query("SELECT * FROM news WHERE status='normal' ORDER BY id DESC");
while ($row_news =$Query->fetch() ) {
echo $row_news['title'].'<br>';
$num = $pdo->exec("SELECT name from comments WHERE status='Not confirmed' and n_id='".$row_news['id']."' AND kind='news' ");
echo ' تعداد نظر '.$num;
}

مشکل کدی که من به صورت pdo نوشتم اینه که قسمت نمایش تعداد نظر ها فقط یکبار اجرا میشه ،از fetchAll به جای fetch هم استفاده کردم اما error میده، به نظر شما مشکل از کجاست؟
باسلام
error که دریافت میکنید بزارید.

Veteran
یک شنبه 24 شهریور 1392, 17:53 عصر
برای fetchAll باید از Foreach استفاده کنید.

parsboy
یک شنبه 24 شهریور 1392, 18:21 عصر
برای fetchAll باید از Foreach استفاده کنید.

$connect->exec('SET NAMES UTF8');
$sql="SELECT * FROM news WHERE status='normal' ORDER BY id DESC";
$sth=$connect->prepare($sql);
$sth->execute();
foreach($sth as $row)

{
echo $row['title'],'<BR>';
}