2015-05-02 6 views
0

Я написал этот простой скрипт на основе моей таблицы базы данных (db_member) с автоматически увеличивающейся строкой, я бы и некоторые другие столбцы: 1: столбец «привилегия», значения привилегий могут быть одним «A», «B» или «C».MySQL не выводит результат PHP-запроса

2: колонка «имя пользователя», для соответствующих имен пользователей

Цель: Вывод «имя пользователя» на строке, где значение «привилегия» имеет значение «А». В базе данных есть только одна такая строка.

Окружающая среда: Windows 7 Ultimate. XAMPP 1.8.2. Установка XAMPP имеет Apache 2.4.10, MySQL 5.4.39, PHP 5.4.31. Dreamweaver CS6 и Mozilla Firefox,

Наблюдение: Скрипт запускается в браузере. Однако точное место для скрипта становится пустым даже в исходном коде firefox. Ни результат, ни ошибка.

Быстро стучал головой об этом в течение двух недель. И да ... Я искал в Интернете безрезультатно.

Сценарий:

<?php 

    error_reporting(1); 

    ?> 
    <!doctype html> 
    <html> 
    <head> 
    <meta charset="utf-8"> 
    <title>My site</title> 
    </head> 

    <body> 
    <div id="container"> 
    <header> 
    </header> 
    <section> 
    <h1>Testing, testing, 1, 2, 3.</h1> 
    <?php 

    $host = 'localhost'; 
    $user = 'dbuser'; 
    $password = 'userpass'; 
    $database_name = 'dbname'; 


    //Establish a connection with MySQL 
    $db = mysql_connect($host, $user, $password) or 
    die('<b>Sorry!<br>Unable to connect to the database .<br/>Please try later.</b>'); 

    //Ensure the correct database is accessed 
    mysql_select_db($database_name, $db) or die(mysql_error($db)); 


    $query = 'SELECT * FROM db_members WHERE privilege = "A"'; 
    $result = mysql_query($query, $db) or die('Can\'t connect to database'); 

    mysql_fetch_array($result); 
    if(mysql_num_rows($result) > 0) 
    { 
    echo $row['username']; 
    } 
    else{ 
    echo '<b>There\'s no result.</b>'; 
    } 

?> 
</section> 
</div><!--End of container--> 
</body> 
</html> 
+0

вы получаете любую ошибку –

+1

mysql_fetch_array ($ результат) ; код должен быть $ row = mysql_fetch_array ($ result); –

+0

Не используйте select *. Это бесполезно для нас, и оно медленное для вас. – Strawberry

ответ

0

У вас есть 2 проблемы со сценарием

  1. Вы должны удалить дополнительную одиночную кавычку после открытия PHP теги в первой строке

    <?php' 
    
  2. Перед использованием $ row, вам необходимо присвоить ему значение:

    $row = mysql_fetch_array($result); 
    if(mysql_num_rows($result) > 0) 
    { 
        echo $row['username']; 
    } else { 
        echo '<b>There\'s no result.</b>'; 
    } 
    

    Примечание: Приведенный выше код будет загружать только одну строку из базы данных, если вы хотите загрузить несколько строк, то вам нужно использовать цикл While Loop

    while ($row = mysql_fetch_array($result)) 
    { 
        echo $row['username']; 
    } else { 
        echo '<b>There\'s no result.</b>'; 
    } 
    
+0

Спасибо. Я удалил апостроф за PHP-тегом и отредактировал сценарий, как он советовал. Спасибо всем – Wasiu

2

Вы не собрали mysql_fetch_array ($ результат); результат в $ строке

$row= mysql_fetch_array($result); 
+1

Это обычно сидит внутри цикла while (согласно 2,5 миллиардам примеров в Интернете, которые op не удалось найти) – Strawberry

+0

зависит от требований пользователя, если он хочет получить только одну строку, тогда цикл не требуется –