ОБСУЖДЕНИЕ

Перевести с MySQL на PDO

20 сообщений0 просмотровОткрыта
#1
Всем привет, прошу помощи, т.к только изучаю PDO помогите перевести данный код. В PDO не использую ни каких классов исключительно пишу на "чистом".
PHP

if(empty($user['str'])) $user['str'] = 10;
$max = $user['str'];
$k_post = mysql_result(mysql_query("SELECT COUNT(*) FROM `news`"),0);
$k_page = k_page($k_post,$max);
$page = page($k_page);
$start = $max*$page-$max;

$a = mysql_query("SELECT * FROM `news` ORDER BY `id` DESC LIMIT $start, $max");
while($b = mysql_fetch_assoc($a))
{
echo '<div class="news"><div class="divnews">
'.text($b['text']).'
<br />
<img src="/design/imgdes/neww.png" alt="*" /> <b>Добавил:</b> '.nick($b['us']).' ('.times($b['time']).')
<br />
<img src="/design/imgdes/neww.png" alt="*" /> <a href="/news/comm'.$b['id'].'">Комментарии</a> ('.mysql_result(mysql_query('select count(`id`) from `news_comm` where `news` = "'.$b['id'].'"'),0).')';
if($user['level'] > 1) echo '<br /> <img src="/design/imgdes/neww.png" alt="*" /> <a href="/news/edit'.$b['id'].'">Редактировать</a> | <a href="/news/delete'.$b['id'].'">Удалить</a>';
echo '</div></div>';
}

if($k_post < 1) echo '<div class="hit" style="text-align:center;font-weight:bold;">Новостей пока нет.</div>';
if($k_page > 1) echo str('/news/?',$k_page,$page);

#2
$k_post = $db->query("SELECT * FROM `news`")-rowCount();
#3
$a = $db->query("SELECT * FROM `news` ORDER BY `id` DESC LIMIT $start, $max");
while($b = $a->fetch())
#4
andrey69rus, Спасибо! При выводе не нужно использовать функции типа: execute?
#5
$db->query('select `id` from `news_comm` where `news` ='.$b['id'])->rowCount();
#6
тут всё понятно описано) http://php.net/manual/ru/pdostatement.execute.php
#7
andrey69rus, Все сделал, вообще ничего не выводит..
PHP

if(empty($user['str'])) $user['str'] = 10;
$max = $user['str'];
$k_post = $db->query("SELECT * FROM `news`")-rowCount();
$k_page = k_page($k_post,$max);
$page = page($k_page);
$start = $max*$page-$max;

$a = $db->query("SELECT * FROM `news` ORDER BY `id` DESC LIMIT $start, $max");
while($b = $a->fetch()){
echo '<div class="news"><div class="divnews">
'.text($b['text']).'
<br />
<img src="/design/imgdes/neww.png" alt="*" /> <b>Добавил:</b> '.nick($b['us']).' ('.times($b['time']).')
<br />
<img src="/design/imgdes/neww.png" alt="*" /> <a href="/news/comm'.$b['id'].'">Комментарии</a>';
if($user['level'] >= 6) echo '<br /> <img src="/design/imgdes/neww.png" alt="*" /> <a href="/news/edit'.$b['id'].'">Редактировать</a> | <a href="/news/delete'.$b['id'].'">Удалить</a>';
echo '</div></div>';
}

if($k_post < 1) echo '<div class="hit" style="text-align:center;font-weight:bold;">Новостей пока нет.</div>';
if($k_page > 1) echo str('/news/?',$k_page,$page);
#8
<?php
if(empty($user['str'])) $user['str'] = 10;
$max = $user['str'];
$k_post = $db->query("SELECT * FROM `news`")->rowCount();
$k_page = k_page($k_post,$max);
$page = page($k_page);
$start = $max*$page-$max;

