Forums Webou.net - Hébergement gratuit et sans publicités avec PHP/MySQL Webou Webou Pro
Recherche avancée  
*
Bienvenue, Invité. Veuillez vous connecter ou vous inscrire.
Avez-vous perdu votre courriel d'activation?
22 Juillet 2019, 12:03:14


Connexion avec identifiant, mot de passe et durée de la session


Pages: [1]   Bas de page
  Imprimer  
Auteur Fil de discussion: Optimisation d'un code. [Edité]  (Lu 3631 fois)
0 Membres et 1 Invité sur ce fil de discussion.
Rainbow
Invité
« le: 30 Octobre 2008, 23:00:45 »

Bonjour j’ai écris un code MySQL et je voulais savoir si il y avais possibilité de réduire pour qu'il prenne moins de place. En effet le code ci joint et écrit pour un département. Sachant qui il y a environ 99 département sa fais 99 fois ce code:

Code:
<strong><SCRIPT LANGUAGE = "JavaScript"> Degrade(102,0,102,102,0,255,"-Tu es du 08 Ardenne:") </SCRIPT>
<?php
mysql_connect
("localhost""root""");
mysql_select_db("rainbow_rainbow");
$reponse mysql_query("SELECT lien FROM skypub WHERE provencecantonregion=08 Ardenne' AND visibilitelien='line'");
while (
$donnees mysql_fetch_array($reponse) )
{
?>


<a href="<?php  echo $donnees['lien']; ?>"><?php  echo $donnees['lien']; ?></a> $$$

<?php
}
mysql_close();
?>

<br />   

<strong><SCRIPT LANGUAGE = "JavaScript"> Degrade(102,0,102,102,0,255,"-Tu es du 09 Ariège :") </SCRIPT>
<?php
mysql_connect
("localhost""root""");
mysql_select_db("rainbow_rainbow");
$reponse mysql_query("SELECT lien FROM skypub WHERE provencecantonregion='09 Ariège' AND visibilitelien='line'");
while (
$donnees mysql_fetch_array($reponse) )
{
?>


<a href="<?php  echo $donnees['lien']; ?>"><?php  echo $donnees['lien']; ?></a> $$$

<?php
}
mysql_close();
?>

<br />   
 

Enfin j'ai un autre petit problème:

J'ai créer une petite partie pour administrer le tous sois le code suivant:

Code:
<table>
   <caption>Gestion de skypub:</caption>
   <tr>
   <th>Id</th>
       <th>Pseudo</th>
       <th>E.mail</th>
       <th>Provence / Canton / Region</th>
   <th>Lien</th>
   <th>Visibilité</th>
   <th>Supprimer</th>    
<?php
mysql_connect
("localhost""root""");
mysql_select_db("rainbow_rainbow");
$reponse mysql_query("SELECT * FROM skypub ");
while (
$donnees mysql_fetch_array($reponse) )
{
?>
   
   </tr>
      <tr>
       <td><?php  echo $donnees['id']; ?></td>
       <td><?php  echo $donnees['pseudo']; ?></td>
       <td><a href="mailto:<?php  echo $donnees['email']; ?>"><?php  echo $donnees['email']; ?></a></td>
   <td><?php  echo $donnees['provencecantonregion']; ?></td>
       <td><a href="<?php  echo $donnees['lien']; ?>"><?php  echo $donnees['lien']; ?></a></td>
       <td><?php echo $donnees['visibilitelien'] ; ?>     <a href="modif.php?id=<?php echo $donnees['id']; ?>">Modifier</a></td>
   <td><a href="suppr.php?id=<?php echo $donnees['id'] ; ?>"><img src="delete.gif" alt="suppr" /></a></td>
   </tr>
<?php
}
?>

</table>

Cepedant dans l'option modifier je voudrais mêtre soit line soit offline. Le debut de code que j'ai fais ressemble à cela:

