Afficher le nom de la table des données d'une base de donnée

issaconan Messages postés 43 Date d'inscription jeudi 24 novembre 2005 Statut Membre Dernière intervention 8 juillet 2013 - 24 nov. 2010 à 11:30
issaconan Messages postés 43 Date d'inscription jeudi 24 novembre 2005 Statut Membre Dernière intervention 8 juillet 2013 - 24 nov. 2010 à 17:24
Bonjour,
Je suis entrain de réaliser un petit script qui affiche données depuis plusieurs tables d'une base de donnée.
Un surfeur sur le forum ma bien idée à trouver la solution pour afficher les champs de multiple tables, moi ce que je cherche actuellement c'est ajouter une colon sur le tableau des résultats qui affiche le nom de la table d'où viens les données ou le nom du fournisseur un truc comme ca.
Et aussi j'ai toujours le problème de suppression qui marche pas par ce que c'est un script que j'ai aménager pour les fournisseurs et là je le transforme pour Admin.
bon voila le script et merci d'avance :
<?php
$host= "localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="location"; // Database name



// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

$sql="SELECT  * FROM partenaire1 
UNION ALL 
SELECT * FROM partenaire2
UNION ALL 
SELECT * FROM partenaire3
";

$result=mysql_query($sql);
$count=mysql_num_rows($result);


?>


 Gestion des voitures <form name ="form1" method="post" action="">
<table width="400" border="0" cellpadding="3" cellspacing="1" >
----,  </td>

Id,

Marque voiture,

Date début,

Date fin,

Fournisseur,

<?php
while($rows=mysql_fetch_array($result)){
?>

----

">,
<? echo $rows['id']; ?>,
<? echo $rows['marque_voiture']; ?>,
<? echo $rows['date_debut']; ?>,
<? echo $rows['date_fin']; ?>,
<? echo $rows['nomtable']; ?>,

<?php
}
?>
----

,

<?
// Check if delete button active, start this
if(isset($_POST['delete'])){
for($i=0;$i<$count;$i++){
$del_id = $_POST['checkbox'][$i];$sql \"DELETE FROM $tbl_name WHERE id'$del_id'\";
$result = mysql_query($sql);
}

// if successful redirect to delete_multiple.php
if($result){
echo \"<meta http-equiv=\\"refresh\\" content=\\"0;URL=sup2.php\\">\";
}
}
mysql_close();
?>

</form>
</td>
</tr>
</table>

5 réponses

Le grand Jisay Messages postés 100 Date d'inscription mardi 8 mai 2007 Statut Membre Dernière intervention 18 février 2011 2
24 nov. 2010 à 12:04
Salut !

Pour ajouter une colonne à tes données retournées par MySql, tu peux utiliser la syntaxe suivante :
<?php
$sql="SELECT par1.*, 'partenaire1' AS TableName FROM partenaire1 AS par1";
$sql.=" UNION ALL";
$sql.=" SELECT par2.*, 'partenaire2' FROM partenaire2 AS par2";
// ...
?>


Alors pour ton problème de delete. Où est déclaré ta variable $tbl_name de ta requête ? Je pense que c'est la que se situe le problème. Sinon, affiche ta requête et lance la avec MySql pour voir si il n'y a pas d'erreur. Si il y en a une poste la sur le forum qu'on y jète un oeil ;)

Bien à toi,

Le grand Jisay
0
issaconan Messages postés 43 Date d'inscription jeudi 24 novembre 2005 Statut Membre Dernière intervention 8 juillet 2013
24 nov. 2010 à 12:19
J'avoue que ce syntaxe ma un peut tourner la tête.
pouvez vous m'expliquez plus, et comment appeler le nom de la table dans le tableau
*******
<tr>
<td align="center">"></td>
<td><? echo $rows['id']; ?></td>
<td><? echo $rows['marque_voiture']; ?></td>
<td><? echo $rows['date_debut']; ?></td>
<td><? echo $rows['date_fin']; ?></td>
<td><? echo $rows['tablename']; ?></td>
</tr>
*******
0
issaconan Messages postés 43 Date d'inscription jeudi 24 novembre 2005 Statut Membre Dernière intervention 8 juillet 2013
24 nov. 2010 à 12:20
<tr>
<td align="center">"></td>
<td><? echo $rows['id']; ?></td>
<td><? echo $rows['marque_voiture']; ?></td>
<td><? echo $rows['date_debut']; ?></td>
<td><? echo $rows['date_fin']; ?></td>
<td><? echo $rows['tablename']; ?></td>
</tr> 
0
Le grand Jisay Messages postés 100 Date d'inscription mardi 8 mai 2007 Statut Membre Dernière intervention 18 février 2011 2
24 nov. 2010 à 13:23
Je ne vais pas savoir t'aider. Je n'utilise jamais cette syntaxe. Je sais juste qu'elle existe.

Par contre quand j'ai un cas comme le tien, j'utiliserai plutôt ceci :

