PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#26 Re : MySQL, PostgreSQL, etc... » Deux requetes, une réponse mais avec des champs différents. » 18-01-2010 13:29:41

Hello,

Essaye comme ça :


     (
        SELECT id,titre,poeme,auteur,datepoeme,valid, 'poesiepeinture' AS provenance
          FROM poesieetpeinture
         WHERE valid=1
      ORDER BY datepoeme DESC
         LIMIT 7
     )
UNION
     (
        SELECT id,titre,poeme,auteur,datedupoeme,valid, 'themedumois' AS provenance
          FROM themedumois
         WHERE valid=1
      ORDER BY datedupoeme DESC
         LIMIT 7
     )
ORDER BY datepoeme DESC
 

Et après tu fais un test sur la colonne 'provenance'

#27 Re : MySQL, PostgreSQL, etc... » Deux requetes, une réponse mais avec des champs différents. » 18-01-2010 13:29:41

Hello,

Je suis pas spécialiste SQL mais est ce que quelque chose comme ça ne ferait pas l'affaire ?


    SELECT pp.id, pp.titre, pt.id, pt.titre
       FROM poesieetpeinture pp, themedumois pt
     WHERE 1=1
ORDER BY pp.datedupoeme, pt.datedupoeme DESC
       LIMIT 1,10
 

/me se demande vraiment si ca va marcher... :\

#29 Re : Forum Général PHP » Preload d'images » 07-01-2010 05:51:42

Hello,

Je pensais en fait à ça :
http://jqueryui.com/demos/dialog/

Ca te permet de faire un affichage style pop-up, qui n'en n'est pas une => tu n'as pas de blocage navigateur.

#30 Re : Forum Général PHP » Preload d'images » 07-01-2010 05:51:42

Hello,

Ok maintenant je vois bien smile

Pour commencer, les grandes images, si elles dépassent le Mo il faut que tu les réduisent en taille pour l'affichage (quitte à proposer un lien pour télécharger l'image d'origine) tu gagneras en fluidité quant à l'utilisation de la galerie.
Ensuite, tu peux demander à ton navigateur de les précharger pour toi.
Pour se faire :
<img src='chemin de l'image' style="display: none;" />
Il me semble que le fait de mettre le tag HTML mais de le mettre en display none te permet de précharger l'image. => A vérifier

Enfin pour la pop-up, je te déconseille le bon vieux windows.open().
Oriente toi plus vers des framework JS qui vont s'occuper pour toi de gérer tous les problèmes Cross Browser et en plus qui vont te permettre de mettre en place des fonctionnalité un peu plus sympas.
Je pense notamment à jQuery qui à un plugin de dialog qui te permet des pseudos pop-up :
http://docs.jquery.com/Main_Page
Mais bon, je te propose ça parce que c'est celui que je connais le mieux smile

Bon courage

#31 Re : Forum Général PHP » Preload d'images » 07-01-2010 05:51:42

Hello,

Je ne suis pas sûr de bien comprendre ton problème.
Tu fais une pop-up dans laquelle tu affiches une image et cette image peut mettre un peu de temps à s'afficher.
Si c'est ça le problème ne peut être résolu en PHP pour la simple et bonne raison que PHP s'exécute coté serveur et non client.
Donc il te faut un langage coté client => Javascript.

Après pour une solution adaptée il me faudrait un peu plus de détails sur ta galerie :
- Combien d'image comporte une page de ta galerie ?
- Est ce que les grandes images liées aux miniatures ont une taille maximale ? si oui laquelle ?

#32 Re : Forum Général PHP » Problème avec accent » 29-12-2009 17:36:13

Hello,

je déboule un peu dans le thread mais bon je me permet de donner mon avis :
Les noms de fichiers avec des accents peuvent poser pleins de problèmes (pas que celui que tu rencontres actuellement...), plutôt que de chercher comment corriger ce problème là tu auras plus vite fais de renommer ton fichier sans accents.
Quitte à ce que tu fasse un petit script qui supprime les caractères accentués de tes noms de fichiers.

#33 Défouloir » Héhé coquin le Ralph303 » 02-01-2010 17:00:31

Maskime
Réponses : 2

Hé je sais pas si vous avez pris le temps d'aller regarder le site que Ralph303 est en train de faire...

Mais bon je vous le donne en mille, il fait un site de rencontre big_smile

#34 Re : Forum Général PHP » Encore un bug trivial avec une variable de session » 30-12-2009 17:10:03

