Προς το περιεχόμενο

Πίνακας 2 διαστάσεων με PHP και Mysql


christian-ago

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπερα σας.

Θελω να φτιαξω ενα loop που να παιρνει το περιεχομενο μιας βασης δεδομενων που εχω οπως πχ. με τη γνωστη εντολη:

>while ($row=mysql_fetch_array($item))

αλλα θελω αυτο περιεχομενο να το αποθηκευει σε δισδιαστατατο πινακα

ετσι ωστε να μπορω να το εκτυπωσω σε διαφορετικα σημεια της ιστοσελιδας.

Γιατι οταν πχ. γραφω στη συνεχεια:

>echo $row[0];

οπως αναμενεται εκτυπωνει ολες τις επιλεγμενες γραμμες της βασης μονομιας.

Αλλα αυτο που χρειαζομαι ειναι να τις εκτυπωνει γραμμη ανα γραμμη.

Κατι σαν

$row[0]=κατι

$row[1]=κατι άλλο.

 

Ευχαριστω παιδια.

Δημοσ.

Δεν καταλαβα καλα τον κωδικα σου.

Πού αποθηκεύονται οι γραμμες της βασης; Και που τοποθετω τον κωδικα;

 

Το manual το διαβασα αλλα μαλλον λυνει αλλο προβλημα.

Δημοσ.

>
$res=mysql_query($query); //Τρέχει το query που θέλεις και επιστρέφει τα αποτελέσματα στη μεταβλητή $res
echo mysql_result($res,5,"address"); //Από τα αποτελέσματα, τύπωσε από τη πέμπτη γραμμή τη στήλη με όνομα address

 

 

αλλα θελω αυτο περιεχομενο να το αποθηκευει σε δισδιαστατατο πινακα

Είναι ακριβώς αυτό που ψάχνεις:

>
/*Δίνουμε το query στη βάση δεδομένων και μας επιστρέφει τα ανάλογα αποτελέσματα
Στη συνέχεια, τα δίνουμε στη συνάρτηση mysql_fetch_full_result_array, η οποία μας επιστρέφει έναν δισδιάστατο πίνακα τον οποίο και αποθηκεύουμε με όνομα [b]$arr_table_result[/b]
*/
$query="select * from table_xyz";
$result = mysql_query($query) or die(mysql_error());
$arr_table_result=mysql_fetch_full_result_array($result);

/*Συνάρτηση: παίρνει σαν όρισμα τα αποτελέσματα ενός mysql ερωτήματος
και μας επιστρέφει δισδιάστατο πίνακα*/
function mysql_fetch_full_result_array($result)
{
   $table_result=array();
   $r=0;
   while($row = mysql_fetch_assoc($result)){
       $arr_row=array();
       $c=0;
       while ($c < mysql_num_fields($result)) {       
           $col = mysql_fetch_field($result, $c);   
           $arr_row[$col -> name] = $row[$col -> name];           
           $c++;
       }   
       $table_result[$r] = $arr_row;
       $r++;
   }   
   return $table_result;
}

/*Τυπώνουμε αυτά που θέλουμε*/
echo $arr_table_result[2]['id']; //δεύτερη γραμμή αποτελεσμάτων, στήλη id
echo $arr_table_result[10]['address'] //Δέκατη γραμμή αποτελεσμάτων, στήλη address

 

...Αν και για να πω την αλήθεια, δεν έχω πολυκαταλάβει τι ακριβώς θες να κάνεις!

Δημοσ.

Ναι αυτο ακριβως ζητουσα, προσαρμοσα τις μεταβλητες στο δικο μου προγραμμα και λειτουργει τωρα.

Απλα νομιζα οτι για μια τετοια διαδικασια θα απαιτειτο λιγοτερο συνθετος κωδικας.

Να ΄σαι καλα.

Δημοσ.

Δείχνει περίπλοκο επειδή η συνάρτηση είναι γραμμένη να διαχειρίζεται οποιοδήποτε query. Εάν θες κάτι συγκεκριμένο, ο κώδικας σαφώς και θα είναι πολύ πιο απλός - γι' αυτό και σε ρώτησα τι ακριβώς θες να φτιάξεις! :P

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...