Πρόβλημα με fetch_array

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

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

Απάντηση
Άβαταρ μέλους
Risk
Δημοσιεύσεις: 319
Εγγραφή: 02 Μάιος 2006 01:16
Τοποθεσία: Κάπου εδώ γύρω...
Επικοινωνία:

Πρόβλημα με fetch_array

Δημοσίευση από Risk » 05 Δεκ 2007 14:06

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

Λοιπόν έχω σε κάποιο πίνακα της βάσης μου κάποιους τίτλους βιβλίων και για κάθε βιβλίο σε έναν άλλο πίνακα κρατάω κάποια tags γι' αυτό.

Με βάση το id κάθε βιβλίου κάνω query για να μου φέρει τα tags που αντιστοιχούν σε αυτό.Το ελέγχο το query από phpMyAdmin και όλα καλά. Τα αποτελέσματα τώρα παώ να τα εμφανίσω σε μια σελίδα, η οποία είναι σημαντικό να σας πω ότι λειτουργεί με templates. Γράφω λοιπόν το παρακάτω κομμάτι...

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

while($back=mysql_fetch_array($sent))
	{	
	    $tpl->assign ("{TAG}", $back['utag']);
	}
Το αποτέλεσμα που μου έρχεται κάθε φορά για κάθε βιβλίο είναι το τελευταίο tag που έχει καταχωρηθεί γι' αυτό. Θέλοντας να το ελέξω στην θέση του $tpl.. έβαλα ένα echo και τότε λειτούργησε κανονικά.

Η ερώτησή μου λοιπόν είναι χωρίς echo δεν υπάρχει κάποιος τρόπος να βλέπω τα δεδομένα μου;;;

Ευχαριστώ!!!
Εικόνα

Άβαταρ μέλους
dik_
Δημοσιεύσεις: 476
Εγγραφή: 07 Ιουν 2007 11:28

Πρόβλημα με fetch_array

Δημοσίευση από dik_ » 05 Δεκ 2007 17:51

Χωρίς να ξέρω πώς ακριβώς λειτουργούν τα templates σου, δοκίμασε κάτι τέτοιο:

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

$temp[] = array();
while(...){
    $temp[] = $back['utag'];
}

$tpl->assign ("{TAG}", implode(", ", $temp));

Άβαταρ μέλους
Risk
Δημοσιεύσεις: 319
Εγγραφή: 02 Μάιος 2006 01:16
Τοποθεσία: Κάπου εδώ γύρω...
Επικοινωνία:

Πρόβλημα με fetch_array

Δημοσίευση από Risk » 06 Δεκ 2007 09:57

Σε ευχαριστώ dik_ για την βοήθειά σου, αλλά είδα το post σου αφού είχα βρει την λύση! Το πρόβλημα λοιπόν λύθηκε με τον εξής τρόπο:

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

$tags=" ";
			
while($back=mysql_fetch_array($sent))
{	
		
    $tags.= $back['utag'];
    $tags.="  ";
    $tpl->assign ("{TAGS}",$tags);
					
					
}	
Όλα τελικά ήταν μια τελεία (!!!) ώστε η κάθε εγγραφή να έρχεται ως συνέχεια της άλλης και όχι να την επικαλύπτει.
Εικόνα

Άβαταρ μέλους
dik_
Δημοσιεύσεις: 476
Εγγραφή: 07 Ιουν 2007 11:28

Πρόβλημα με fetch_array

Δημοσίευση από dik_ » 06 Δεκ 2007 15:14

ΟΚ, 2 παρατηρήσεις:

1. Μετά το τελευταίο tag θα έχεις κενό, μπορεί να μην πειράζει, μπορεί και να πειράζει...

2. Το $tpl->assign ("{TAGS}",$tags); μπορείς να το βγάλεις έξω από το loop γλιτώνοντας περιττά assignments.

Άβαταρ μέλους
Risk
Δημοσιεύσεις: 319
Εγγραφή: 02 Μάιος 2006 01:16
Τοποθεσία: Κάπου εδώ γύρω...
Επικοινωνία:

Πρόβλημα με fetch_array

Δημοσίευση από Risk » 07 Δεκ 2007 09:42

Sorry dik_ αλλά η απάντηση έρχεται λίγο καθηστερημένα! Λοιπόν την πρώτη παρατήσησή σου να σου πω την αλήθεια δεν την κατάλαβα...δεν κατάλαβα για ποιο κενό μου λες. Όσο για την δεύτερη το while στην συγκεκριμένη περίπτωση θα πρέπει να υπάρχει για τον λόγο ότι είναι εμφωλευμένο μέσα σε ένα άλλο while (πιο πάνω απ΄αυτό) και στο οποίο κάθε φορά έρχεται ένα id από ένα query. Γι' αυτό το id λοιπόν έρχονται κάποια tags και γίνονται assign σε μια μεταβλητή του template. Όπως μπορείς να δεις και από τον κώδικα η μεταβλητή $tags πριν από το while "αδειάζει" κάθε φορά, ώστε να πάρει τα νέα δεδομένα που έρχονται για κάποιο συγκεκριμένο id (...αυτό ως απάντηση στο κενό,αν αυτό εννοούσες).
Εικόνα

Απάντηση

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

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

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