2014-01-15 5 views
0

У меня вопрос, это может быть глупо, я только начал использовать это. У меня есть база данных с 5 записями, и я построил график с PHPlot, и он не будет обновляться, когда я добавлю новую запись. Я установил для отображения последних 5 записей в линейном графике, но он показывает только 3 (было 3, когда я закодировал скрипт). Любая помощь приветствуется. Вот код.PHPlot с mySQL не обновляет wit новые записи

<?php 

//database connection 
$dbname="localhost"; 
$dbun="username"; 
$dbpw="password"; 
$database="medtrack"; 

//my table1 
$table="members"; 

// Connect to database 
$conn = mysql_connect("$dbname", "$dbun", "$dbpw") or die(mysql_error()); 

mysql_select_db("$database", $conn) or die(mysql_error()); 


// Include files 
include 'phplot/phplot.php'; 


// start array 
$qry = mysql_query("SELECT * FROM 36_mood ORDER BY 'id' DESC"); 
for($i = 0; $i < 3; $i++) 
$data[$i] = mysql_fetch_array($qry); 


//array 1, id I didn't change the name yet, sorry 
$date1=$data[0]['id']; 
$date2=$data[1]['id']; 
$date3=$data[2]['id']; 
$date4=$data[3]['id']; 
$date5=$data[4]['id']; 

//array 2, moods - these are on a scale of 0-10, stored as int in the database 
$mood1=$data[0]['mood']; 
$mood2=$data[1]['mood']; 
$mood3=$data[2]['mood']; 
$mood4=$data[3]['mood']; 
$mood4=$data[4]['mood']; 


//Define the object 
$plot2 = new PHPlot(); 

//Define some data 
$example_data = array(
    array(1,$mood1), 
    array(2,$mood2), 
    array(3,$mood3), 
    array(4,$mood4), 
    array(5,$mood5), 
); 

$plot2->SetDataValues($example_data); 

//Turn off X axis ticks and labels because they get in the way: 
$plot2->SetXTickLabelPos('none'); 
$plot2->SetXTickPos('none'); 

//Draw it 
$plot2->DrawGraph(); 

?> 

Вся помощь приветствуется. Я думаю, если это не сработает, чтобы генерировать страницу «на лету» каждый раз, когда человек нажимает на страницу графиков. Есть предположения? Я пробовал libchart, но ему не нравится MySQL, я могу попробовать его снова. Я сосать с Javascript. Большое спасибо. Все и любая помощь приветствуются.

+0

Является ли это унаследованное приложение? 'mysql_query' не должен использоваться в новом коде. – tadman

+0

Я позабочусь обо всем этом позже, прямо сейчас его голые кости на этапе тестирования. Благодаря! – sandorfalot

+0

Вы должны использовать минимальный минимум [PDO] (http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/). Риск ошибки с mysql_query слишком высок, и очень легко совершать подобные ошибки. Прототипирование в полностью устаревшем интерфейсе напрасно тратит ваше время, так как вам придется переписать все. – tadman

ответ

0

Ваша петля может обрабатывать только 3 записи. вы можете использовать mysql_num_rows($qry):

$rows = mysql_num_rows($qry); 
for($i = 0; $i < $rows; $i++) 
    $data[$i] = mysql_fetch_array($qry); 
+0

О, моя, какая глупая ошибка. Duh! СПАСИБО – sandorfalot