2013-08-13 4 views
1

Это ссылка посылов за $ Row [pk_tId] на JavaScript:запрос не возвращая никаких результатов

<a class=\"open-EditRow btn btn-primary btn-mini\" data-toggle=\"modal\" href=\"#myEditModal\" data-id=\"".$Row[pk_tId]."\" title=\"Edit this row\" \">Delete/Edit</a></td>"; 

Это Javascript, который посылает $ Row [pk_tId], как GroupID к модальным (на той же странице):

$(document).on("click", ".open-EditRow", function() { 
    var myGroupId = $(this).data('id'); 
    $(".modal-body #groupId").val(myGroupId); 
    }); 

Это поле ввода внутри модального, который печатает GroupID:

$id = "<input type=\"text\" name=\"groupId\" id=\"groupId\" value=\"\" />"; 

Я эхо вне $ ID:

echo "Your id is: " . $id; 

Но когда я пытаюсь выбрать $ id, чтобы вытащить запись из базы данных, она не возвращает никаких записей. Запись есть. Вот заявление:

$q = "SELECT * FROM restable WHERE pk_tId == '" . $id . "'"; 
    if (mysql_num_rows($q) == 0){ 
     echo "No results"; 
    } 

Единственное, что я получаю, это «Нет результатов». У меня есть устойчивое соединение с базой данных. Почему это утверждение не возвращает ничего? Что мне не хватает? Пожалуйста помоги.

+4

Ну, вы не используете ваш запрос для начала - вам нужно вызвать 'mysql_query()', чтобы передать его в базу данных. – andrewsi

ответ

1

Вы не делаете фактический запрос:

$q = "SELECT * FROM restable WHERE pk_tId = '" . $id . "'"; 
    $query = mysql_query($q); // <- you forgot this line, $q is only a string 
    if (mysql_num_rows($query) === 0){ 
     echo "No results"; 
    } 

Причина, по которой функция mysql_num_rows еще делает условие, потому, что она возвращает ложь. 0 и false совпадают, если сравнивать с двумя равными знаками. Если бы вы сделали это:

if (mysql_num_rows($query) === 0){ // This only fires when the functions return INT 0 
    if (mysql_num_rows($query) === false){ // This only fires when the function returns false (on error) 

слишком clearify немного больше:

1==true -> true 
1===true => false (not the same type) 
0==false -> true 
0===false -> false (not the same type) 
1=='1' -> true 
1==='1' -> false (not the same type) 
false=='false' -> true 
false==='false' -> false (not the same type) 
+1

+1 потому что вы избили меня до удара lol – MonkeyZeus

+0

Я думаю, что я почти получил его. Все еще тестирование. Используя === 0 прямо сейчас. – HoodCoderMan

+0

Можете ли вы рассказать мне, как я буду отображать это в HoodCoderMan

0

Вы не выполняющийся запрос в любой момент:

$q = "SELECT * FROM restable WHERE pk_tId == '" . $id . "'"; 
$query = mysql_query($sql); // <-----------missing from your code 
if (mysql_num_rows($query) == 0){ // <------notice the difference 
    echo "No results"; 
} 

mysql_query осуждается в настоящее время BTW (я видел, как голова людей сорвалась на этом сайте для использования порога, используя его хаха!)

Я видел ваш другой квест п сверху ;-)

$q = "SELECT * FROM restable WHERE pk_tId == '" . $id . "'"; 
$q = "SELECT COLUMN_NAME FROM restable WHERE pk_tId == '" . $id . "'"; // <--works with example below 
$query = mysql_query($sql); // <-----------missing from your code 
if (mysql_num_rows($query) == 0){ // <------notice the difference 
    while($row = mysql_fetch_assoc($query)){ 
     echo '<input type="text" value="'.$row['COLUMN_NAME'].'">'; 
    } 
} 
+0

Что следует использовать тогда? – HoodCoderMan

+0

@JohnBeasley Отъезд PDO – StephenTG

+0

TL; DR: проверить mysqli_ *, потому что это должен быть супер простой переход ........ Я лично потратил время, чтобы узнать и теперь предпочитаю PDO, но я видел, как люди предлагают mysqli_ * расширение. Похоже на то, что обычный mysql_ *, но что-то более безопасно, idk (я пропустил его и теперь использую PDO, потому что я подключаюсь к Oracle и MySQL в своих проектах). – MonkeyZeus

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