<?php
$i = 0;
while($rows=mysql_fetch_array($result)){
?>
<tr>
<td align="center">" type="checkbox" id="checkbox_<?php echo $i; ?>" value="<? echo $rows['id']; ?>"></td>
<td><? echo $rows['id']; ?></td>
<td><? echo $rows['marque_voiture']; ?></td>
<td><? echo $rows['date_debut']; ?></td>
<td><? echo $rows['date_fin']; ?></td>
<td><? echo $rows['nomtable']; ?></td>
</tr>
<?php
$i++;
}
?>
" />

Et pour connaître le nom de la table j'ajouterai un champs caché "associé" à la checkbox.
" type="checkbox" id="checkbox_<?php echo $i; ?>" value="<? echo $rows['id']; ?>">
" type="hidden" id="table_<?php echo $i; ?>" value="<? echo $rows['TableName']; ?>">

Ensuite, en php, je boucle sur le nombre de ligne (champs caché à la fin de mon script et je construit mes index du tableau associatif $_POST.

C'est une autre solution mais je te dis, je ne connais absolument pas le fonctionnement de la méthode que tu as mise en place. Si ca se trouve elle est correcte.

Bien à toi,

Le grand Jisay
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
issaconan Messages postés 43 Date d'inscription jeudi 24 novembre 2005 Statut Membre Dernière intervention 8 juillet 2013
24 nov. 2010 à 17:24
Merci le grand Jisay,
J'ai pensé aussi à utiliser l'option champ "hidden", mais cette je l'ai utilisé dans le formulaire de saisie des données.
J'ai insérré un champ text hidden qui comporte la valeur du fournisseur ca fais un peut de travail mais bon.
voila le code :
<html>

<head>
<meta http-equiv= "Content-Language" content="fr">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Ajouter une voiture</title>
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
  <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
  
  <script>
  $(function() {
var dates = $( "#from, #to" ).datepicker({
defaultDate: "+1w",
changeMonth: true,
numberOfMonths: 3,
onSelect: function( selectedDate ) {
var option this.id "from" ? "minDate" : "maxDate",
instance = $( this ).data( "datepicker" );
date = $.datepicker.parseDate(
instance.settings.dateFormat ||
$.datepicker._defaults.dateFormat,
selectedDate, instance.settings );
dates.not( this ).datepicker( "option", option, date );
}
});
});
  </script>

</head>



 Ajouter une voiture 


<form method ="POST" name= "ajouter" action="ajouter.php">


Sélectionnez une voiture
,
<select size="1" name="marque_voiture">
<option>Fiat</option>
<option>Toyota</option>
<option>Renault</option>
<option>Mercedes</option>
</select>,

----

Date début,
,

----

Date fin,
,

----

fournisseur ,







</form>
 






</html>


le fishier ajouter.php :
<?php
  //connection au serveur
  $cnx = mysql_connect( "localhost", "root", "" ) ;
 
  //sélection de la base de données:
  $db  = mysql_select_db( "location" ) ;
 
  //récupération des valeurs des champs:
  //marque voiture:
  $marque_voiture     = $_POST["marque_voiture"] ;
  //date debut:
  $date_debut = $_POST["date_debut"] ;
  //date fin:
  $date_fin = $_POST["date_fin"] ;
  //fournisseur:
  $fournisseur = $_POST["fournisseur"] ;
   
  //création de la requête SQL:
  $sql = "INSERT  INTO partenaire3 (marque_voiture, date_debut, date_fin, fournisseur)
            VALUES ( '$marque_voiture', '$date_debut', '$date_fin', '$fournisseur') " ;
 
  //exécution de la requête SQL:
  $requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
 
  //affichage des résultats, pour savoir si l'insertion a marchée:
  if($requete)
  {
    echo("Opération effectué avec succés, voulez vous ajouter une autre voiture?") ;
echo'[ajouter-voiture.php  Oui ]';
  }
  else
  {
    echo("L'insertion à échouée") ;
  }
?>


après je fais appeler la valeur du champ tous simplement
<?php
$host="localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="location"; // Database name



// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

$sql="SELECT * FROM partenaire1
UNION ALL
SELECT * FROM partenaire2
UNION ALL
SELECT * FROM partenaire3
";

$result=mysql_query($sql);
$count=mysql_num_rows($result);


?>


 Gestion des voitures <form name ="form1" method="post" action="">
<table width="400" border="0" cellpadding="3" cellspacing="1" >
----,  </td>

Id,

Marque voiture,

Date début,

Date fin,

Fournisseur,

<?php
while($rows=mysql_fetch_array($result)){
?>

----

">,
<? echo $rows['id']; ?>,
<? echo $rows['marque_voiture']; ?>,
<? echo $rows['date_debut']; ?>,
<? echo $rows['date_fin']; ?>,
<? echo $rows['fournisseur']; ?>,

<?php
}
?>
----

,

<?
// Check if delete button active, start this
if(isset($_POST['delete'])){
for($i=0;$i<$count;$i++){
$del_id = $_POST['checkbox'][$i];$sql \"DELETE FROM $tbl_name WHERE id'$del_id'\";
$result = mysql_query($sql);
}

// if successful redirect to delete_multiple.php
if($result){
echo \"<meta http-equiv=\\"refresh\\" content=\\"0;URL=sup2.php\\">\";
}
}
mysql_close();
?>

</form>
</td>
</tr>
</table>



************
reste l'option supprimer ???
0
Rejoignez-nous