2015-10-24 4 views
1

Я пытаюсь извлечь данные из нескольких таблиц. Поэтому, когда пользователь нажимает и выбирает файл php-файла для извлечения данных из соответствующей таблицы.извлекать данные с использованием Ajax и mysql

Это моя первая попытка использовать Ajax в школьном коде w3 и пытаться изменить, я думаю, что я использую, если условие является проблемой? Прежде чем я попытаюсь использовать несколько таблиц, это сработало.

My Script

<script> 
function showUser(str) { 
if (str == "") { 
    document.getElementById("txtHint").innerHTML = "Please Select type of users to view"; 
    return; 
} else { 
    if (window.XMLHttpRequest) { 
     // code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp = new XMLHttpRequest(); 
    } else { 
     // code for IE6, IE5 
     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    xmlhttp.onreadystatechange = function() { 
     if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
      document.getElementById("txtHint").innerHTML = xmlhttp.responseText; 
     } 
    } 
    xmlhttp.open("GET","get_users.php?q="+str,true); 
    xmlhttp.send(); 
    } 
} 
</script> 

Моя форма

<form> 
<select name="users" onchange="showUser(this.value)"> 
<option value="">Select a person:</option> 
<option value="1">Staff</option> 
<option value="2">Admin</option> 
<option value="3">Customers</option> 
</select> 
</form> 

Мой PHP Page

<?php 
$q = intval($_GET['q']); 

$con = mysqli_connect('localhost','X','X','X'); 
if (!$con) { 
die('Could not connect: ' . mysqli_error($con)); 
} 

mysqli_select_db($con); 

if ($q='Admin') 
{ 

$sql="SELECT * FROM admin"; 
$result = mysqli_query($con,$sql); 

echo "<table> 
<tr> 
<th>Email</th> 
<th>Name</th> 
<th>Mobile</th> 
<th>Address</th> 
<th>Password</th> 
</tr>"; 
while($row = mysqli_fetch_array($result)) { 
echo "<tr>"; 
echo "<td>" . $row['email'] . "</td>"; 
echo "<td>" . $row['name'] . "</td>"; 
echo "<td>" . $row['mobile'] . "</td>"; 
echo "<td>" . $row['address'] . "</td>"; 
echo "<td>" . $row['password'] . "</td>"; 
echo "</tr>"; 
} 
echo "</table>"; 

else if ($q='Staff') 
{ 
echo "This is from Database B 
} 

else 
{ 
echo "This is from database C"; 
} 

mysqli_close($con); 
?> 
+1

это не удается по 2 причинам 'если ($ д = 'Администратор')' и это 'else if ($ q = 'Staff')' возможно 3 причины. –

ответ

1

Вы с помощью $q = intval($_GET['q']); со строковым значением для ваших заданий.

intval()«Получить целое значение переменной»

<option value="1">Staff</option> 
<option value="2">Admin</option> 
<option value="3">Customers</option> 

и используя assignment, а не comparison как для if ($q='Admin') и else if ($q='Staff') оба являются строками, в отличие от целых чисел в ваших вариантов.

, который должен читать как и с 2 равными знаками if ($q=='2') и else if ($q=='1'), чтобы соответствовать цифровым значениям выбора.

Или изменить их в соответствии с вашими параметрами, чтобы читать Staff и AdminCustomers) в значениях, при удалении intval() из массива GET; Выбор ваш.

Вы также не нуждаетесь в mysqli_select_db($con);, так как вы указали свои 4 параметра в своем первоначальном подключении и потерпите неудачу по другой причине; технически вы не выбрали для него базу данных.

Вы также отсутствуют цитаты и запятой в (синтаксическая ошибка синтаксического анализа)

echo "This is from Database B 

, который следует читать

echo "This is from Database B"; 

Сноски:

Страница, на которую я полагаю, что вы основали себя, кажется http://www.w3schools.com/php/php_ajax_database.asp

Если это так, то я предлагаю вам полностью следовать их примеру и медленно его изменять в соответствии с вашими потребностями. Я сам использовал эту демонстрацию (в далеком прошлом) с успехом.

В их примере также используется статья WHERE.

$sql="SELECT * FROM user WHERE id = '".$q."'"; 

Edit: Только для записи, есть недостающая распорка для этого условия:

if ($q='Admin') 
{ 
+0

Спасибо. Также я пропустил} в условии if. :-) – CJM

+0

@ CJM Добро пожаловать, рад помочь, * ура *. Edit: Да, я только что заметил это сейчас. Виноват. Спасибо, что дали мне знать. Я сделал для него дополнительное редактирование. –

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