Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Zilele emailului

Best gaming laptop?

Humane (2024)

Recomandare casti 100-150 lei
 Schimbare bec far VW Touran 1T3

Plata impozit PF

Ce parere aveti de viteza/ modul ...

Love Lies Bleeding - 2024
 Cum sterg mails din Promotions

Vanzare cumparare fara transfer b...

Receptie ciudata, in functie de t...

Donez medicamente renale ptr pisica
 Ce componenta e asta si ce ziceti...

Dupa 20 ani de facultate, am uita...

Mobile.de ofera imprumut de bani ...

problema test grila
 

valori dinamice in sql

- - - - -
  • Please log in to reply
24 replies to this topic

#19
guttuso

guttuso

    Member

  • Grup: Members
  • Posts: 262
  • Înscris: 31.03.2010
Am reusit sa imi dau seama ca la baza sta un artificiu Javascript - Ajax, insa din tutorialele gasite nu am reusit sa imi rezolv problema, de aceea revin cu ceea ce am facut pana acum. Rog pe cineva care se pricepe sa ma ajute sa fac sa functioneze.
<html>
<head>
	<script language="javascript" type="text/javascript">
<!--
//Scriptul pentru Browser
function ajaxFunction(){
	var ajaxRequest;  // The variable that makes Ajax possible!
		try{
				// Opera 8.0+, Firefox, Safari
			ajaxRequest = new XMLHttpRequest();
		}
		catch (e){
				// Internet Explorer Browsers
			try{
				ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
			}
			catch (e){
				try{
					ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
				}
			catch (e){
				// Daca ceva nu e in regula
				alert("Your browser broke!");
				return false;
			}
			}
		}
//______
	$.ajax({
type: "POST",
url: "query_chart_pie.php",
data:''',
success: function(data){
  $("#cauta_an").html(data);
}
});
}
</script>
</head>
<select id="cauta_an" name="sch_year"><option value="2014">2014</option>
									  <option value="2015">2015</option>
</select>

<?php
	//connect BD
	include "bd_cnx.php";
	// Interogare SQL
$q=$_POST["q"];
$sql = "SELECT name, value
		FROM sales
		WHERE year IN ('.q.') ";
// Executa interogarea si retine datele returnate
$result = $conn->query($sql);
// daca $result contine cel putin un rand
if ($result->num_rows > 0) {
// afiseaza datele din fiecare rand din $result
while($row = $result->fetch_assoc()) {
		 echo "['".$row['name']."',".$row['value']."],";
}
} else {
	  echo "0 results";
}
// Se inchide conexiunea
$conn->close();
?>
</html>


Multumesc!

#20
mberila

mberila

    Active Member

  • Grup: Members
  • Posts: 1,665
  • Înscris: 20.11.2005
@dani.user
ai dreptate, nu am intrat în astfel de detalii să nu-l derutez de tot cu PDO::prepare

i-am dat doar o varianta mai ok la codul lui:
// Interogare SQL
$sql = "SELECT name, value
FROM sales
WHERE year IN ('$_POST[sch_year]') ";


Edited by mberila, 15 August 2016 - 17:50.


#21
guttuso

guttuso

    Member

  • Grup: Members
  • Posts: 262
  • Înscris: 31.03.2010
multumesc pentru detalii oferite insa, ajutati-ma va rog sa duc codul la bun sfarsit, am stors google-ul, youtube-ul si nu am reusit sa adaptez nimic la ceea ce vreau sa fac

#22
mberila

mberila

    Active Member

  • Grup: Members
  • Posts: 1,665
  • Înscris: 20.11.2005
@guttuso
codul ce l-ai scris acum nu are cum să meargă, e o tocăniță ce-ai scris tu acolo, și ar trebuii șters tot și scris de la început. nimeni de pe forum nu o să-ți scrie codul, deși e foarte ușor, pt că nu ai cum să înveți dacă alții îți vor da codul de-a gata.
Din câte îmi dau seama, ție îți lipsesc noțiunile de bază. Iți recomand să faci următoarele tutoriale:
HTML
PHP
SQL
jQuery
Javascript

P.S. Dacă ai modifica codul tău de pe prima pagină cum ți-am zis eu cu câteva posturi în urmă, ar funcționa, cu diferența că ai avea un buton de submit în plus față de pagina ce ai dat-o exemplu.

Edited by mberila, 15 August 2016 - 18:14.


#23
guttuso

guttuso

    Member

  • Grup: Members
  • Posts: 262
  • Înscris: 31.03.2010
butonul de submit este incomod pentru tipul de grafic pe care vreau sa il afisez, pagina web v-a avea mai multe optiuni de tip dropdown si ar fi incomod sa apas de fiecare data pe el

View Postmberila, on 15 august 2016 - 18:10, said:

e o tocăniță ce-ai scris tu acolo, și ar trebuii șters tot și scris de la început.

Daca este o tocanite, ajuta-ma te rog cu un exemplu, sa pot invata, beneinteles daca esti dispus sa oferi din experienta ta.
Multumesc pentru tutoriale.

Edited by guttuso, 15 August 2016 - 18:47.


#24
mberila

mberila

    Active Member

  • Grup: Members
  • Posts: 1,665
  • Înscris: 20.11.2005
uite aici documentația cu exemple pentru jquery.ajax
va trebuii să pui un event handler pe id-ul acelui select astfel încât atunci când se alege o valoare, să faci un ajax call să trimiți unui script valoarea selectată.

din linkurile de mai sus, fă măcar tutorialul de jquery, durează doar 2-3 ore.

Aici ai un tutorial pt ceva asemănător cum vrei tu

Edited by mberila, 15 August 2016 - 18:52.


#25
guttuso

guttuso

    Member

  • Grup: Members
  • Posts: 262
  • Înscris: 31.03.2010
Salutare,
In urma tutorialului recomandat mai sus, am reusit sa avanasez putin.
Revin cu detaliile necesare pentru a se putea deslusi mai usor problema.
Am o baza de date denumita test cu o tabela denumita tbl_teste si doua fisiere unul index.php si query_chart_pie.php
Tabela contine: id, nume, sales si anul.

Mai jos se regaseste codul pentru fisierul query_chart_pie.php
<?php
include "bd_cnx.php";
if(isset($_GET['get_option']))
{
// Interogare SQL
$sch = $_GET['get_option'];
$sql = "SELECT nume, sales
FROM tbl_teste
WHERE anul = '$sch' ";
// Executa interogarea si retine datele returnate
$result = $conn->query($sql);
// daca $result contine cel putin un rand
if ($result->num_rows > 0) {
// afiseaza datele din fiecare rand din $result
	 while($row = $result->fetch_assoc()) {
		 echo "['".$row['nume']."',".$row['sales']."],";
	 }
} else {
	 echo "0 results";
}
// Se inchide conexiunea
$conn->close();
}
else {
print "nu exista valori in get";
}
?>

si returneaza ['popescu',369],['alin',124],
Formatul returnat se incadreaza perfect in formatul de aici https://google-devel...allery/piechart


Fisierul index.php contine:
<!doctype html>
<html>
<head>
	 <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
	 <script type="text/javascript" src="jQuery.js"></script>
	 <script type="text/javascript">
	 function fetch_select(val)
	 {
		 $.ajax({
		 type: 'get',
		 url: 'query_chart_pie.php',
		 data: {
			 get_option:val
		 },
		 success: function (response) {
			 document.getElementById("new_select").innerHTML=response;
		 }
		 });
	 }
	 </script>

	 <script type="text/javascript">
	 google.charts.load('current', {'packages':['corechart']});
	 google.charts.setonloadCallback(drawChart);
	 function drawChart() {
		 var data = google.visualization.arrayToDataTable([
		 ['Task', 'Hours per Day'],
		 <?php include "query_chart_pie.php" ?>
		 ]);
		 var options = {
		 title: 'My Daily Activities'
		 };
		 var chart = new google.visualization.PieChart(document.getElementById('piechart'));
		 chart.draw(data, options);
	 }
	 </script>
</head>

<body style="background:gray;">
	 <div id="piechart" style="width: 900px; height: 500px;"></div>
	 <select onchange="fetch_select(this.value);">
	 <?php
	 $last_year = date ("Y");
	 for( $i = 2004; $i <= $last_year; $i++ ) {
		 $selected = ($last_year == $i) ? 'selected="selected"' : '';
		 echo "<option $selected value='$i'>$i</option>\n";
	 };
	 ?>
	 </select>
<div id="new_select"><?php include"query_chart_pie.php" ?></div>
</body>
</html>

La deschiderea fisierului index.php, browserul afiseaza doar informatia din div-ul new_select. In ceea ce priveste chart-ul nu apare nimic (titlu, legenda, grafic), absolut nimic, doar ocupa spatiul potrivit dimensiunilor setate in div-ul piechart

In div-ul new_select este returnata valoarea ['popescu',369],['alin',124], aceasta valoare in mod normal este returnata si in aceasta functie
function drawChart() {
		 var data = google.visualization.arrayToDataTable([
		 ['Task', 'Hours per Day'],
		 <?php include "query_chart_pie.php" ?>
		 ]);
		 var options = {
		 title: 'My Daily Activities'
		 };
		 var chart = new google.visualization.PieChart(document.getElementById('piechart'));
		 chart.draw(data, options);
	 }


Desi fisierul query_chart_pie.php returneaza o valoare agreata de functia chart-ului, cu toate astea graficul nu functioneaza. Oare sa nu ii convina if(isset($_GET['get_option'])), spun asta pentru ca am facut cateva teste fara el si fara variabila $sch = $_GET['get_option']; si functioneaza, cum le adaug, graficul nu mai functioneaza.

Multumesc!

Anunturi

Chirurgia spinală minim invazivă Chirurgia spinală minim invazivă

Chirurgia spinală minim invazivă oferă pacienților oportunitatea unui tratament eficient, permițându-le o recuperare ultra rapidă și nu în ultimul rând minimizând leziunile induse chirurgical.

Echipa noastră utilizează un spectru larg de tehnici minim invazive, din care enumerăm câteva: endoscopia cu variantele ei (transnazală, transtoracică, transmusculară, etc), microscopul operator, abordurile trans tubulare și nu în ultimul rând infiltrațiile la toate nivelurile coloanei vertebrale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate