Πρόβλημα με την in_array

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

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

Απάντηση
Threshold
Δημοσιεύσεις: 48
Εγγραφή: 02 Μαρ 2009 22:16
Επικοινωνία:

Πρόβλημα με την in_array

Δημοσίευση από Threshold » 08 Φεβ 2010 13:39

Λοιπόν έχω το εξής πρόβλημα. Προσπαθώ να φτιάξω μια σελίδα που θα κάνει edit πληροφορίες για ταινίες και έχω κολλήσει στο πως θα γίνονται checked τα διάφορα genres που αντιστοιχούν στην εκάστοτε ταινία. Προσπαθώ να το κάνω με την χρήση της in_array αλλά δεν μου παίζει.

Για να είμαι ακριβής εκτελώ ένα query το οποίο μου δίνει τα genres στα οποία ανήκει μια ταινία και τα αποτελέσματα αυτού του query αποθηκεύονται στην μεταβλητή $secondResult.

Μετά κάνω ένα query που μου επιλέγει όλα τα διαθέσιμα genres, βάζω ένα while που θα μου εμφανίσει όλα τα genres σε checkboxes και μέσα στο while έχω ένα if το οποίο με την χρήση της in_array θέλω να τσεκάρει την μεταβλητή $secondResult και όπου βρίσκει ίδια τιμή με αυτή της μεταβλητής $genreID να εμφανίζει το εκάστοτε checkbox ως checked. Αυτό όμως δεν μου παίζει, έχω κάνει λάθος στον τρόπο που το έχω σκεφτεί;

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

                                    $query1 = "SELECT * FROM genre";

                                    $rs1 = mysql_query&#40;$query1&#41; or die&#40;"Cannot execute query <br/>" . $query1&#41;;

                                    while&#40;$result1 = mysql_fetch_array&#40;$rs1, MYSQL_ASSOC&#41;&#41;&#123;

                                        $genreID = $result1&#91;'genreID'&#93;;

                                        if &#40;in_array&#40;'$genreID', $secondResult&#41;&#41; &#123;

                                            echo "<p><label for='$result1&#91;genreName&#93;'> $result1&#91;genreName&#93;";
                                            echo "<input type='checkbox' checked='checked' name='genre&#91;&#93;' id='$result1&#91;genreName&#93;'
                                            value='$result1&#91;genreID&#93;' /></label> <br /></p>";

                                        &#125;

                                        else &#123;

                                            echo "<p><label for='$result1&#91;genreName&#93;'> $result1&#91;genreName&#93;";
                                            echo "<input type='checkbox' name='genre&#91;&#93;' id='$result1&#91;genreName&#93;'
                                            value='$result1&#91;genreID&#93;' /></label> <br /></p>";
                                        
                                        &#125;
                                    &#125;

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Πρόβλημα με την in_array

Δημοσίευση από fafos » 08 Φεβ 2010 15:09

an vgaleis to genreID apo ta quotes (aka autakia) isos doulepsei:

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

in_array&#40;$genreID, $secondResult&#41;

Threshold
Δημοσιεύσεις: 48
Εγγραφή: 02 Μαρ 2009 22:16
Επικοινωνία:

Πρόβλημα με την in_array

Δημοσίευση από Threshold » 08 Φεβ 2010 17:14

Δουλεύει αλλά μόνο για το πρώτο genre που βρίσκει, μετά δεν πρέπει να ξαναμπαίνει στο if.

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Πρόβλημα με την in_array

Δημοσίευση από fafos » 08 Φεβ 2010 17:22

gia dose prin to while ena: $genreID ='';

Threshold
Δημοσιεύσεις: 48
Εγγραφή: 02 Μαρ 2009 22:16
Επικοινωνία:

Πρόβλημα με την in_array

Δημοσίευση από Threshold » 08 Φεβ 2010 18:25

Το έκανα αλλά δεν βλέπω διαφορά.

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Πρόβλημα με την in_array

Δημοσίευση από fafos » 08 Φεβ 2010 18:31

to $secondResult einai sigoura array? an doseis print_r($secondResult); sou gyrnaei array?

Threshold
Δημοσιεύσεις: 48
Εγγραφή: 02 Μαρ 2009 22:16
Επικοινωνία:

Πρόβλημα με την in_array

Δημοσίευση από Threshold » 08 Φεβ 2010 18:47

Είναι array αλλά για κάποιον περίεργο λόγο μου λέει Array ( [genreID] => 5 ) και δεν μου εμφανίζει τα υπόλοιπα genres που αντιστοιχούν στην ταινία.

Ποστάρω τον κώδικα που έχει να κάνει με τη μεταβλητή $secondResult. Έχω δοκιμάσει να κάνω print το query, μου εμφανίζεται σωστά και όταν το εκτελώ στην βάση βλέπω όλα τα genres και όχι μόνο το 5.

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

$secondQuery = "SELECT genreID FROM filmsngenres WHERE filmID='$filmID'";
$secondRS = mysql_query&#40;$secondQuery&#41; or die&#40;"Cannot execute query <br/>" . $secondQuery&#41;;
$secondResult = mysql_fetch_array&#40;$secondRS, MYSQL_ASSOC&#41;;
print_r&#40;$secondResult&#41;;

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Πρόβλημα με την in_array

Δημοσίευση από fafos » 08 Φεβ 2010 19:27

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


$secondResult = array&#40;&#41;;
$secondQuery = "SELECT genreID FROM filmsngenres WHERE filmID='$filmID'";
$secondRS = mysql_query&#40;$secondQuery&#41; or die&#40;"Cannot execute query <br/>" . $secondQuery&#41;;

	while&#40;$secondResulta = mysql_fetch_array&#40;$secondRS&#41;&#41;
	&#123;
$secondResult&#91;&#93;=$secondResulta&#91;genreID&#93;;	
	&#125;

tora einai array me ola ta apotelesmata...

epeidh exo hdh thn vash sou sto pc mou to etreksa kai paizei mia xara..

Threshold
Δημοσιεύσεις: 48
Εγγραφή: 02 Μαρ 2009 22:16
Επικοινωνία:

Πρόβλημα με την in_array

Δημοσίευση από Threshold » 10 Φεβ 2010 13:25

Ευχαριστώ πολύ.

Απλά δεν καταλαβαίνω γιατί δεν αποθηκεύεται σωστά το array με τον δικό μου τρόπο.

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Πρόβλημα με την in_array

Δημοσίευση από fafos » 10 Φεβ 2010 16:06

Threshold έγραψε:Ευχαριστώ πολύ.

Απλά δεν καταλαβαίνω γιατί δεν αποθηκεύεται σωστά το array με τον δικό μου τρόπο.

giati kaleis mono 1 eggrafh apo thn vash.. thelei while kai mesa na metatrepeis tis eggrafes se array: $secondResult[]=$secondResulta[genreID];

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

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

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