Code:
<?php
mysql_connect
("localhost","root","");
mysql_select_db("rainbow_rainbow");
$idmodif $_GET['id'];

mysql_query("UPDATE skypub SET visibilitelien='line' WHERE id='".$idmodif."'");
mysql_close();
Echo
"Le blog est à présent en ligne";
?>

<a href="adminskypub.php">ici</a>

Mais je n'arrive pas a voir comment je pourrais mêtre les deux. Pouvez vous m'aider?


Merci d'avance.
« Dernière édition: 31 Octobre 2008, 14:17:34 par Rainbow » Journalisée
Forums Webou.net - Hébergement gratuit et sans publicités avec PHP/MySQL
« le: 30 Octobre 2008, 23:00:45 »

 Journalisée
chrmag
Bavard
***
Hors ligne Hors ligne

Messages: 131


Voir le profil WWW
« Répondre #1 le: 31 Octobre 2008, 15:00:57 »

Je ne suis pas sur d'avoir tout bien compris, mais...

Pour le premier probleme: tu peux faire une fonction avec des parametres specifiques pour chaque departement (le code de la fonction serait un peu pres celui que tu as donne).

Pour le deuxieme probleme:
Code:
<?php
mysql_connect
("localhost","root","");
mysql_select_db("rainbow_rainbow");
$idmodif $_GET['id'];
$setLine = (bool)$_GET['line'];

mysql_query("UPDATE skypub SET visibilitelien='".($setLine "" "off")."line' WHERE id='".$idmodif."'");
mysql_close();
echo 
"Le blog est à présent ".($setLine "en" "hors")." ligne";
?>
Ainsi, tu peux utiliser l'url fichier.php?id=idtochange&line=1 pour mettre en ligne et avec un 0 pour mettre hors ligne.
Journalisée
Rainbow
Invité
« Répondre #2 le: 31 Octobre 2008, 17:50:12 »

cela ne marche pas :s

 en gros je voudrais a partir d'un formulaire di dire si je veut en ligne "line" ou si je le veux en hors ligne "offline" 'ai créer le debut du code:

<?php
mysql_connect("localhost","root","");
mysql_select_db("rainbow_rainbow");
$idmodif = $_GET['id'];
$visibilitelien=mysql_real_escape_string($_POST['visibilitelien']);

mysql_query("UPDATE skypub SET visibilitelien='".$visibilitelien."' WHERE id='".$idmodif."'");
mysql_close();
?>
<a href="adminskypub.php">ici</a>

<p>Utlisateur n°<?php echo $_GET['id'] ?>
<form method="POST" action="modif.php">
<input type="text" name="visibilitelien" value=""/>
<input type="submit" value="Enregistrer" />
</form>
</p>
« Dernière édition: 31 Octobre 2008, 18:21:44 par Rainbow » Journalisée
K@cem
Never trust user input
Big boss
*****
Hors ligne Hors ligne

Messages: 2 724



Voir le profil WWW
« Répondre #3 le: 31 Octobre 2008, 21:00:18 »

Pourquoi ça marche pas ?
C'est quoi l'erreur ?
Journalisée

Le support ne se fait pas par MP, merci de le respecter !
Rainbow
Invité
« Répondre #4 le: 31 Octobre 2008, 23:43:14 »

C'est bien ca le pb au lieu de modifier il supprime. Voici tous les code au cas ou:

adminskypub.php

Code:
<table>
   <caption>Gestion de skypub:</caption>
   <tr>
   <th>Id</th>
       <th>Pseudo</th>
       <th>E.mail</th>
       <th>Provence / Canton / Region</th>
   <th>Lien</th>
   <th>Visibilité</th>
   <th>Supprimer</th>    
