begin process at 2012 05 27 19:26:45
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

SQL

 > MYSQL_SELECT + MYSQL_FETCH_ARRAY.. SIMPLIFIÉ

MYSQL_SELECT + MYSQL_FETCH_ARRAY.. SIMPLIFIÉ


 Information sur la source

Note :
2 / 10 - par 2 personnes
2,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :SQL Classé sous :sql Niveau :Débutant Date de création :30/07/2006 Vu :12 686

Auteur : bobidop

Ecrire un message privé
Site perso
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

 Description

salut a tous.
Alors voila, je develope tous les jours des sites web, utilisant php+Mysql.. on se rend compte que les fonction sont souvent appeler pr lister un tableau d'une db.. boutique en ligne, album photo etc.

Bref j'ai fait une classe qui me permet en une ligne d'utiliser mysql_query("SELECT * FROM $table"); + mysql_fetch_array($sql_result).

La voila! rien d'extraordinaire, je pense juste que ca peut accelerer le developpement de certains..
A bientot pour des codes un peu plus poussé:p
Bobidop©

Source

  • class sql {
  • function sql()
  • {
  • /* Connection a la base de donnée */
  • $connect = @mysql_connect(host_sql, login_sql, passwd_sql);
  • if(!$connect)
  • {
  • echo "<span style='color:red; font-size:20px;'>
  • En raison d'un problème avec la base de donnée, certaines parties du site sont suceptible de ne pas fonctionner.<br />
  • Veuillez réessayer ultèrieurement.
  • </span>
  • ";
  • }
  • @mysql_select_db(db_sql, $connect);
  • }
  • function select($query, $sql_result) // mysql_query + mysql_fetch_array
  • {
  • if (!$sql_result)
  • {
  • $this->sql_result = mysql_query($query);
  • }
  • return mysql_fetch_array($this->sql_result);
  • }
  • }
  • ?>
  • <?php
  • /*
  • utilisateion :
  • */
  • $sql = new sql;
  • while($row = $sql->select("SELECT * FROM table"))
  • {
  • echo $row['filed'];
  • }
  • ?>
class sql {
	
	function sql()	
	{
		/* Connection a la base de donnée */
		$connect = @mysql_connect(host_sql, login_sql, passwd_sql);
		if(!$connect)
		{
				echo "<span style='color:red; font-size:20px;'>
							En raison d'un problème avec la base de donnée, certaines parties du site sont suceptible de ne pas fonctionner.<br />
							Veuillez réessayer ultèrieurement.
						</span>
			";
		}
	
		@mysql_select_db(db_sql, $connect);
		
	}
	
	function select($query, $sql_result) // mysql_query + mysql_fetch_array
	{
		if (!$sql_result)
		{
			$this->sql_result = mysql_query($query);
		}
			return mysql_fetch_array($this->sql_result);
	}
}
?>
<?php
/*
utilisateion : 
*/
$sql = new sql;

while($row = $sql->select("SELECT * FROM table"))
{
  echo $row['filed'];
}
?>





 Sources de la même categorie

Source avec Zip CLASS PHP :: REQUÊTES MYSQL par devgoneti
Source avec Zip Source avec une capture CONVERTIR BASE FIREBIRD EN MYSQL par castelfrederic29
Source avec une capture SQL/EXE EXECUTEUR DE REQUETTES SQL par enokbyreal
Source avec Zip ESPACE MEMBRE BASIQUE par bonhommecrea
Source avec Zip Source avec une capture MODIFICATEUR DE DONNEES DANS UNE BASE SQL AVEC LISTING DES T... par cram121

 Sources en rapport avec celle ci

Source avec Zip CLASS SIMPLE CBASEDONNEE par smag42
Source avec Zip Source avec une capture CONVERTIR BASE FIREBIRD EN MYSQL par castelfrederic29
DUMP SQL AVEC SÉLECTION AUTOMATIQUE DES TABLES par theptitprince
GÉNÉRATEUR DE REQUÊTE SQL par theptitprince
Source avec une capture SQL/EXE EXECUTEUR DE REQUETTES SQL par enokbyreal

Commentaires et avis

Commentaire de bobidop le 30/07/2006 20:22:14

oup's j'ai oublié un truc..

while($row = $sql->select("SELECT * FROM table", $row))
{
...
}

Commentaire de kankrelune le 30/07/2006 22:11:12

Salut...

Je vois pas trop l'interet de réinventer la roue... tu aurais fait une classe d'abstraction SGDB d'accord mais il n'y aucun interet de faire une classe pour encapsuler les fonctions sql... c'est faire de l'objet histoire de faire de l'objet... tu gagne peut être en charactères à taper pour coder mais tu perd en performances... .. .

function sql()    
{
    /* Connection a la base de donnée */
    $connect = @mysql_connect(host_sql, login_sql, passwd_sql);

D'où viennent host_sql, login_sql et passwd_sql... pareil pour db_sql... .. ?

Personnellement je trouve incorrect que ta classe gère l'affichage des erreurs... ce n'est pas son role... qui plus est si la connection échoue tu affiche un message d'erreur... c'est bien (quoique) mais tu ne shunte pas le mysql_select_db ce qui fera planter ton script... ou alors il faut remplacer le echo par un die mais pour un site pro en production c'est crade... .. .

incorrect => echo "<span style='color:red; font-size:20px;'>...
correct => echo '<span style="color:red; font-size:20px;">...

Quel interet de mettre le mysql_fetch_array dans la methode select()... aucun... il faut faire une methode pour éxécuter les requete et une pour les traiter... .. .

SELECT * est à éviter car gourmand en resources d'autant plus qu'il n'est pas utile de rapatrier le contenu de tous les champs d'une table si tu n'a besoin que du contenu d'un seul champ... et tu fais comment si tu veux rajouter une clause WHERE... .. ?

Voili voilou... je te conseil de jeter un coup d'oeil à la classe qu'a posté FhX sur ce site elle est beaucoups plus complete... .. .

^_^

@ tchaOo°

Commentaire de coockiesch le 30/07/2006 23:10:36

Salut!
Ta source ne marche pas telle quelle:
#  if (!$sql_result)
#         {
#             $this->sql_result = mysql_query($query);
#         }
>> Renvoie une notice car $sql_result pas pasés en param dans ton exemple

>> La fonction doit prendre deux params, sinon une erreur de plus

Me semble pas que $this->sql_result est défini...

Dommage d'utiliser mysql_fetch_array: je préfère soit mysql_fetch_row soit mysql_fetch_assoc

Pour terminer, y'a pas de gestion d'erreurs. Ainsi, si la requête contient une erreur mysql_fetch_array, renvoie une erreur...

@++

R@f

Commentaire de FhX le 30/07/2006 23:47:12

Jmy met moi aussi :

function select($query, $sql_result) { // }
Méthode à 2 arguments et pourtant :
while($row = $sql->select("SELECT * FROM table"))

^==^ la haut y'en a qu'un seul ! Déja y'a un problème :)

"#  if (!$sql_result)
#         {
#             $this->sql_result = mysql_query($query);
#         }"

Tu fais un test sur quoi ? J'ai pas tout saisi la ... !

JE vois ce que tu veux faire. Pour faire ce que tu veux, tu dois faire quelque chose de plus grossier :

class mysql {
public $query;
public $sql;
public $iterate = FALSE;

// J'épargne la connection.

// $sql est la chaine SQL.
public function query($sql) {
  
  if ( ! $this->iterate ) { // On vérifie si y'a pas déja eu un query()
     $this->sql = $sql;
     $this->query = mysql_query($this->sql) or die (mysql_error());
      if ( mysql_num_rows($this->query) > 1 ) $this->iterate = TRUE;
  } // Si y'a plus d'un enregistrement (donc faut boucler, on initialise Iterate pour éviter de refaire une requète.
  
  if ( FALSE !== ( $data = mysql_fetch_array($this->query) ) ) {
       return $data; // Si ca boucle tjs, on renvoit
  } else {
       $this->iterate = FALSE; // Sinon on stop.
  }

}

}

Bien entendu, ne jamais utiliser la méthode que j'ai mise :) C'est juste pour l'exemple lol !

Commentaire de jcwanner le 17/04/2007 23:07:27

Une tentative qui a déjà été faite et refaite.
Piège des débutants qui decouvrent l'objet et php, qui pensent trouver une idée de génie en faisant cela, mais qui au final se provoque plus de galère que autre chose.

Grand classique !

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Convertir un nombre en expression literrale en PL/SQL [ par ThReM ] bonjour je cherche une source pour convertir un nombre en ce meme nombre mais ecris en toutes lettre (99 ==&gt; quatre vingt dix neuf) en langage PL/S Astuce du jour #1: Comment configurer une erreur de la base de donné MySql [ par SmallToad ] Quand vous avez de des erreurs de la base de donnée, êtes-vous déjà demander comment configurer le message d'erreur de la base de donnée MySql C'est Formulaire et SQL [ par Christophe46 ] Salut,J'espère trouver de l'aide sur ce forum,J'ai fait une base de données MySql, avec une table et des champs comme nom, prenom, telephone, adresse, Formulaire et SQL [ par Christophe46 ] Salut,J'espère trouver de l'aide sur ce forum,J'ai fait une base de données MySql, avec une table et des champs comme nom, prenom, telephone, adresse, LA taille d'une base de donnée sql [ par FleX ] ba en fait je suis sur Free et j'ai une base de donnée que je manipule en php.J'aimerai savoir comment c'est ty qu'on peut bien faire pour obtenir la Debuter une base SQL pour faire du PHP [ par bowen ] Bonjour je suis nouveau sur ce site et aussi a la prog !Bon je vous expliques mon probleme je veux creer un site sur le cinema asiatique et je vais do SQL [ par ProGMaN007 ] Salut,$dbserver = "localhost"; ok ça c ok$dbuser = je met quoi ?????? j utilise EasyPHP. Je met root ?$dbpass = mot de pas PROBLEME SIMPLE [ par g0belin ] sa me repond sa---------------------------ERREUR--------------------Réponse serveur SQL : You have an error in your SQL syntax near '@msn.com, 1234567 PROBLEME UPDATE [ par g0belin ] JE FAIS SA:$requete2= "UPDATE membre SET cle = $id WHERE LIKE '%$login%'";ET SA ME DIS SA:Réponse serveur SQL : You have an error in your SQL syntax n SQL Injection [ par thebigbang ] bonjour à tous,Je cherche des infos sur la méthode du SQL Injection.. Si vous vous y connaissez un peu, merci de m'aider, me renseigner ... me donner


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,452 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales