8796 sujets

Développement web côté serveur, CMS

Bonjour!

J'ai mes 4 fichiers qui sont très à la base qui me permettent de ajouter des données, de les éditer, de les voir et de les supprimer. Nikel pour le fonctionnement.

Mais, j'aimerais pouvoir avec add.php, del.php et edit.php faire un seul fichier sous la forme
de trois fonctions. J'ai tenté de le faire mais je ne trouve pas comment réaliser cela.

Exemple, ce que j'ai tenté de faire :

J'ai pris le contenu de add.php et j'ai mis ça de meme :

function add() {

... le contenu de add.php...
... le contenu du formulaire...

}

et

add(); pour faire appelle à la fonction

si je mets mes 2 fichier add et edit de la même manière, ça fonctionne toujours.

mais si je tente de rassembler add et edit, là rien ne marche.

Comment je pourrais faire un seul fichiers pour add edit et del ? Et avoir que view qui est l'index.php?

NOTE: add.php edit.php et DEL.PHP sont des fichier très basique des de requêtes MYSQL.
pour apprendre la base.
Modifié par dan4 (22 Feb 2011 - 00:00)
Administrateur
Suggestion :

# fichier mysql.class.php

class mysql {
  function connect() {
     // Requête de connexion
  }
  function close() {
     // Déconnexion
  }
  function add($table,$data) {
    // Une requête INSERT
  }
  function edit($table,$id,$data) {
    // Une requête UPDATE
  }
  function delete($table,$id) {
    // Une requête DELETE
  }
}

# fichier index.php

require('class.mysql.php');

$machin = array('nom'=>'Moore','prenom'=>'Roger');

$mysql = new mysql();
$mysql->connect();
$mysql->add('tatable',$machin);
$mysql->close();


(à peu près)
Oui merci, je vais explorer votre solution et je redonnerai des nouvelles.

C'est apprécié! Smiley biggrin
Je tente une chance mais je doute que ça soit bon ce que j'ai fait.
J'ai besoin de quelques indications supplémentaires.

mysql.class.php :

<?php
class mysql { 
		function connect() { 
							$conn = mysql_connect("localhost","root","rootpass") 
							or die("cannot connected");
							@mysql_select_db("testt",$conn);
		} 
		
		function close() { 
							mysql_close();
		} 
		
		function add($table,$data) { 
						if(isset($_POST['Submit'])) {
						 
							$name=$_POST['name'];
							$age=$_POST['age'];
							$email=$_POST['email'];
								
							if(empty($name) || empty($age) || empty($email)) {
								if(empty($name)) {
									echo "<font color='red'>Name field is empty.</font><br/>";
								}
								if(empty($age)) {
									echo "<font color='red'>Age field is empty.</font><br/>";
								}
								if(empty($email)) {
									echo "<font color='red'>Email field is empty.</font><br/>";
								}
								echo "<br/><a href='javascript:self.history.back();'>Go Back</a>";
							}
							else {	
								$result=mysql_query("INSERT INTO users(name,age,email) VALUES('$name','$age','$email')");
								
								echo "<font color='green'>Data added successfully.";
								echo "<br/><a href='index.php'>View Result</a>";
							}
						}
						?>
						<form action="add.php" method="post" name="form1">
						<table width="25%" border="0">
							<tr> 
								<td>Name</td>
								<td><input type="text" name="name"></td>
							</tr>
            <tr> 
								<td>Age</td>
								<td><input type="text" name="age"></td>
							</tr>
            <tr> 
								<td>Email</td>
								<td><input type="text" name="email"></td>
							</tr>
            <tr> 
								<td></td>
								<td><input type="submit" name="Submit" value="Add"></td>
							</tr>

						</table>
            </form>
            <?php
		} 
		
		function edit($table,$id,$data) {
		 
						if(isset($_POST['update'])) {
							$id = $_POST['id'];
							$name=$_POST['name'];
							$age=$_POST['age'];
							$email=$_POST['email'];	
							
							if(empty($name) || empty($age) || empty($email)) {
								if(empty($name)) {
									echo "<font color='red'>Name field is empty.</font><br/>";
								}
								if(empty($age)) {
									echo "<font color='red'>Age field is empty.</font><br/>";
								}
								if(empty($email)) {
									echo "<font color='red'>Email field is empty.</font><br/>";
								}		
							}	
							else {	
								$result=mysql_query("UPDATE users SET name='$name',age='$age',email='$email' WHERE id=$id");
							}
						}
						$id = $_GET['id'];
						$result=mysql_query("select * from users where id=$id");
						while($res=mysql_fetch_array($result)) {
							$name = $res['name'];
							$age = $res['age'];
							$email = $res['email'];
						}
						?>
						<form name="form1" method="post" action="edit.php">
						<table border="0">
							 <tr> 
								<td>Name</td>
								<td>
										<input type="text" name="name" value=<?php echo $name;?>>     </td>
							</tr>
							<tr> 
								<td>Age</td>
								<td>
										<input type="text" name="age" value=<?php echo $age;?>>     </td>
							</tr>
						<tr> 
								<td>Email</td>
								<td>
										<input type="text" name="email" value=<?php echo $email;?>>     </td>
							</tr>
						<tr>
								<td><input type="hidden" name="id" value=<?php echo $_GET['id'];?>>    </td>
								<td><input type="submit" name="update" value="Update"></td>
							</tr>
						</table>
						</form>
						<?php
		} 

		function delete($table,$id) { 
						$id = $_GET['id'];
						$result=mysql_query("DELETE FROM users where id=$id");
		} 
} 
?>


Le fichier index.php :

<?php
require('mysql.class.php'); 
 
$machin = array('nom'=>'Moore','prenom'=>'Roger'); 
 
$mysql = new mysql(); 
$mysql->connect(); 


			$result=mysql_query("SELECT * FROM users ORDER BY id DESC");

			echo "<table width='80%' border=0>";
			echo "<tr bgcolor='#CCCCCC'>";
			echo "<td>Name</td>";
			echo "<td>Age</td>";
			echo "<td>Email</td>";
			echo "<td>Update</td>";
			echo "</tr>";

			while ( $res = mysql_fetch_array($result)){
				
				echo "<tr>";
				echo "<td>".$res['name']."</td>";
				echo "<td>".$res['age']."</td>";
				echo "<td>".$res['email']."</td>";	
				echo "<td><a href=\"edit.php?id=$res[id]\">Edit</a> | <a href=\"delete.php?id=$res[id]\">Delete</a></td>";
				
			}
			echo "</table>";


$mysql->add('tatable',$machin); 
$mysql->close(); 
?>



Modifié par dan4 (19 Feb 2011 - 22:07)
ça devient plus simple de resté avec les commandes de bases mysql.

Mon but est justement d'avoir un petite routine que j'appel quand j'ai besoins d'effacer une donnée ou bien d'en ajouter ou éditer. Et la solution de la mysql.class.php me semblait intéressante dans ce sens là. Merci quand même.

Benjamin-Ds a écrit :
Sinon au pire utilise un framework ...


framework, j'ai pas vraiment idée de quoi il s'agit.
Avant de passer par un framework, commence par réinventer la roue. C'est le meilleur moyen d'apprendre et de progresser. Smiley lol
J'ai vraiment reparti à la base et j'ai finalement fait mes choses autrement. Merci de vos répliques.

jb_gfx a écrit :
Avant de passer par un framework, commence par réinventer la roue. C'est le meilleur moyen d'apprendre et de progresser. Smiley lol