Πρόβλημα αναγνώρισης ενός ερωτήματος σε mysql server παλαιότερης έκδοσης

Συζητήσεις για την βάση δεδομένων MySQL και το phpMyAdmin

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
dimos_mitel
Δημοσιεύσεις: 279
Εγγραφή: 07 Αύγ 2009 21:06
Επικοινωνία:

Πρόβλημα αναγνώρισης ενός ερωτήματος σε mysql server παλαιότερης έκδοσης

Δημοσίευση από dimos_mitel » 16 Φεβ 2013 13:35

Καλησπέρα σε όλους. το πρόβλημα που αντιμετωπίζω είναι το εξής. Έχω ένα ερώτημα sql το οποίο ενώ τρέχει σωστά τοπικά και μου εμφανίζονται τα κατάλληλα αποτελέσματα, δεν τρέχει σωστά σε server παλαιότερης έκδοσης.

Κώδικας: Επιλογή όλων

$page = $_POST['page'];
$user_id=$_SESSION['id'];
$cur_page = $page;
$page -= 1;
$per_page = 15;
$previous_btn = true;
$next_btn = true;
$first_btn = true;
$last_btn = true;
$start = $page * $per_page;


$query_pag_data = "SELECT * FROM ((select * from quiz limit $start,$per_page) quiz) WHERE EXISTS (select * from multiple_choice_student_answer where multiple_choice_student_answer.user_id = '".$_SESSION['id']."' AND
    quiz.id=multiple_choice_student_answer.quiz_id AND multiple_choice_student_answer.grade !=0)
    OR EXISTS (select * from short_student_answer where short_student_answer.user_id = '".$_SESSION['id']."' AND quiz.id=short_student_answer.quiz_id AND short_student_answer.grade !=0)
    OR EXISTS (select * from true_false_student_answer where true_false_student_answer.user_id = '".$_SESSION['id']."' AND quiz.id=true_false_student_answer.quiz_id AND true_false_student_answer.grade !=0) order by quiz.date";
καταρχάς χρησιμοποιούνται οι μεταβλητές start και per_page για το pagination που έχω. Έτσι περιορίζονται τα αποτελέσματα από τον πίνακα quiz. προκειμένου όμως να εμφανιστούν θέλω να ισχύει και κάποιο από τα ερωτήματα στους τρεις πίνακες που βρίσκονται στα exists. όλα αυτά δουλεύουν σωστά τοπικά αλλά δεν υπάρχει κανένα αποτέλεσμα σε άλλους παλαιότερους server.

εδώ είναι η προσπάθεια μου αλλά εμφανίζει και άσχετες εγγραφές από αυτές που θα έπρεπε να εμφανιστούν καθώς και τις ίδιες να επαναλαμβάνονται αρκετές φορές.

Κώδικας: Επιλογή όλων

$query_pag_data = "SELECT DISTINCT q.id, q.*, s.*, t.* FROM quiz q, multiple_choice_student_answer m,  short_student_answer s, true_false_student_answer t
WHERE (m.user_id = '".$_SESSION['id']."' AND q.id=m.quiz_id AND m.grade !=0 AND q.user_id='".$_SESSION['id']."' AND m.user_id = q.user_id) OR
(s.user_id = '".$_SESSION['id']."' AND q.id=s.quiz_id AND s.grade !=0 AND q.user_id='".$_SESSION['id']."' AND s.user_id = q.user_id) OR
(t.user_id = '".$_SESSION['id']."' AND q.id=t.quiz_id AND t.grade !=0 AND q.user_id='".$_SESSION['id']."' AND t.user_id = q.user_id)
LIMIT $start,$per_page";
miteletsis

Απάντηση

Επιστροφή στο “MySQL”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες