requete très complexe

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : requete très complexe

Re: requete très complexe

par dogmongo » 09 août 2011, 00:09

ok merci pour l'info :wink:

Re: requete très complexe

par moogli » 06 août 2011, 15:40

Hum, ms Sql oui, access peut être via odbc mais jamais testé ;)

Si non la liste des drivers PDO te donne la liste utilisable ;)

@+

Re: requete très complexe

par dogmongo » 06 août 2011, 12:58

PDO permet l'utilisation de plusieurs Gestionnaire de bases de données (dont mysql, mais aussi msaccess, sqlite, postgre etc etc).
Je vais passer pour un demeuré mais tu explique que je peux utiliser une base de données acces de microsoft en passant par du php sans me prendre la tête à changer le code ?

Re: requete très complexe

par moogli » 05 août 2011, 03:56

Désolé, je me suis mal exprimé ... Globalement PDO à le même utilité que MySQL quand tu programmes. Par exemple se connecter à la DB, faire des requête SQL, etc. malgré qu'il y a beaucoup de différence


Ça te va comme ça ?
non : PDO à le même utilité que l'extension MySQL de php (http://www.php.net/manual/fr/book.mysql.php)

car dans ta phrase tu compare une classe php à un SGBD ...


@+

Re: requete très complexe

par Blowingfish » 04 août 2011, 21:28

Désolé, je me suis mal exprimé ... Globalement PDO à le même utilité que MySQL quand tu programmes. Par exemple se connecter à la DB, faire des requête SQL, etc. malgré qu'il y a beaucoup de différence


Ça te va comme ça ?

Re: requete très complexe

par moogli » 04 août 2011, 17:36

Globalement, PDO ressemble beaucoup à MySQL et permet même de faire des requêtes plus sécurisé (avec les requête préparé)
O_o

Heu nan, PDO ressemble pas, une classe d'abstraction de SGBD ne ressemble pas à un SGBD, c'est pas du tout pareil.

ou alors une voiture ça ressemble à un gâteau au chocolat (oui oui y a des voitures couleurs chocolat et on peux avoir un gâteau au chocolat dans une voiture) .......

PDO permet l'utilisation de plusieurs Gestionnaire de bases de données (dont mysql, mais aussi msaccess, sqlite, postgre etc etc).

L'avantage de PDO c'est, si tu a des requêtes SQL Standard, de ne pas avoir à ré écrire ton code si tu change de SGBD (par exemple passer de mysql à mssql fait remplacer les mysql_* par mssql_*, il y a des fonctions qui existe sur certain sgbd et pas d'autre, la pas de problème !).

Les requêtes préparées, c'est pas spécifique à mysql. si tu souhaite savoir comment ça fonctionne, je t'invite à regarder dans le forum contribution; Stealth35 à fait un sujet sur comment les utiliser dans PDO ;)

les requêtes préparées sont plus sécurisées, si tu fait n'importe quoi tu peux aussi mettre le brin avec des requêtes préparées (encore une fois je t'invite a regarder le thread de stealth35 pour tester toi même).

Si tu regarde sur le forum il y a beaucoup d'incompréhension avec les requêtes préparée (regarde le thread de rimie pour voir l'étendu des dégâts).

il faut prendre les requêtes préparées pour ce qu'elle sont une automatisation d'un tache, elle ne sont pas pour sécuriser les données, PDO le fait pour toi et pas toujours comme il faut.

dans la plus part des cas tu n'aura pas besoin de requêtes préparée (pourquoi utiliser un 38 tonnes quand une voiture suffit ?).

je ne dit pas de ne pas utiliser PDO, au contraire, les extensions native (mysql_* par exemple) étant considérées comme dépréciées, la doc insiste même à utiliser PDO. Mais ce n'est pas parce que ça mâche un peu le travail mais ce n'est pas une raison pour ne pas savoir comment ça fonctionne et comment bien faire (par exemple juste utilise query et quote, en "remplacement" du mysql_real_escape_string avec une gestion intelligente du type de donnée, notamment pour les nombres).

@+

Re: requete très complexe

par dogmongo » 02 août 2011, 22:34

excellent merci :wink:

Re: requete très complexe

par Blowingfish » 02 août 2011, 20:42

Globalement, PDO ressemble beaucoup à MySQL et permet même de faire des requêtes plus sécurisé (avec les requête préparé). Je t'envoie sur la vidéo ou j'ai appris à utiliser PDO : [urlhttp://www.grafikart.fr/tutoriels/pdo-php-111[/url]

Si tu as des questions, n'hésite pas à les poser.

Bonne journée !

Re: requete très complexe

par dogmongo » 02 août 2011, 12:34

salut,

parce que je n'arrive pas à le faire fonctionner, tu as par contre suciter ma curiosité et je pense que je vais me pencher sur la PDO :D , je ne savais pas que je pouvais l'utiliser :roll:

en tout cas merci pour le temps que tu as pris pour m'aider

Re: requete très complexe

par Blowingfish » 02 août 2011, 00:27

Est-ce que tu ne prends pas mon code parce que tu n'arrives pas à le faire fonctionner ou tu as juste décider de faire ton propre code à la place ?

Re: requete très complexe

par dogmongo » 01 août 2011, 15:58

bon bein je viens d'en finir avec mon problème, j'ai pas utiliser la PDO mais je te remercie d'avoir essayer de m'aider

au cas ou quelqu'un à besoin de régler le même problème que moi je montre mon code commenté que je souhaitai obtenir
		$class = 0; // initialise ma variable classement (position des pilotes sur le classement général)	
		
		$query = "SELECT pilotes.* , circuits.circuit_id,circuits.circuit_niv,circuits.circuit_min,circuits.circuit_max 
		FROM pilotes 
		LEFT JOIN circuits ON pilotes.pilotes_pts BETWEEN circuits.circuit_min AND circuits.circuit_max 
		ORDER BY circuits.circuit_niv DESC";
	
		$result = mysql_query($query) or die(mysql_error());

		while($row = mysql_fetch_array($result)){
		
		
		$bdd_circuits_niv = $row['circuit_niv']; 
		//tableau associatif pour les titres de chaque niveau
		$bdd_circuits_min[$bdd_circuits_niv] = $row['circuit_min']; 
		$bdd_circuits_max[$bdd_circuits_niv] = $row['circuit_max'];
		
		//je crèe un tableay array avec tout les circuit liés à chaque pilote 
		//(logiquement on à plein de doublon vu qu'il y a plusieurs pilotes par circuit
		$nbresult[] = $row['circuit_niv'];
		
		//données des pilotes
		$DB_id = $row['id'];
		$bdd_piloteslogin = $row['pilotes_login'];
		$bdd_pilotespts = $row['pilotes_pts'];
		
		$class++;
		
		// je crée les ligne de chaque pilote avec en clé le nibveau du circuit
		$listPilotes[$bdd_circuits_niv].="		
		<tr>
		<td class=\"lign\">$class</td>
		<td class=\"lign\">$bdd_piloteslogin</td>
		<td class=\"lign\">$bdd_pilotespts</td>              
		</tr>";
		
		} 

		$sansdoublon = array_unique($nbresult); // je supprime les doublons de mon tableau circuit voir plus haut
		$nbdecircuitfinal = count($sansdoublon); // je recompte les circuits pour en supprimant les doublons
			
		$i = $nbdecircuitfinal; // initialisation de la variable de boucle 
		
		for( ; $i >= 1; )

		{				
				echo "<table id=\"css_auto_pilote\" ><caption>Niveau $i pour les pilotes ayant de $bdd_circuits_min[$i] à $bdd_circuits_max[$i] </caption>
				<thead>
				<tr>     
				<th class=\"sortable-bt\">Classement</th>        
				<th class=\"sortable-bt\">Pseudo PS3</th>        
				<th class=\"sortable-bt\">Points</th>        
				</tr>
				</thead>
				<tbody>";		
					
				echo $listPilotes[$i];
				
				echo "</tbody></table>";
				
				$i -= 1; 
				
			
		}

merci devlop78 pour BETWEEN je découvre :oops:

Re: requete très complexe

par dogmongo » 01 août 2011, 13:59

Écoute, je viens de tester la PDO su rune petite requête banal ca marche impec, donc on peut ce concentrer sur ton code :D

Re: requete très complexe

par dogmongo » 01 août 2011, 13:50

effectivement je suis en php5 et aucun rapport d'error avec error_reporting(-1); :?:

Re: requete très complexe

par moogli » 01 août 2011, 12:36

salut ,

je viens de tester ton code il ne fonctionne, peut etre que je ne suis pas équiper pour la PDO

merci de ton aide
heu si tu a php 5 ça devrait aller, tu peux le voir dans un phpinfo();

y a t il un message d'erreur avec ça ?
si ce n'est pas le cas ajoute un error_reporting(-1); en 1ère ligne du script.

@+

Re: requete très complexe

par dogmongo » 01 août 2011, 11:19

salut ,

je viens de tester ton code il ne fonctionne, peut etre que je ne suis pas équiper pour la PDO

merci de ton aide