Hello,

Pour la variable de session, je ne dis pas, il y a un certainement un problème dans ton code, mais tu as rendu la chose tellement compliquée que je ne suis pas sûr de voir où pourrais être le problème.

Quoi qu'il en soit ton problème sur comment savoir sur quelle page tu te trouve n'en n'est pas un.
Je te donne les grandes ligne de la mécanique que tu dois appliquer pour faire ce que tu veux :

1. Compter le nombre de lignes totales que tu dois afficher.
2. A partir de ce chiffre et le nombre de lignes que tu veux afficher par page tu obtiens un nombre de pages total
3. Une fois que tu connais les 2 infos précédentes, si on te donne la page que l'on veut afficher tu peux déterminer les enregistrements à afficher.

L'astuce que tu ne vois pas est qu'il faut mettre le calcul des bornes de ton intervalle dans la page qui affiche les enregistrements.
Je te met un morceau de code ici, je te renvois à ma signature pour toutes réclamations big_smile :


<?php
//Ici je définis les valeurs par défaut
$iCurrentPage = 1; // Page par défaut
$iNbLinePerPage = 20; // Nombre de lignes par page

// Ici je récupère le nombre total d'utilisateurs dans ta table
$sCountQuery = "SELECT COUNT(userid) as Total FROM inscription";
$rResult = mysql_query($sCountQuery) or die('Erreur SQL !'.$sCountQuery.'<br>'.mysql_error());
$aRow = mysql_fetch_array($rResult);
$iTotalResult = $aRow['Total'];

if($iTotalResult > 0){
    // Ici je calcule le nombre de pages dont je vais avoir besoin pour afficher tous les utilisateurs
    // en me basant sur le fait que je veux afficher "$iNbLinePerPage" lignes par page
    $iNbPages = ceil($iTotalResult / $iNbLinePerPage); // Attention le ceil() est important parce qu'il te faut un entier or une division
                                                       // peut te donner un float
    // Ici je vérifie que le numéro de la page que je recois en paramètre est valide
    // => Ne jamais faire confiance aux informations provenant du navigateur !!! => GOLDEN RULE !!!
    if( (isset($_GET['page']) === true) && (empty($_GET['page']) === false) ){
        $iBrowserPage = $_GET['page'];
        if( ($iBrowserPage > 0) && ($iBrowserPage < $iNbPages) ){
            $iCurrentPage = $iBrowserPage;
        }
    }
    // Ici je calcule l'enregistrement de départ de la page demandée
    $iStartOffset = $iNbLinePerPage * ($iCurrentPage - 1);

    // Et voici la requête SQL qui te permet de ramener uniquement ce dont tu as besoin dans tes informations.
    $sResultQuery = '';
    $sResultQuery .= 'SELECT userid, jesuis, journaiss, ';
    $sResultQuery .= '       moisnaiss, anneenaiss, ville, ';
    $sResultQuery .= '       pseudo, photo ';
    $sResultQuery .= '  FROM inscription '
    $sResultQuery .= ' WHERE 1 = 1 ';
    $sResultQuery .= ' LIMIT ' . $iStartOffset . ', ' . $iNbLinePerPage;

    $rResult = mysql_query($sResultQuery) or die('Erreur SQL !'.$sResultQuery.'<br>'.mysql_error());
    //Une fois que tu as le résultat tu fais ce que tu veux ;)
}
else{
    echo "Pas d'utilisateur à afficher.";
}
?>
 

Tu dois pouvoir mettre ce bout de code à peu près n'importe où dans ton code car le $_GET est accessible de n'importe où dans ton code (c'est pas pour rien que l'on appelle ça un tableau Super Global wink ) Et pas de SESSION wink

Si tu as des questions, pose les wink

#35 Re : Forum Général PHP » php et DOM » 30-12-2009 09:27:42

Hello,

Il me semble que c'est SimpleXml() que tu devrais utiliser wink

#36 Re : Forum Général PHP » .htaccess » 28-12-2009 17:43:55

Hello,

il ya un moyen de gérer l'authentification HTTP par PHP, il faut que tu te serves des header()
Regarde dans la doc en ligne de PHP il me semble qu'il y a un exemple d'utilisation de header() pour l'authentification HTTP

#37 Re : Forum Général PHP » supprimer un enregistrement dans mySql par php via checkbox » 21-03-2010 09:50:24

Hello,

