2015-07-15 5 views
0

Я новичок в php &, создавая страницу, где я хочу получить данные из db &, разбиение на страницы должно быть в алфавитном формате. iEe A | B | C | .... При нажатии кнопки A он должен отображать имена, начинающиеся только с A. В настоящее время я просто использую функцию LIMIT. Пожалуйста, помогите!Как добавить алфавитную разбивку на страницы на странице

<?php 
    $host="localhost"; // Host name 
    $username="root"; // Mysql username 
    $password=""; // Mysql password 
    $db_name="testmra"; // Database name 
    // Connect to server and select databse. 
    $conn=mysqli_connect($host,$username,$password) or die("cannot connect"); 
    mysqli_select_db($conn,$db_name); 
    $sql = "SELECT * FROM newuser WHERE role='User' ORDER BY name asc LIMIT 15"; 
    $query = mysqli_query($conn,$sql); 

    echo "<table border='1' id='mytable' width='100%'> 
     <tr><th colspan='9' align='center'><h2>User Details</h2></th></tr> 
     <tr bgcolor='grey'> 
      <th width='25%'>Full Name</th> 
      <th width='25%'>Department</th> 
      <th width='25%'>EmailId</th> 
      <th width='25%'>Username</th> 
     </tr>"; 
     while($row = mysqli_fetch_array($query)) 
     { 
      echo "<tr>"; 
      echo "<td align='center'>" . $row['name']. "</td>"; 
      echo "<td align='center'>" . $row['department']. "</td>"; 
      echo "<td align='center'>" . $row['emailid'] . "</td>"; 
      echo "<td align='center'>" . $row['username'] . "</td>"; 
      echo "</tr>"; 
     } 
    echo "</table>"; 
    mysqli_close($conn); 
?> 
+0

Я не спускал вас вниз, но у меня возникает соблазн сделать это, потому что вы пропустили так много важной информации, необходимой для получения надежного ответа. –

+0

Сэр какая важная информация, которую я пропустил? – Fresher

+0

Вы опустили какую-либо информацию о таблице 'newuser', в том числе о том, какой столбец нужно сортировать в алфавитном порядке, для начала. –

ответ

1
<?php 
    $host="localhost"; // Host name 
    $username="root"; // Mysql username 
    $password=""; // Mysql password 
    $db_name="testmra"; // Database name 
    // Connect to server and select databse. 

    $conn=mysqli_connect($host,$username,$password) or die("cannot connect"); 
    mysqli_select_db($conn,$db_name); 
    if(isset($_GET['get'])){ 
     $get = mysqli_real_escape_string($_GET['get']); 
    }else{ 
     $get = ''; 
    } 
    $sql = "SELECT * FROM newuser WHERE role='User' AND name LIKE '$get%' ORDER BY name asc LIMIT 15"; 
    $query = mysqli_query($conn,$sql); 

    echo "<table border='1' id='mytable' width='100%'> 
     <tr><th colspan='9' align='center'><h2>User Details</h2></th></tr> 
     <tr bgcolor='grey'> 
      <th width='25%'>Full Name</th> 
      <th width='25%'>Department</th> 
      <th width='25%'>EmailId</th> 
      <th width='25%'>Username</th> 
     </tr>"; 
     while($row = mysqli_fetch_array($query)) 
     { 
      echo "<tr>"; 
      echo "<td align='center'>" . $row['name']. "</td>"; 
      echo "<td align='center'>" . $row['department']. "</td>"; 
      echo "<td align='center'>" . $row['emailid'] . "</td>"; 
      echo "<td align='center'>" . $row['username'] . "</td>"; 
      echo "</tr>"; 
     } 
    echo "</table>"; 
    mysqli_close($conn); 
?> 
<?php 
$alphas = range('A', 'Z'); 
foreach ($alphas as $key) {?> 
<a href="answer.php?get=<?php echo $key ?>"><?php echo $key ?></a> 
<?php }?> 

помощью этого вы получите каждые алфавитов так называют его с помощью Ajax и вы получите свои алфавиты, используя метод GET. Создайте новую страницу answer.php для этого кода.

+0

Сэр, я только что отредактировал код, и он отлично работает! Спасибо – Fresher

+0

Сэр просто 1 вопрос i.e Как я могу просто звонить данные, начиная с A всякий раз, когда страница называется? Потому что сейчас он показывает все записи из базы данных, когда страница называется – Fresher

+0

. Пожалуйста, проверьте ее в MYSQL. «SELECT * FROM newuser WHERE role =« Пользователь »И имя LIKE« A% »ORDER BY name asc LIMIT 15"; Вы получите более подробную информацию здесь, например, для инструкции для mysql http://www.tutorialspoint.com/mysql/mysql-like-clause.htm –

1

Я хотел бы добавить это как комментарий к принятому ответу, но у меня нет достаточной репутации, чтобы сделать это пока, извините!

Ответ хороший, но я бы сильно отказался от размещения переменных внутри SQL-оператора, несмотря на то, что он избежал строки, прежде чем вставлять его, но это потенциальный риск.

StackOverflow: Preventing SQL injection

выше ссылка объясняет в отличном деталях, как иметь дело с этим вопросом правильно. Очень полезно прочитать для всех, кто участвует в SQL на любом уровне.

+0

Вы можете проверить правильно? Я использовал mysqli_real_escape_string. поэтому он предотвращает инъекции mysql. –

+0

[Почему подготовленные заявления лучше, чем экранирование) (http://stackoverflow.com/questions/4771984/are-dynamic-mysql-queries-with-sql-escaping-just-as-secure-as-prepared-statements) –

+0

Анкит, я бы рекомендовал оставить ответ Шашиканта в качестве принятого ответа, поскольку это полное рабочее решение. Шахта - всего лишь своя безопасность. Было бы неплохо, если бы вы считали, что это полезно, но это не полный ответ, поэтому не следует принимать –

Смежные вопросы