2013-03-26 3 views
0

Я испытываю странную ошибку mysql. С приведенным ниже текстом я получаю: Warning: mysql_num_rows() expects parameter 1 to be resource, null given in /Applications/XAMPP/xamppfiles/htdocs/chatterr/lr_bootstrap/profile.php on line 70, хотя ничего не вижу в коде. Я попытался добавить die("Error in query: ".mysql_error()); выше if (mysql_num_rows($check_frnd_query) == 1 OR $user_id == $my_id) {, но это ничего не вернуло. Im dumb, основанный на этой проблеме. Я могу что-то оглядываться. Как вы думаете?Weird mysql error, говорит «ожидает параметр», но функция mysql_error ничего не возвращает? Im lost

<?php 
ob_start(); 
include 'core/init.php'; 
include 'includes/overall/overall_header.php'; 

if (isset($_GET['username']) === true && empty($_GET['username']) === false) { 
$username  = $_GET['username']; 

if (user_exists($username) === true) { 
    $my_id   = $session_user_id; 
    $user_id  = user_id_from_username($username); 
    $profile_data = user_data($user_id, 'username', 'first_name', 'last_name',  'email', 'profile_img', 'bio'); 
    $user   = $user_id; 
?> 


<div class="container-fluid"> 
    <div class="row-fluid"> 
    <?php include 'includes/sidebar.php'; ?> 
    <div class="span9"> 
     <div class="hero-unit"> 
     <p> 
     <?php 
     if (empty($profile_data['profile_img']) === false) { 

      echo '<img src="', $profile_data['profile_img'],'" alt="',  $profile_data['first_name'] ,'\'s Profile Image" class="profile">'; 
     } 
     ?></p> 
     <h2><?php echo $profile_data['first_name'],' ', $profile_data['last_name']; ?> </h2> 
     <p><?php echo $profile_data['bio']?></p> 
     <p> 

     <?php if($user_id === $session_user_id) { 
     ?> <a href="settings.php">Edit Profile</a> &nbsp;&nbsp;&nbsp; <?php 
     } else { 
     if (logged_in() === true) { 
     if($user != $my_id){ 
     $check_frnd_query = mysql_query("SELECT id FROM friends WHERE  (user_one ='$my_id' AND user_two='$user') OR (user_one='$user' AND user_two='$my_id')"); 

      if (mysql_num_rows($check_frnd_query) == 1) { 
       echo "Friends | <a href='actions.php? action=unfriend&user=$user' class='box'>Unfriend $username</a>"; 
      } else { 
       $from_query = mysql_query("SELECT `id` FROM  `friend_req` WHERE `from`='$user' AND `to`='$my_id'"); 
       $to_query = mysql_query("SELECT `id` FROM `friend_req`  WHERE `from`='$my_id' AND `to`='$user'"); 

       if(mysql_num_rows($from_query) == 1) { 
        echo "<a href='actions.php? action=accept&user=$user' class='box'>Accept</a> | <a href='actions.php?action=ingnore&user=$user' class='box'>Ignore</a>"; 
       } else if (mysql_num_rows($to_query) == 1) { 
        echo "<a href='actions.php?action=cancel&user=$user' class='box'>Cancel Request</a>"; 
       } else { 
        echo "<a href='actions.php? action=send&user=$user' class='box'>Send Friend Request </a>"; 
       } 

      } 
     } 
     } //logged in 
     } ?> 

     <!-- If friends: 
     <a>My Photos</a> &nbsp;&nbsp;&nbsp; 
     <a>My Friends</a> &nbsp;&nbsp;&nbsp; 
     <a>Message Me</a> 
     </p> 
     --> 
     <!--<p><a href="#" class="btn btn-primary btn-large">My Profile &raquo;</a></p> -- > 
     </div> 
     <div class="row-fluid"> 
     <?php 

     if (mysql_num_rows($check_frnd_query) == 1 OR $user_id == $my_id) { 
     $res=mysql_query("SELECT * FROM posts WHERE user_id=$user_id ORDER BY  timestamp DESC LIMIT 0, 3"); 

     while($row=mysql_fetch_assoc($res)) { 
     ?> 
      <div class="span4"> 
       <h2><?php echo $profile_data['first_name']?> said...</h2> 
       <h8><?php echo $row['timestamp']; ?></h8> 
       <p><?php echo $row['content']; ?></p> 
       <p><a class="btn" href="#">View Reactions &raquo;</a></p> 
      </div><!--/span--> 

     <?php 
     } 
     ?> 
     </div><!--/row--> 

     <div class="row-fluid"> 
     <?php 
     $res=mysql_query("SELECT * FROM posts WHERE user_id=$user_id ORDER BY timestamp DESC LIMIT 3, 6"); 

     while($row=mysql_fetch_assoc($res)) { 
     ?> 
      <div class="span4"> 
       <h2><?php echo $profile_data['first_name']?> said...</h2> 
       <h8><?php echo $row['timestamp']; ?></h8> 
       <p><?php echo $row['content']; ?></p> 
       <p><a class="btn" href="#">View Reactions &raquo;</a></p> 
      </div><!--/span--> 

     <?php 
     } 
     ?> 
     </div><!--/row--> 


    </div><!--/span--> 
    </div><!--/row--> 


<?php 
} else { 
    echo '<h3>Whoops, you must be friends with this user to see their posts.</h3>'; 
} 

} else { 
    header('Location: 404.php'); 
    exit(); 
} 
} else { 
header('Location: index.php'); 
exit(); 
} 

include'includes/overall/overall_footer.php'; 
?> 

Это то, что я вижу: http://pbrd.co/Zo6sNb

+0

Попробуйте выполнить эхо-запрос и запустив его в phpmyadmin и замените mysql_query («SELECT id FROM friends WHERE (user_one = '$ my_id' AND user_two = '$ user') ИЛИ (user_one = '$ user' AND user_two = ' $ my_id ') ");' с 'mysql_query (" SELECT id FROM friends WHERE (user_one =' $ my_id 'AND user_two =' $ user ') OR (user_one =' $ user 'AND user_two =' $ my_id ') ") или die (mysql_error()); 'И начать изучение mysqli или pdo .. Функции mysql больше не поддерживаются и задерживаются – alwaysLearn

+0

@new_developer. Запрос не является проблемой, я не верю. Это как-то связано с 'mysql_num_rows' – user2209889

+0

@new_developer. Его все еще дает мне ту же ошибку, даже с вашим новым запросом – user2209889

ответ

0

Ваш запрос, вероятно, сбой и возвращения FALSE вместо идентификатора ресурса, который предваряется mysql_num_rows.

Всегда проверяйте возвращаемое значение от mysql_query, прежде чем передавать его дальше.

$check_frnd_query = mysql_query("SELECT id FROM friends WHERE  (user_one ='$my_id' AND user_two='$user') OR (user_one='$user' AND user_two='$my_id')"); 
if (!$check_frnd_query) { 
    die('Invalid query: ' . mysql_error()); 
} 
+0

Это не дает мне ничего? Вот мой код: http://pbrd.co/Zo6Rzg и все еще есть: http://pbrd.co/Zo6SmI Idk why? – user2209889

+0

В вашем коде вы присваиваете результат 'mysql_query' переменной' $ res', но проверяете переменную '$ result'. Измените тот или другой и попробуйте запустить его снова. – peterm

+0

Итак, я изменил его на 'if (! $ Res) {', и я не получил ничего, кроме части «недопустимого запроса», но затем, когда я это сделал: 'if (! $ Check_frnd_query) {' он возвращает значение "недействительный запрос ", но без ошибок? – user2209889

0
SELECT * FROM posts WHERE user_id=$user_id ORDER BY  timestamp DESC LIMIT 0, 3 

В этом запросе user_id не имеют кавычек, это числовое?

SELECT id FROM friends WHERE  (user_one ='$my_id' AND user_two='$user') OR (user_one='$user' AND user_two='$my_id') 

В этом запросе поля user_id имеют кавычки, это строка?

Вы не нашли котировки в первом запросе?

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

  • Нет связанных вопросов^_^