<?php
mysql_connect
("localhost""root""");
mysql_select_db("rainbow_rainbow");
$reponse mysql_query("SELECT * FROM skypub ");
while (
$donnees mysql_fetch_array($reponse) )
{
?>
   
   </tr>
      <tr>
       <td><?php  echo $donnees['id']; ?></td>
       <td><?php  echo $donnees['pseudo']; ?></td>
       <td><a href="mailto:<?php  echo $donnees['email']; ?>"><?php  echo $donnees['email']; ?></a></td>
   <td><?php  echo $donnees['provencecantonregion']; ?></td>
       <td><a href="<?php  echo $donnees['lien']; ?>"><?php  echo $donnees['lien']; ?></a></td>
       <td><?php echo $donnees['visibilitelien'] ; ?>     <a href="modif.php?id=<?php echo $donnees['id']; ?>">Modifier</a></td>
   <td><a href="suppr.php?id=<?php echo $donnees['id'] ; ?>"><img src="delete.gif" alt="suppr" /></a></td>
   </tr>
<?php
}
?>

</table>

modif.php


Code:
<?php
mysql_connect
("localhost","root","");
mysql_select_db("rainbow_rainbow");
$visibilitelien=mysql_real_escape_string($_POST['visibilitelien']);

mysql_query("UPDATE skypub SET visibilitelien='".$visibilitelien."' WHERE id='".$idmodif."'");
mysql_close();
?>

<a href="adminskypub.php">ici</a>

