Flash και ανάκτηση δεδομένων απο βάση

Λύσεις προβλημάτων για το δημοφιλές πρόγραμμα κατασκευής παρουσιάσεων στο διαδίκτυο.

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

Απάντηση
Άβαταρ μέλους
zekia
Δημοσιεύσεις: 146
Εγγραφή: 04 Μάιος 2004 16:38
Τοποθεσία: thessaloniki

Flash και ανάκτηση δεδομένων απο βάση

Δημοσίευση από zekia » 09 Δεκ 2008 12:53

Γειά σας,

θα ήθελα να προσθέσω σε flash site τη δυνατότητα να ανακτά δεδομένα απο μια βάση. Κάτι εντελώς απλό, ένα πίνακα νέων, με τίτλο και κείμενο. Δεν μπορώ να προσανατολιστώ όμως στο τι ακριβώς πρέπει να κάνω.

Έχω δημιουργήσει τη βάση και ένα php αρχείο το οποίο ανακτά με sql ερώτημα τα δεδομένα του πίνακα της βάσης. Μπορείτε να με κατατοπίσετε λιγάκι;

ΥΓ. δουλεύω με actionscript 2.0

Άβαταρ μέλους
zekia
Δημοσιεύσεις: 146
Εγγραφή: 04 Μάιος 2004 16:38
Τοποθεσία: thessaloniki

Flash και ανάκτηση δεδομένων απο βάση

Δημοσίευση από zekia » 09 Δεκ 2008 15:55

κάτι πρώτο που δοκιμάζω είναι το εξής

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

var all_news = new LoadVars();

all_news.load("../news.php");
all_news.onLoad = function(success){
	if(success){
		title_txt.text = all_news.news_title.toString();
	} else title_txt.text = "error";
} 
όπου news.php:το αρχείο που εξάγει τα δεδομένα απο τη βάση και title_txt ένα πεδίο dynamic text μέσα στο .fla αρχείο.

news.php:

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

<?php require_once&#40;'Connections/mydatabase_news.php'&#41;; ?>
<?php
if &#40;!function_exists&#40;"GetSQLValueString"&#41;&#41; &#123;
function GetSQLValueString&#40;$theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = ""&#41; 
&#123;
  $theValue = get_magic_quotes_gpc&#40;&#41; ? stripslashes&#40;$theValue&#41; &#58; $theValue;

  $theValue = function_exists&#40;"mysql_real_escape_string"&#41; ? mysql_real_escape_string&#40;$theValue&#41; &#58; mysql_escape_string&#40;$theValue&#41;;

  switch &#40;$theType&#41; &#123;
    case "text"&#58;
      $theValue = &#40;$theValue != ""&#41; ? "'" . $theValue . "'" &#58; "NULL";
      break;    
    case "long"&#58;
    case "int"&#58;
      $theValue = &#40;$theValue != ""&#41; ? intval&#40;$theValue&#41; &#58; "NULL";
      break;
    case "double"&#58;
      $theValue = &#40;$theValue != ""&#41; ? "'" . doubleval&#40;$theValue&#41; . "'" &#58; "NULL";
      break;
    case "date"&#58;
      $theValue = &#40;$theValue != ""&#41; ? "'" . $theValue . "'" &#58; "NULL";
      break;
    case "defined"&#58;
      $theValue = &#40;$theValue != ""&#41; ? $theDefinedValue &#58; $theNotDefinedValue;
      break;
  &#125;
  return $theValue;
&#125;
&#125;

mysql_select_db&#40;$database_mydatabase_news, $mydatabase_news&#41;;
$query_news = "SELECT * FROM news ORDER BY id DESC";
$news = mysql_query&#40;$query_news, $mydatabase_news&#41; or die&#40;mysql_error&#40;&#41;&#41;;
$row_news = mysql_fetch_assoc&#40;$news&#41;;
$totalRows_news = mysql_num_rows&#40;$news&#41;;

$news_title = $row_news&#91;'title'&#93;;
$news_text = $row_news&#91;'text'&#93;; 

$all_news = $news_title.'<br/>'.$news_text;
?>
<?php
mysql_free_result&#40;$news&#41;;
?>
όμως αυτό κάνει τη μισή δουλειά
Τελευταία επεξεργασία από το μέλος zekia την 10 Δεκ 2008 14:52, έχει επεξεργασθεί 1 φορά συνολικά.

Άβαταρ μέλους
zekia
Δημοσιεύσεις: 146
Εγγραφή: 04 Μάιος 2004 16:38
Τοποθεσία: thessaloniki

Flash και ανάκτηση δεδομένων απο βάση

Δημοσίευση από zekia » 10 Δεκ 2008 14:50

έχω δοκιμάσει 10 διαφορετικούς τρόπους να κάνω αυτό που θέλω απο χθες αλλά τίποτα δε λειτουργεί. Ότι και να προσπαθήσει να κάνει κανείς σε flash χρειάζεται τόνους υπομονής και 100 χρόνια προσπάθεια.

Μπορεί κάποιος να με βοηθήσει, Σας παρακαλώ

