עזרה | איך מגדירים ARRAY תחת ריצה של WHILE? - פירוט בפנים...
שלום, אני יודע שהשאלה חזרה על עצמה פעם אבל לא מצאתי את האשכול עם התשובה..
אז אם אפשר לא לנעול לי ואפילו לעזור לי..
אני רוצה להכין גרף עם כמות מצביעים, בשביל מערכת לסקרים..
אז מצאתי קוד כזה:
קוד PHP:
<?php $values=array( "Jan" => 110, "Feb" => 130, "Mar" => 215, "Apr" => 81, "May" => 310, "Jun" => 110, "Jul" => 190, "Aug" => 175, "Sep" => 390, "Oct" => 286, "Nov" => 150, "Dec" => 196 ); $img_width=450; $img_height=300; $margins=20; # ---- Find the size of graph by substracting the size of borders $graph_width=$img_width - $margins * 2; $graph_height=$img_height - $margins * 2; $img=imagecreate($img_width,$img_height); $bar_width=20; $total_bars=count($values); $gap= ($graph_width- $total_bars * $bar_width ) / ($total_bars +1); # ------- Define Colors ---------------- $bar_color=imagecolorallocate($img,0,64,128); $background_color=imagecolorallocate($img,240,240, 255); $border_color=imagecolorallocate($img,200,200,200) ; $line_color=imagecolorallocate($img,220,220,220); # ------ Create the border around the graph ------ imagefilledrectangle($img,1,1,$img_width-2,$img_height-2,$border_color); imagefilledrectangle($img,$margins,$margins,$img_w idth-1-$margins,$img_height-1-$margins,$background_color); # ------- Max value is required to adjust the scale ------- $max_value=max($values); $ratio= $graph_height/$max_value; # -------- Create scale and draw horizontal lines -------- $horizontal_lines=20; $horizontal_gap=$graph_height/$horizontal_lines; for($i=1;$i<=$horizontal_lines;$i++){ $y=$img_height - $margins - $horizontal_gap * $i ; imageline($img,$margins,$y,$img_width-$margins,$y,$line_color); $v=intval($horizontal_gap * $i /$ratio); imagestring($img,0,5,$y-5,$v,$bar_color); } # ----------- Draw the bars here ------ for($i=0;$i< $total_bars; $i++){ # ------ Extract key and value pair from the current pointer position list($key,$value)=each($values); $x1= $margins + $gap + $i * ($gap+$bar_width) ; $x2= $x1 + $bar_width; $y1=$margins +$graph_height- intval($value * $ratio) ; $y2=$img_height-$margins; imagestring($img,0,$x1+3,$y1-10,$value,$bar_color);imagestring($img,0,$x1+3,$im g_height-15,$key,$bar_color); imagefilledrectangle($img,$x1,$y1,$x2,$y2,$bar_col or); } header("Content-type:image/png"); imagepng($img); $_REQUEST['asdfad']=234234; ?>
הקוד יוצר גרף ממש כמו באקסל, עכשיו, אני רוצה לשלוף את התוצאות מהסקר, אז עשיתי דבר כזה:
קוד PHP:
$res = mysql_query("SELECT * FROM `polls_options` WHERE `pid` = '$id'"); while($row = mysql_fetch_array($res)) { $name = $row['ans']; $res1 = mysql_query("SELECT * FROM `polls_ans` WHERE `pid` = '$id' AND `oid` = '$_row[id]'"); $numm1= mysql_num_rows($res); $x .= "$name" => $numm1; } $ids = strlen($x)-1; $x = substr($x, 0, $ids); $array = array($x);
זאת ע"מ ליצור ARRAY מהתוצאות של הסקרים.
אני אנסה להסביר את הקוד:
שאילתה ראשונה: נשמרה במשתנה $res : נועדה כדי לשלוף את האפשרויות של הסקר (התשובות) לפי הסקר המבוקש.
$name זה התשובה הנוכחית בWHILE
שאילתה שניה: $res1 : שולפת לפי התשובה, את ההצבעות של המשתמשים.
$numm1 = מספר המצביעים לתשובה זו.
עד פה הכל בסדר.
עכשיו אני רוצה ליצור את הARRAY. אז ניסיתי להגדיר משתנה X שכל פעם יצור שורה של איך שהתוכן של הARRAY יכתב ואז ניסיתי להוריד את האות האחרונה, שזה הפסיק, כי את הפסיק האחרון לא צריך.
ואז עשיתי
משהו יכול בבקשה להסביר לי איך אני יכול לעשות את הקוד הזה באופן תקין?
תודה רבה מראש לעוזרים!!
יובל.
נערך לאחרונה ע"י YuviAS בתאריך 22-09-2008 בשעה 21:03.
סיבה: טעות בקוד..
|