<p>Utlisateur n°<?php echo $_GET['id'?>
<form method="POST" action="modif.php">
<input type="text" name="visibilitelien" />
<input type="submit" value="Enregistrer" />
</form>
</p>

suppr.php


Code:
<?php
mysql_connect
("localhost","root","");
mysql_select_db("rainbow_rainbow");
$idsuppr $_GET['id'];

mysql_query("DELETE FROM skypub WHERE id='".$idsuppr."'");
mysql_close();
Echo
"Le blog à bien était effacer";
?>

<a href="adminskypub.php">ici</a>

Je vois pas dou cela vient. :$.


Journalisée
Forums Webou.net - Hébergement gratuit et sans publicités avec PHP/MySQL
« Répondre #4 le: 31 Octobre 2008, 23:43:14 »

 Journalisée
K@cem
Never trust user input
Big boss
*****
Hors ligne Hors ligne

Messages: 2 724



Voir le profil WWW
« Répondre #5 le: 01 Novembre 2008, 10:59:37 »

Remplace le code de ta page modif.php par celui ci :
Code:
<?php
if(!empty($_POST['visibilitelien'])) {
mysql_connect("localhost","root","");
mysql_select_db("rainbow_rainbow");
$visibilitelien=mysql_real_escape_string($_POST['visibilitelien']);

mysql_query("UPDATE skypub SET visibilitelien='".$visibilitelien."' 
WHERE id='"
.intval($_GET['id'])."'");
mysql_close();
}
?>

<a href="adminskypub.php">ici</a>

<p>Utlisateur n°<?php echo $_GET['id']; ?>
<form method="POST" action="modif.php">
<input type="text" name="visibilitelien" />
<input type="submit" value="Enregistrer" />
</form>
</p>
Journalisée

Le support ne se fait pas par MP, merci de le respecter !
Rainbow
Invité
« Répondre #6 le: 02 Novembre 2008, 13:27:35 »

ca ne marche pas :s
Journalisée
K@cem
Never trust user input
Big boss
*****
Hors ligne Hors ligne

Messages: 2 724



Voir le profil WWW
« Répondre #7 le: 02 Novembre 2008, 16:19:10 »

ca ne marche pas :s
Erreur de syntaxe ?
Comportement anormal ?
... ?
Journalisée

Le support ne se fait pas par MP, merci de le respecter !
Rainbow
Invité
« Répondre #8 le: 02 Novembre 2008, 18:31:30 »

C'est bien cela le problème aucunne erreur de syntaxe auccune erreur à proprement dit de codage. Cependant au lieu de modifier ma BDD il retire lavaleur d'origine. En l'occurence Offline. En cherchant un peu je suis arrivé à cela donnant des résultats positif. Mais je me demande ci c'est correcte de le faire:

Code:
<?php
if(!empty($_POST['visibilitelien']))  // Si le fomulaire est remplis j'enregistre sur ma BDD
{
mysql_connect("localhost","root","");
mysql_select_db("rainbow_rainbow");

$visibilitelien=mysql_real_escape_string($_POST['visibilitelien']);
$id=mysql_real_escape_string($_POST['id']);

mysql_query("UPDATE skypub SET visibilitelien='".$visibilitelien."' WHERE id='".$id."'");
mysql_close();

echo"Le lien est $visibilitelien"// Si enregistrer on affiche ce message.
echo '<a href="skypub.php">a</a>';
}

elseif (!empty(
$_GET['id'])) // Si le formulaire n'est pas envoyer je l'affiche
{
?>


<p>Utlisateur n°<?php echo $_GET['id']; ?>
<form method="POST" action="modif.php">
<input type="hidden" name="id" value="<?php echo $_GET['id']?>" />  <!-- Je crée une variable contenant l'idée recupéré par la variable $_GET['id'] -->
<label for="visibilitelien">Visibilité du lien sur Skypub :</label>
<select name="visibilitelien" id="visibilitelien">
<option value="En Ligne">En Ligne</option>
<option value="Hors Ligne">Hors ligne</option>
</select> <!--  Possibilité de modification-->
<input type="submit" value="Enregistrer" />
</form>

<?php
}
else
{
echo
"Aucun blog n'est a modifier";
}
?>


PS: Je suis désolé pou les nombreux post de demades d'aide en espérant ne pas trop déranger. Je tiens quand même à dire que chaque thème de poste ont étaient réfléchie ultérieurement et sont mis en ligne quand dernier recours.
« Dernière édition: 03 Novembre 2008, 00:58:03 par Rainbow » Journalisée
K@cem
Never trust user input
Big boss
*****
Hors ligne Hors ligne

Messages: 2 724



Voir le profil WWW
« Répondre #9 le: 04 Novembre 2008, 00:58:06 »

Oui c'est correcte, j'allais justement te le proposer ^^
Tu l'as essayé ton code ?
Sinon remplace cette ligne :
mysql_query("UPDATE skypub SET visibilitelien='".$visibilitelien."' WHERE id='".$id."'");
Par :
mysql_query("UPDATE skypub SET visibilitelien='".$visibilitelien."' WHERE id='".$id."'") or die(mysql_error());
Comme ça s'il y a une erreur mysql on le saura Clin d'oeil
k@cem
Journalisée

Le support ne se fait pas par MP, merci de le respecter !
Rainbow
Invité
« Répondre #10 le: 04 Novembre 2008, 13:22:16 »

Re bonjour donc voilà les différent objectif pour ce que je voulais faire et qui bien que basique et déjà dure pour mi.

- Créer un formulaire.
-Traitement du formulaire enregistrement en BDD.
-Page de validation.
-Affichage.

A par quelques donnée l'heure, le pays, et la sécurité du formulaire. Toute cette partie sera finie. Cependant j'ai encore quelque problème avec ce code.

Code:
<strong><SCRIPT LANGUAGE = "JavaScript"> Degrade(102,0,102,102,0,255,"-Tu es du 08 Ardenne:") </SCRIPT>
<?php
mysql_connect
("localhost""root""");
mysql_select_db("rainbow_rainbow");
$reponse mysql_query("SELECT lien FROM skypub WHERE provencecantonregion=08 Ardenne' AND visibilitelien='line'");
while (
$donnees mysql_fetch_array($reponse) )
{
?>


<a href="<?php  echo $donnees['lien']; ?>"><?php  echo $donnees['lien']; ?></a> $$$

<?php
}
mysql_close();
?>

<br />   

<strong><SCRIPT LANGUAGE = "JavaScript"> Degrade(102,0,102,102,0,255,"-Tu es du 09 Ariège :") </SCRIPT>
<?php
mysql_connect
("localhost""root""");
mysql_select_db("rainbow_rainbow");
$reponse mysql_query("SELECT lien FROM skypub WHERE provencecantonregion='09 Ariège' AND visibilitelien='line'");
while (
$donnees mysql_fetch_array($reponse) )
{
?>


<a href="<?php  echo $donnees['lien']; ?>"><?php  echo $donnees['lien']; ?></a> $$$

<?php
}
mysql_close();
?>

<br />   
 

Afin de le régler on ma proposer ces solution la:

1. Quand on travaille avec MySQL, on ouvre la connexion à la BDD au début de la page et on la ferme quand on n'a plus besoin de faire de requêtes. Il est possible de faire plusieurs mysql_query avec la même connection.

2. Tu dois lire toute ta table et, à chaque entrée, vérifier si provenancecantonregion actuel est différent de provenancecantonregion précédent (celui de la ligne d'avant quoi). Le cas échéant, c'est qu'on a passé à la région suivante et qu'il faut afficher l'en-tête "Tu es du -xx truc". Tu devras aussi te servir d'un ORDER BY pour afficher les régions dans le bon ordre.

Le p'tit 1 je sais faire; Mais le deux j'ai pas bien compris...

Journalisée
K@cem
Never trust user input
Big boss
*****
Hors ligne Hors ligne

Messages: 2 724



Voir le profil WWW
« Répondre #11 le: 04 Novembre 2008, 15:55:36 »

Salut,
Il faut que tu nous explique le but de ton script ... Sourire
D'après ce que j'ai deviné, tu dois faire une seule requête :
Code:
SELECT lien FROM skypub WHERE (provencecantonregion='09 Ariège' OR provencecantonregion='08 Ardenne') AND visibilitelien='line'

Et après dans ta boucle tu affiche ce que tu veux en fonction de la région (une condition if() else fera l'affaire Clin d'oeil )
++
Journalisée

Le support ne se fait pas par MP, merci de le respecter !
Rainbow
Invité
« Répondre #12 le: 04 Novembre 2008, 16:15:36 »

en fête je veux afficher la liste des departements français comme ce que j'ai fais dans ma  V1: http://rainbow.webou.net/france.html . Cependant pour afficher un blog "ulteriurement validé" admetons dans le departement 01 je dois ecrire tous ce code:

Code:
<?php
mysql_connect
("localhost""root""");
mysql_select_db("rainbow_rainbow");
$reponse mysql_query("SELECT lien FROM skypub WHERE provencecantonregion=08 Ardenne' AND visibilitelien='line'");
while (
$donnees mysql_fetch_array($reponse) )
{
?>


<a href="<?php  echo $donnees['lien']; ?>"><?php  echo $donnees['lien']; ?></a> $$$

<?php
}
mysql_close();
?>

<br />   

<strong><SCRIPT LANGUAGE = "JavaScript"> Degrade(102,0,102,102,0,255,"-Tu es du 09 Ariège :") </SCRIPT>
<?php
mysql_connect
("localhost""root""");
mysql_select_db("rainbow_rainbow");
$reponse mysql_query("SELECT lien FROM skypub WHERE provencecantonregion='09 Ariège' AND visibilitelien='line'");
while (
$donnees mysql_fetch_array($reponse) )
{
?>


<a href="<?php  echo $donnees['lien']; ?>"><?php  echo $donnees['lien']; ?></a> $$$

<?php
}
mysql_close();
?>

<br />   

mais je comprend pas bien ce que l'on veut me dire :s.
Journalisée
Pages: [1]   Haut de page
  Imprimer  
 
Aller à:  

Propulsé par MySQL Propulsé par PHP Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Dilber MC Theme by HarzeM
Page générée en 0.054 secondes avec 22 requêtes.