Άβαταρ μέλους
HeRu
Flash Moderator
Δημοσιεύσεις: 800
Εγγραφή: 16 Αύγ 2004 10:49
Επικοινωνία:

Flash και ανάκτηση δεδομένων απο βάση

Δημοσίευση από HeRu » 10 Δεκ 2008 15:32

Κανε debug και βάλε ένα breakpoint μέσα στο onLoad για να δεις τι επιστρέφει ο server.

Μπορείς επίσης να κάνεις trace( ) για ευκολία.

π.χ.

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

all_news.onLoad = function&#40;success&#41;&#123;
   if&#40;success&#41;&#123;
      trace&#40; all_news.news_title &#41;;
      title_txt.text = all_news.news_title.toString&#40;&#41;;
   &#125; else title_txt.text = "error";
&#125;

Άβαταρ μέλους
zekia
Δημοσιεύσεις: 146
Εγγραφή: 04 Μάιος 2004 16:38
Τοποθεσία: thessaloniki

Flash και ανάκτηση δεδομένων απο βάση

Δημοσίευση από zekia » 10 Δεκ 2008 15:44

php file επιστρέφει:

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

echo "&total=".$totalRows_all_news."&news_id=".$row_new&#91;'id'&#93;."&news_title=".$row_new&#91;'title'&#93;."&news_text=".$row_new&#91;'text'&#93;;
στη βάση υπάρχουν τα εξής:
id=1 title=titlos1 text=keimeno1,
id=2 title=titlos2 text=keimeno2,
id=3 title=titlos3 text=keimeno3,

στο flash έχω αυτή τη στιγμή τα εξής:

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

var all_news = new LoadVars&#40;&#41;;
all_news.load&#40;"http&#58;//localhost/website/news.php?"&#41;;
all_news.onLoad = function&#40;success&#41;&#123;
	if&#40;success&#41;&#123;
		for&#40;i=1; i<=all_news.total; i++&#41;
		&#123;	var this_new = new LoadVars&#40;&#41;;
			this_new.load&#40;"http&#58;//localhost/website/news.php?id="+i&#41;;
			trace&#40;"http&#58;//localhost/website/news.php?id="+i&#41;;
			this_new.onLoad = function&#40;success&#41;&#123;
				if&#40;success&#41;&#123;
					trace&#40;this_new.news_title.toString&#40;&#41;&#41;;
					trace&#40;this_new.news_text.toString&#40;&#41;&#41;;
				&#125;else title_txt.text = "error";
			&#125;
		&#125;
	&#125;else title_txt.text = "error";
&#125;
και η έξοδος που παίρνω με τα trace είναι:
http://localhost/website/news.php?id=1
http://localhost/website/news.php?id=2
http://localhost/website/news.php?id=3
undefined
undefined
undefined
undefined
titlos 3
keimeno 3

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

Άβαταρ μέλους
HeRu
Flash Moderator
Δημοσιεύσεις: 800
Εγγραφή: 16 Αύγ 2004 10:49
Επικοινωνία:

Flash και ανάκτηση δεδομένων απο βάση

Δημοσίευση από HeRu » 10 Δεκ 2008 16:33

Δεν είναι εμφανές τη θέλεις να κάνεις. Θες να περνάει μια παράμετρο από το flash στην php ή όχι ?

Εγώ με την AS2 έχω σταματήσει να δουλεύω, αλλά από ότι θυμάμαι αν θες να περνάς μια παράμετρο στην php θα πρέπει να αλλάξεις λίγο τον κώδικα να είναι κάπως έτσι( ψάξε το εάν δεν δουλεύει, not sure ):

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

var all_news = new LoadVars&#40;&#41;;
var in_news = new LoadVars&#40;&#41;;

all_news.id = 1
all_news.sendAndLoad&#40;"http&#58;//localhost/website/news.php", in_news, "GET"&#41;;

in_news.onLoad = function&#40;success&#41;&#123; ..... &#125;
Με την php δεν δουλεύω, αλλά δεν πρέπει κάπως να παίρνεις την παράμετρο μέσα στην php από το query ?

π.χ.

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

$id=$_GET&#91;"id"&#93;;
Από εκεί και πέρα, αν θες να επιστρέφει όλα τα news με την μια, το LoadVars περιμένει επιστροφή από τον server με αυτήν την μορφή

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

&var1=value1&var2=value2 ...
Κάθε variable να ξεκινάει με &...τα "<br>" κλπ τα αγνοεί.

Άβαταρ μέλους
zekia
Δημοσιεύσεις: 146
Εγγραφή: 04 Μάιος 2004 16:38
Τοποθεσία: thessaloniki

Flash και ανάκτηση δεδομένων απο βάση

Δημοσίευση από zekia » 15 Δεκ 2008 11:10

τελικά κατέφυγα σε μια εντελώς διαφορετική προσέγγιση, οπού με php φτιάχνω ένα xml αρχείο και το flash διαβάζει το xml. Δεν ήταν και πολύ αποδοτικό όλο αυτό που σκέφτηκα στν αρχή και είχε πολλά προβλήματα.

Απάντηση

Επιστροφή στο “Flash γενικά”

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

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