Добрый день. Прошу помощи. Работа много с MySQL, сейчас все перешли на высокие версии PHP 5.6+ Где mysql не работает! Можете привести пример данного кода в mysqli? PHP: $sql = "SELECT name FROM $db_table WHERE type != '2' AND `name` = '$username'"; $sql = mysql_query($sql); if(mysql_fetch_array($sql)){ $sql = mysql_query("SELECT admin FROM $db_table WHERE name='$username'"); $adm_ban = mysql_result($sql,0); $sql = mysql_query("SELECT reason FROM $db_table WHERE name='$username'"); $res_ban = mysql_result($sql,0); $sql = mysql_query("SELECT temptime FROM $db_table WHERE name='$username'"); $time_ban = mysql_result($sql,0); $sql = mysql_query("SELECT time FROM $db_table WHERE name='$username'"); $time_banned = mysql_result($sql,0); Cпасибо!
Есть полные аналоги большинства этих ф-ций. Лучше бы учились нормально работать с БД, а то будет такая же кривизна, хоть и с использованием нов. ф-ций.
Использую пример https://php.ru/manual/mysqli.query.html Все равно не работает! Вот что получается. PHP: $sql = "SELECT name FROM $db_table WHERE type != '2' AND `name` = 'Kela'"; $sql = mysqli_query($link, $sql); if(mysqli_fetch_array($sql)){ $sql = mysqli_query($link, "SELECT admin FROM $db_table WHERE name='Kela'"); $adm_ban = printf(mysqli_num_rows($sql,0)); $sql = mysqli_query($link, "SELECT reason FROM $db_table WHERE name='Kela'"); $res_ban = printf(mysqli_num_rows($sql,0)); $sql = mysqli_query($link, "SELECT temptime FROM $db_table WHERE name='Kela'"); $time_ban = printf(mysqli_num_rows($sql,0)); $sql = mysqli_query($link, "SELECT time FROM $db_table WHERE name='Kela'"); $time_banned = printf(mysqli_num_rows($sql,0)); Попытка 2 PHP: $sql = "SELECT name FROM $db_table WHERE type != '2' AND `name` = 'Kela'"; $sql = mysqli_query($link, $sql); if(mysqli_fetch_array($sql)){ $sql = mysqli_query($link, "SELECT admin FROM $db_table WHERE name='Kela'"); $adm_ban = mysqli_free_result($sql,0); $sql = mysqli_query($link, "SELECT reason FROM $db_table WHERE name='Kela'"); $res_ban = mysqli_free_result($sql,0); $sql = mysqli_query($link, "SELECT temptime FROM $db_table WHERE name='Kela'"); $time_ban = mysqli_free_result($sql,0); $sql = mysqli_query($link, "SELECT time FROM $db_table WHERE name='Kela'"); $time_banned = mysqli_free_result($sql,0);
var_dump() в помощь. $link точно возвращает соединение? P.S Только заметил. Зачем тебе десятки запросов к БД? Ужас. Код (Text): select * from table where name="Kela" $row=mysqli_fetch_array($result,MYSQLI_ASSOC); printf ("%s (%s)\n",$row["admin"],$row["time"]);
@Kela, т.е. решили взять нас измором? PHP: $sql = "SELECT `name`,`admin`,`reason`,`temptime`,`time` FROM `$db_table` WHERE type != '2' AND `name` = '$username'"; if ($result = mysqli_query($link, $sql)) { if($row = mysql_fetch_assoc($result)) { echo 'Done'; } else echo 'No such row'; mysqli_free_result($result); } else echo 'An error occurs'; Это получение записи в ассоциативном массиве. Если нужно распаковать в отдельные переменные, то есть несколько способов это сделать. При необходимости освобождать $result можно и до if ($row): PHP: $row = mysql_fetch_assoc($result); mysqli_free_result($result); if($row) { --- Добавлено --- ...это если в результирующей выборке не более одной записи.
Fatal error: Uncaught Error: Call to undefined function mysql_fetch_assoc() in /home/u329089/html/engine/modules/banlist/index.php:95 Stack trace: #0 --- Добавлено --- В самом вверху! $link = mysqli_connect("localhost", "3", "3", "3") or die("1.");
Соединения проверил? LastName Age заменил? --- Добавлено --- mysql_fetch_assoc()? Тут люди хитрые никто точного примера не приведет я тоже where type != 2 не дописывал
Я как "Великий специалист PHP" новичок не могу понять куда этот код вставить, или вместо чего? Пример можете сделать с мои кодом. Что бы я понял. Спасибо
PHP: $sql = "SELECT `name`,`admin`,`reason`,`temptime`,`time` FROM `$db_table` WHERE type != '2' AND `name` = '$username'"; $sql=mysqli_query($link,$sql); $row=mysqli_fetch_array($sql,MYSQLI_ASSOC); $adm_ban=$row['admin'] Угадай чему равен $res_ban?
так? PHP: $sql = "SELECT name FROM $db_table WHERE type != '2' AND `name` = 'Kela'"; $sql = mysqli_query($link, $sql); if(mysqli_fetch_array($sql)){ $result = mysqli_query($link, "SELECT * FROM $db_table WHERE name='Kela'"); $row = mysqli_fetch_array($result,MYSQLI_ASSOC); $adm_ban = printf ("%s (%s)\n",$row["admin"],$row["time"]);
PHP: $link=mysqli_connect("localhost","my_user","my_password","my_db"); $db_table = 'table_name'; // your table_name $username = 'Kela' if (mysqli_connect_errno()) echo "Failed to connect to MySQL: " . mysqli_connect_error(); $sql = "SELECT `name`,`admin`,`reason`,`temptime`,`time` FROM `$db_table` WHERE type != '2' AND `name` = '$username'"; $sql=mysqli_query($link,$sql); $rows=mysqli_fetch_array($sql,MYSQLI_ASSOC); // но лучше limit 1 foreach($rows as $row) { $adm_ban=$row['admin']; $xxx_ban=$row['reason']; $xxx_ban=$row['temptime']; $xxx_ban=$row['time']; } mysqli_free_result($sql); mysqli_close($link);
PHP: $sql = "SELECT `name`,`admin`,`reason`,`temptime`,`time` FROM `$db_table` WHERE type != '2' AND `name` = 'Kela'"; $sql = mysqli_query($link, $sql); if(mysqli_fetch_array($sql)){ $row = mysqli_fetch_array($sql,MYSQLI_ASSOC); $adm_ban = $row['admin'] Заблокировал: NULL --- Добавлено --- PHP: $sql = "SELECT `name`,`admin`,`reason`,`temptime`,`time` FROM `$db_table` WHERE type != '2' AND `name` = 'Kela'"; $sql = mysqli_query($link, $sql); if(mysqli_fetch_array($sql)){ $row=mysqli_fetch_array($sql,MYSQLI_ASSOC); $adm_ban = $row['admin']; $res_ban = $row['reason']; $time_ban = $row['temptime']; $time_banned = $row['time']; NULL --- Добавлено --- Этот вариант тоже не работает.. PHP: $sql = "SELECT `name`,`admin`,`reason`,`temptime`,`time` FROM `$db_table` WHERE type != '2' AND `name` = 'Kela'"; $sql=mysqli_query($link,$sql); if(mysqli_fetch_array($sql)){ $rows=mysqli_fetch_array($sql,MYSQLI_ASSOC); foreach($rows as $row) { $adm_ban = $row['admin']; $res_ban = $row['reason']; $time_ban = $row['temptime']; $time_banned = $row['time']; } --- Добавлено --- И этот тоже не работает! PHP: $username = 'Kela'; $sql = "SELECT `name`,`admin`,`reason`,`temptime`,`time` FROM `$db_table` WHERE type != '2' AND `name` = '$username'"; $sql=mysqli_query($link,$sql); if(mysqli_fetch_array($sql)){ $rows=mysqli_fetch_array($sql,MYSQLI_ASSOC); foreach($rows as $row) { $adm_ban = $row['admin']; $res_ban = $row['reason']; $time_ban = $row['temptime']; $time_banned = $row['time']; }
PHP: if(mysqli_connect_errno())echo"Failed to connect to MySQL: ".mysqli_connect_error(); и эта строка ошибку не выдает?
Ну Ё! Я скопипастил код ТСа, поправил на коленке. ЧЁ трудно понять, в чем тут ошибка что ли? --- Добавлено --- У вас точно БД называется 3 или вы решили нас по полной потроллить?
@Kela включи отображения всех ошибок, я тут слезами пробираюсь через код почему синтаксис все еще не выучен ? PHP: if ( $usergroup == '1' || '2' ) { print ...; } else {}; /* ... */ session_start(); перекодил БД, проект не смог запустить, файлы не все были запакованы. В лс выслал --- Добавлено --- переменная $username вообще не существует поэтому вся тема в трабле