$a = $db->query("SELECT * FROM `news` ORDER BY `id` DESC LIMIT $start, $max");
while($b = $a->fetch()){
echo '<div class="news"><div class="divnews">
'.text($b['text']).'
<br />
<img src="/design/imgdes/neww.png" alt="*" /> <b>Добавил:</b> '.nick($b['us']).' ('.times($b['time']).')
<br />
<img src="/design/imgdes/neww.png" alt="*" /> <a href="/news/comm'.$b['id'].'">Комментарии</a>';
if($user['level'] >= 6) echo '<br /> <img src="/design/imgdes/neww.png" alt="*" /> <a href="/news/edit'.$b['id'].'">Редактировать</a> | <a href="/news/delete'.$b['id'].'">Удалить</a>';
echo '</div></div>';
}

if($k_post < 1) echo '<div class="hit" style="text-align:center;font-weight:bold;">Новостей пока нет.</div>';
if($k_page > 1) echo str('/news/?',$k_page,$page);
?>
#9
к бд правильно подключаешься?
#10
пример подключения к бд те https://cloud.mail.ru/public/997ef60abd27%2F1%2F
#11
andrey69rus, Да
#12
чуть выше пост)
#13
andrey69rus, Подключение правильное
#14
в начало php файла добавь
error_reporting(E_ALL);

ini_set("display_errors", 1);
#15
andrey69rus, Notice: Undefined index: act in /home/usr/data/mma/public_html/news.php on line 17

Fatal error: Call to undefined function rowCount() in /home/usr/data/mma/public_html/news.php on line 29
#16
воть тебе и ошибки
#17
мой вам совет, не полениться и полистать в интернете, состряпать класс для использования PDO, т.к. в чистом виде кода получится многовато. используется execute, prepare
#18
andrey69rus, А как этот код перевести на PDO?
PHP
function nick($id){

$us = mysql_fetch_array(mysql_query("SELECT * FROM `users` WHERE `id` = '".$id."' LIMIT 1"));

if($us['sex'] == 1) {

if($us['vizit'] > time()-720) {
$icon = '<img src="/img/ank/m.png" alt="*"/>';
} else {
$icon = '<img src="/img/ank/mf.png" alt="*"/>';
}
}
else
if($us['sex'] == 2) {

if($us['vizit'] > time()-720) {
$icon = '<img src="/img/ank/j.png" alt="*"/>';
} else {
$icon = '<img src="/img/ank/jf.png" alt="*"/>';
}
}

if($us['level'] == 1)
$admin = '[Мод.]';
else
if($us['level'] == 2)
$admin = '[Адм.]';
else
if($us['level'] == 3)
$admin = '[Соз.]';

return (empty($us)?'[Delete]':$icon.' <a href="/id'.$us['id'].'"><b>'.$us['login'].'</b> <font color="green">'.$admin.'</font></a>');
}
#19
Помоги с кодом выше, и все))
#20
Владислав,
PHP
function nick($id){
$us = $db->query("SELECT * FROM `users` WHERE `id` = '".$id."' LIMIT 1");
$us = $us -> fetch();
if($us['sex'] == 1) {
if($us['vizit'] > time()-720){
$icon = '<img src="/img/ank/m.png" alt="*"/>';
} else {
$icon = '<img src="/img/ank/mf.png" alt="*"/>';
}
}
else
if($us['sex'] == 2) {
if($us['vizit'] > time()-720){
$icon = '<img src="/img/ank/j.png" alt="*"/>';
} else {
$icon = '<img src="/img/ank/jf.png" alt="*"/>';
}
}
if($us['level'] == 1)
$admin = '[Мод.]';
else
if($us['level'] == 2)
$admin = '[Адм.]';
else
if($us['level'] == 3)
$admin = '[Соз.]';
return (empty($us)?'[Delete]':$icon.' <a href="/id'.$us['id'].'"><b>'.$us['login'].'</b> <font color="green">'.$admin.'</font></a>');
}