Διαχωρισμός δεδομένων

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

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

Απάντηση
apovtx
Δημοσιεύσεις: 13
Εγγραφή: 08 Ιουν 2008 13:02

Διαχωρισμός δεδομένων

Δημοσίευση από apovtx » 19 Μάιος 2009 20:36

Γεια σας και καλώς σας βρήκα. Ασχολουμε εδώ και λίγο καιρο με την php και θέλω την βοήθειά σας.

Τροποποιησα μια class που παιρνει δεδομενα απο μια σελίδα σαν αυτή.
Πως μπορώ να δημιουργώ μια λίστα με arrays για να παιρνω τα δεδομένα που χρειάζομαι απο κάθε διαφορετική σειρα?

Σε περίπτωση που είναι μόνο μία σειρα δεν εχω πρόβλημα.

Για να χώρισω καθε γραμμή σε "κομμάτια" έβαλα αυτο:

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

$fields = explode(chr(9), $file);   
if ($author)

$this->id       = $fields[0];
$this->name     = $fields[1];
$this->userid   = $fields[2];
$this->author   = $fields[3];
$this->type     = $fields[4];
$this->envir    = $fields[5];
$this->mood     = $fields[6];
$this->style    = $fields[7];
$this->routes   = $fields[8];
$this->length   = $fields[9];
$this->diffic   = $fields[10]; 
$this->lbrating = $fields[11]; 
$this->awards   = $fields[12];
$this->comments = $fields[13];
$this->worldrec = $fields[14];
$this->game     = $fields[15];
$this->replayid = $fields[16];
//$this->unkown = $fields[17-21];
$this->uploaded = $fields[22];
$this->updated  = $fields[23]; 
Πως μπορώ να το κάνω ωστε να παίρνω απο όλες τις γραμμές?

πχ με κατι σαν

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

$this->game[5];

Ευχαριστώ για τον χρόνο σας![/code]

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Διαχωρισμός δεδομένων

Δημοσίευση από korgr » 19 Μάιος 2009 23:09

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

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

	$db=file($filename);
	$tmp = explode (chr(9), $db[0]); // temp array για να μετρησουμε τα fields per row
	$cols=sizeof($tmp); // αριθμος fields
	$rows=sizeof($db); // αριθμος rows
	for &#40;$n=0;$n<$rows;$n++&#41;&#123; // loop on rows
		$record = explode &#40;chr&#40;9&#41;, $db&#91;$n&#93;&#41;;
		for &#40;$m=0;$m<$cols;$m++&#41;&#123; // loop on fields
			$table&#91;$m&#93;&#91;$n&#93;=$record&#91;$m&#93;;
		&#125;
		unset&#40;$record&#41;;
	&#125;
Στην $filename ειναι το αρχειο που θες να ανοιξεις
Στο τελος η $table (δισδιαστατος πινακας) περιεχει ολα τα fields (δεικτης $m) και ολα τα rows (δεικτης $n)
Για να αναφερθεις στο τριτο πεδιο της δευτερης γραμμης:
$table[2][1] (Μετραμε απο Index 0 παντα)
δηλαδη ο πρωτος δεικτης ειναι η στηλη (field) και ο δευτερος η γραμμη (row)

Άβαταρ μέλους
Rapid-eraser
WebDev Moderator
Δημοσιεύσεις: 6851
Εγγραφή: 05 Απρ 2003 17:50
Τοποθεσία: Πειραιάς
Επικοινωνία:

Διαχωρισμός δεδομένων

Δημοσίευση από Rapid-eraser » 25 Μάιος 2009 09:27

Πως φαίνεται ο άνθρωπος όταν έχει C background :P
Πρόσεξε την χρήση της sizeof() ... εμείς οι κοινοί θνητοί χρησιμοποιούμε το alias count() αποκλειστικά LOL
Cu, Rapid-eraser, Tα αγαθά copies κτώνται.
Love is like oxygen, You get too much you get too high
Not enough and you're gonna die, Love gets you high

Απάντηση

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

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

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