Essaye de faire un foreach() à la place de ton while() :


foreach($table_array => $iId)
 

Et tu passes $iId à ta requête de suppression.

Bonne chance

#38 Re : Forum Général PHP » Encore un bug trivial avec une variable de session » 30-12-2009 17:10:03

Hello,

Simplement, tu ne t'y prends pas de la bonne manière...

Pour commencer :
Actuellement ta requête te récupère tous les inscrits de ta base de manière systématique. Il y a une fonction MySql qui compte très bien pour toi et elle s'appelle COUNT() :


SELECT COUNT([ici_nom_de_ton_id_dans_ta_table]) AS Total FROM inscription;
 

Avec un mysql_fetch_array() (http://fr2.php.net/manual/en/function.m … -array.php) tu auras facilement ton total.
Note : En plus tu fais un SELECT * ce qui est bouuuuhhh pas beau vilain !

Ensuite :
Visiblement tu calcule les bornes de l'intervalle d'affichage de tes membres. Encore une fois tu peux facilement rapatrier uniquement les lignes qui t'intéresse avec du SQL, c'est la clause LIMIT [enregistrement de départ], [Nombre de résultats à rapatrier]

Mais encore :
Tu as mis en place une pagination, je te recommande de passer en paramètre la page sur laquelle tu veux te rendre et de faire une fonction qui à partir de ce chiffre te permet de calculer tes bornes. (début et fin si nécessaire)

En conclusion :
Tu n'as pas besoin des variable de sessions pour faire ce que tu fais actuellement.
Les variables de sessions ne sont utilisées que lorsque tu ne peux pas faire autrement ou que le paramètre dont tu as besoin est utilisé partout dans le site et qu'il est lourdingue de le passer d'une page à l'autre systématiquement.
Or tu n'es clairement dans aucun de ces cas.

Si tu as des question sur comment faire ce que tu demande proprement, je me tiens à ton entière disposition smile

Bonne chance

#39 Re : Forum Général PHP » modifier ordre affichage photos » 22-01-2010 15:24:29

Hello,

Je suis pas sûr d'avoir tout compris, mais en tout cas je peux te dire que la ligne suivante me semble suspecte :


if ($idphEnCours = $row['idph'])
//Ca serait pas plutôt :
if ($idphEnCours == $row['idph'])
 

Ensuite je te renvois aux commentaires dans mon code :


<?php
$id = $_GET["id"];
 
$requete = "";
$requete .= "    SELECT alb_photos.id, alb_photos.titre_album, alb_photos.soustitre, ";
$requete .= "           photos.idph, photos.idliaison, photos.numero, ";
$requete .= "           photos.lien ";
$requete .= "      FROM alb_photos ";
$requete .= "INNER JOIN photos ON alb_photos.id = photos.idliaison "; // Je change le LEFT pour un INNER comme ça
                                    // tu n'auras que les albums avec des photos
$requete .= "     WHERE id = '$id' "; // Attention ici tu passes dans ta requête une valeur qui vient diectement du navigateur
                    // Je me doute que c'est le cadet de tes soucis pour l'instant mais sache qu'il faut
                    // Systématiquement vérifier les infos provenant du navigateur car l'utilisateur peut les
                    // les avoir modifiées
$result = mysql_query($requete,$link) or exit ('Erreur : '.mysql_error() );
 
$idphEncours = 0;
//Ton formulaire est global à l'album, c'est donc ici qu'il faut que tu ouvres ta balise <form>
echo '<form action="maj_ordre_photos.php"  method="POST">' . "\n";
$bDisplayedTitle = false; // Voir plus bas pourquoi est ce que j'ai créé cette variable
while($row = mysql_fetch_array($result))
{
  /*if( $idphEnCours != $row['idph'] )
  {  
    echo '<div class="centrer">' . "\n";
        echo "\t" . '<h2><u>'.$row['titre_album'].'</h2></u>' . "\n";
        echo "\t" . '<h4><i>'.$row['soustitre'].'</i></h4>' . "\n";
    echo "\t" . '<table><tr>';
  }
  if ($idphEnCours = $row['idph'])
  {
   
    echo '<input type=hidden name="idph" value="'.$row['idph'] .'">' . "\n";
    echo '<td><img border=0 height="50" src="' . $row['lien'] . '"><center>' . "\n";
    echo '<input name="numero" type="text" id="numero" value="'.$row['numero'] .'" size="1" maxlength="3"></center></td>';    
  }
  else
  {
    echo '</tr></table></div>';
  }*/
// Ici je ne suis pas sûr de comprendre ce que tu veux faire, mais je pense que tu veux juste afficher les photos avec
    // un <input type="text"> pour te permettre de mettre le chiffre qui te va indiquer l'ordre d'affichage de la photo
    // donc voilà ce que tu aurais pu faire :
  if($bDisplayedTitle === false){
    $bDisplayedTitle = true;
    echo '<div class="centrer">' . "\n";
        echo "\t" . '<h2><u>'.$row['titre_album'].'</h2></u>' . "\n";
        echo "\t" . '<h4><i>'.$row['soustitre'].'</i></h4>' . "\n";
    echo "\t" . '<table><tr>';
  }
  else{
    echo '<td><img border=0 height="50" src="' . $row['lien'] . '"><center>' . "\n";
    echo '<input name="numero_' . $row['idph'] . '" type="text" id="numero_' . $row['idph'] . '" value="'.$row['numero'] .'" size="1" maxlength="3"></center></td>';
  }
}
echo '<input type="submit" value="envoyer" />';
echo '</form>';
?>
 

Pour ce qui est de la mise à jour de l'ordre :


<?php
foreach($_POST as $sKey => $iNewOrderValue){ // Ici je récuère l'ensemble des clés qui sont dans le $_POST
  if(strpos('numero_', $sKey) !== false){ // Ici je regarde si le champs en cours correspond à un champs
                      // qui sert à changer l'ordre d'affichage
    list($sUseless, $iPhId) = explode('_', $sKey); // Ici je récupère l'id de la photo dans le nom du champ
    $result=mysql_query("UPDATE photos SET numero='$iNewOrderValue' WHERE idph='$iPhId'"); // Ici je fais la mise àa jour de ta BDD
  }
}
?>
 

S'il y a des fonctions que tu ne connais pas je te renvoie à la Doc de php.net, si tu as des questions, pose les wink

Bonne journée

#40 Re : Javascript » Ajax !!!!!!!!!!! » 17-04-2010 10:35:00

Hello,

Tu devrais voir à faire un truc de dragndrop avec une synchro serveur smile
Ca permet a l'utilisateur d'ordonner ces affichages par exemple ^^

#41 Re : Défouloir » Qui utilise NETBEANS IDE ? » 28-12-2009 11:52:24

Hello MK,

Bon je suis un peu à la bourre mais je peux te parler de Netbeans compte tenu que c'est ce que j'utilise au quotidien wink
Y a encore pas si longtemps j'étais sur Eclipse PDT, qui marche très bien, mais il faut bien reconnaitre qu'il a vite fais de mettre ta machine à genoux et pour l'avoir utilisé sur KUbuntu avec un processeur en 64bits, je peux également te dire qu'il apprécie pas trop...
Netbeans en revanche fais preuve de performance (surtout la version 6.8 qui vient de sortir) je trouve qu'il lui manque des petits trucs comme l'import de templates de code (c'est quand même couillon...) du coup pour chaque Workspace, tu es obligé de ré-importer tes templates de code à la mano en allant dans l'éditeur...

Mise à part ça, il reste parfaitement productif et très intuitif, si ton élève est fana d'Eclipse tu peux même lui dire d'utiliser le mappage de touche d'Eclipse (il y a un profil pré-défini)

Donc je recommande fortement

#42 Re : Défouloir » Questions pour nos professionels » 20-11-2009 14:43:06

Hello,

Petits conseils pour un entretien :

1. L'attitude
Un employeur c'est un peu comme une histoire d'amour.
Quand tu arrives devant la nana que tu abordes dans un bar ou un café, ce qu'elle cherche c'est quelqu'un qui est sûr de lui. Tu peux être moche comme un pou, si tu montres que tu es sûr de ce que tu dis, elle t'apporte tout de suite un peu plus d'intérêt.

2. La motivation
Toujours dans l'analogie de l'histoire d'amour.
Quand tu dragues une nana, même si tu es méga sûr de toi et que tu es bien posé dans tes paroles, il est possible que ce que tu lui dit en fait ne l'intéresse pas pour un sou, pire elle peut te trouver chiant comme la mort... Tu peux combler ce défaut en montrant que tu es prêt à faire des efforts pour devenir ce qu'elle cherche, tu modules la tonalité de ta voix pour qu'elle entende les mots importants. Dans le cadre pro ça veut dire qu'il faut que tu montres que tu es prêt à apprendre, que tu VEUX apprendre, que tout ce que cette boîte va vouloir rentrer dans ton crâne va rester graver à jamais et que surtout ils ne vont pas regretter ce temps qu'ils vont investir à te former.

Il ne faut pas que tu perdes de vue que pour l'instant tu es encore étudiant, même si tu connais plein de trucs du fait de ta formation et des stages que tu as pu faire dans différentes entreprises, l'entreprise qui t'engage investit du temps et donc de l'argent pour parfaire ta formation de "professionnel". Il faut ABSOLUMENT que tu leur donnes l'impression que l'investissement que tu es va vite devenir rentable.

J'espère que ces petits conseils te seront utiles dans un prochain entretien smile

#43 Re : Défouloir » Questions pour nos professionels » 20-11-2009 14:43:06

Non c'est pas le test sur google, mais on fait des recherches sur toi sur Google.

C'est quand même mieux si quand on fait des recherches sur toi sur google, tu sors sur des forums techniques, un blog, un site web...
Et détrompe toi on arrive à savoir si c'est vraiment la personne que l'on cherche ^^

Et tu l'as terminé ton DUT ? Parce que le DUT en général c'est un diplome qui est assez apprécié par les entreprises...
Bon en tout cas te décourage pas c'est normal que se soit un peu dur au début smile Une fois que tu auras un peu d'expérience trouver du boulot sera vraiment plus simple. Confiance smile

#44 Défouloir » Quel éditeur ? » 01-04-2011 18:00:15

Maskime
Réponses : 8

Bonjour à tous,

Petit sondage pour savoir quels éditeurs est ce que vous utilisez pour éditer votre PHP.

En ce qui me concerne je tourne actuellement avec NetBeans mais y a encore pas si longtemps j'étais avec Eclipse PDT.

#45 Re : Défouloir » Questions pour nos professionels » 20-11-2009 14:43:06

Hello,

Tout dépends des technologies dans lesquelles tu travailles.
Mais je suis d'accord avec MK et c'est surtout ce que j'ai pu constater dans la plupart des embauches, tu dois passer un test. Les gens se rendent compte que finalement un diplome en informatique n'est pas toujours ce qu'il y a de plus éloquent en matière de compétences.

Cependant un truc aussi qui commence a être pas mal utilisé c'est google. Alors je connais pas ton prénom et ton nom, mais ça peut être utile de faire le test de saisir ton nom et ton prénom dans google et regarde ce qui sort wink

Après il y a aussi les entreprises dans lesquelles tu postules, taille, CA... Il faut que tu détermine lesquelles sont prêtes à prendre des "Juniors" comme on les appellent wink

#46 Re : Défouloir » Pétage de plomb en règle... » 13-11-2009 18:43:29

Non je faisais plutôt référence à sa naïveté sur la gestion de projet ^^

Parce que quand on fait des études le monde professionnel est un monde de bisounours smile Un monde où le cahier des charges a été écris par quelqu'un de compétent, un monde où les choix effectués dépendent de toi et pas du mec qui commencé le projet y a 3 ans, un monde où les gens responsable du système sur lequel tu travail n'ont pas peur de prendre des décisions qui impliquent la refonte d'un système qui marche "bancalement" mais qui marche quand même...

Le passage dans la vie active enlève pas mal de ces désillusions ^^

#47 Re : Défouloir » Pétage de plomb en règle... » 13-11-2009 18:43:29

Haaaaaaaaa smile

Tu as déjà fais des stages en entreprise ?

#48 Re : Recrutement » [CDI - PARIS] Chef de Projest Programmation (H/F) » 13-11-2009 16:50:08

Claire que c'est pas la description d'un poste pour un chef de développement mais plus d'un responsable technique...
Et là le salaire change quand même...

#49 Re : Défouloir » Pétage de plomb en règle... » 13-11-2009 18:43:29

Tiens par curiosité xTG,

Tu fais quoi dans la vie ?

#50 Re : Javascript » Ajax !!!!!!!!!!! » 17-04-2010 10:35:00

yop,

Mais je viens de lire un poste de MK qui dit qu'on trie les lentilles et qu'on classe les enregistrements ^^
Ce qui ne me semble pas complètement faux, parce que le tri veut bien dire que l'on sépare une chose d'une autre et non qu'on l'ordonne ^^

Pied de page des forums

Propulsé par FluxBB