Bonnes ou mauvaises conditions?

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

02 août 2005, 14:51

édition : j'ai dit une bêtise
montre plus de code, il n'y a pas d'erreur dans le code de raptor (sauf les .. mais bon)

parse error => vérifier ce genre de choses (parenthèses, guillemets, point-virgule...etc)

un coup d'oeil dans la doc : la liste des fonctions MySQL de PHP
tu verras il y en a plein et c'est bien pratique

Eléphant du PHP | 179 Messages

02 août 2005, 15:30

Bon je n'arrive pas à détecter si c'est le code que j'ai mis en plein milieu ou pas qui brouille le tout.
<center><table class="tableau">
    <table rules="cols" border=0 cellspacing=0 cellpadding=5>
    
    <!-- titres-->
    
    <tr bgcolor="#ffcc00">
    <td><b>Produit</b></td>
    <td><b>Disciplines des bases</b></td>
    </tr>

<?php
// ici on récupère la valeur sélectionné dans le formulaire précédent
$DisciplinesBases = $_POST['DisciplinesBases'];

	$lien = mysql_connect("xx","xx","xx");
	mysql_select_db("xx", $lien);

// requête de sélection des produits qui correspondent au paramètre "discipline"
	$requete="SELECT NomProduit, DisciplinesBases FROM produits WHERE DisciplinesBases= '".$DisciplinesBases."'";
	$result=mysql_query($requete);

// tant qu'il y a des produits à afficher, on les affiche
if (mysql_num_rows($result)) {
	while ($val=mysql_fetch_array($result))
		{
?>

    
    <tr bgcolor="#ffffe0">    
    
    <td><a href="aff_discibases2.php"><? print ($val["NomProduit"]);?></a> </td>
    <td> <? print ($val["DisciplinesBases"]);?> </td>
    </tr>
 
 <?
$i = 0;
while ($data=mysql_fetch_assoc($result))
{

if($i%2 == 0)
{
$couleur = "#ffcc00";
}
else
{
$couleur = "#ffffe0";
}
echo "<tr>";
echo "<td bgcolor= '$couleur'>"; ?>

<a href="aff_specialites2.php"> <? echo $data['NomProduit']; ?> </a>

<? 
echo "</td>";
echo "<td bgcolor=\"".$couleur."\">".$data['DisciplinesBases']."</td>";
echo "</tr>";
$i++;
}
?>		
<?
} 
else 
	{
	echo "Pas de résultat";
	}
}
}
mysql_close($lien);
?>

</table></center>
PS: Merci pour la doc, je ne connaissais pas ces pages.

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

02 août 2005, 15:37

voici le code corrigé :
<center>
<table class="tableau">
    <table rules="cols" border=0 cellspacing=0 cellpadding=5>    
    <!-- titres-->
    	<tr bgcolor="#ffcc00">
    		<td><b>Produit</b></td>
    		<td><b>Disciplines des bases</b></td>
    	</tr>
		<?php
		// ici on récupère la valeur sélectionné dans le formulaire précédent
		$DisciplinesBases = $_POST['DisciplinesBases'];
		
	    $lien = mysql_connect("xx","xx","xx");
	    mysql_select_db("xx", $lien);
		
		// requête de sélection des produits qui correspondent au paramètre "discipline"
	    $requete="SELECT NomProduit, DisciplinesBases FROM produits WHERE DisciplinesBases= '".$DisciplinesBases."'";
	    $result=mysql_query($requete);
		
		// tant qu'il y a des produits à afficher, on les affiche
		if (mysql_num_rows($result)) {
		    while ($val=mysql_fetch_array($result))
		        {
		?>
				    <tr bgcolor="#ffffe0">    
					    <td><a href="aff_discibases2.php"><? print ($val["NomProduit"]);?></a> </td>
					    <td> <? print ($val["DisciplinesBases"]);?> </td>
				    </tr>
					<?
					$i = 0;
					while ($data=mysql_fetch_assoc($result))
					{				
						if($i%2 == 0)
						{
							$couleur = "#ffcc00";
						}
						else
						{
							$couleur = "#ffffe0";
						}
						echo "<tr>";
						echo "<td bgcolor= '$couleur'>"; ?>
						
						<a href="aff_specialites2.php"> <? echo $data['NomProduit']; 
					?> 
					</a>
					<?
						echo "</td>";
						echo "<td bgcolor=\"".$couleur."\">".$data['DisciplinesBases']."</td>";
						echo "</tr>";
						$i++;
					}
				}
			}
		else
		    {
		    echo "Pas de résultat";
		    }
mysql_close($lien);
?>

</table></center>

les parenthèses étaient mal fermés à la fin (il y en avait une en trop je crois) ce qui fait que le else correspondait au while

pour s'y retrouver, indente ton code
indenter : décaler le code dès qu'on ouvre une condition (while, if...etc)
tu peux le faire aussi avec le html, quand tu ouvres une nouvelles ligne de tableau décale les cellules contenues

et remplace tes balises PHP ouvrantes <? par <?php
tu auras moins de problème en cas de changement de serveur, et puis ça identifie le langage tout de suite ;)

et maintenant que tu connais le chemin de la doc, pense à aller voir dedans dès que tu as un problème

Eléphant du PHP | 179 Messages

02 août 2005, 15:56

Tout ça parce que j'ai commencé au bloc notes :lol: Promis, désormais j'indenterai.

Ca fonctionne. Tout simplement.
Merci pour votre aide à tous les deux.

Ah, pour la documentation, est-ce que vous connaissez un site où je peux trouver un moteur de recherche qui fait une recherche simple en texte intégral dans une base myadmin (varchar/text) ?


Eventuellement il utiliserait la fonction (MATCH). J'avoue m'être penchée sur la question mais ne pas avoir compris grand' chose. :oops:

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

02 août 2005, 16:07

Tout ça parce que j'ai commencé au bloc notes :lol:
ça c'est sûr que c'est pas le mieux :)
Ah, pour la documentation, est-ce que vous connaissez un site où je peux trouver un moteur de recherche qui fait une recherche simple en texte intégral dans une base myadmin (varchar/text) ?
non, désolé
Eventuellement il utiliserait la fonction (MATCH). J'avoue m'être penchée sur la question mais ne pas avoir compris grand' chose. :oops:
c'est effectivement un peu obscur au début, mais en fait c'est hyper simple

donc si tu veux faire un petit moteur de recherche, tu peux essayer de développer toi-même, et ouvrir un nouveau post sur cette méthode
en expliquant ce que tu as fais, et on te donnera des explications

mais bon c'est simple
1 - on crée un index sur une ou plusieurs colonnes exemple : sur la colonne 'titre' de la table "articles"
2 - n chercher sur cette ou ces colonnes

Code : Tout sélectionner

SELECT id_article, titre, contenu FROM articles WHERE MATCH (titre) AGAINST ('mot_cherché');
et ça renvoie les lignes triés par ordre de pertinence
un autre site de doc sympa : http://dev.mysql.com/doc/mysql/fr/fulltext-search.html

mais bon : forum "Base de données" pour continuer ;)

et n'oublie de marquer ce sujet en [Résolu] ;)

Eléphant du PHP | 179 Messages

02 août 2005, 16:09

D'accord, je me mets en résolu.
Je crois que je risque de faire souvent un tour sur le forum dans les jours à venir (j'ai gardé le plus dur pour la fin, j'ai l'impression).

Mammouth du PHP | 543 Messages

02 août 2005, 16:16

ça c'est sûr que c'est pas le mieux :)
Je me sers que de ca :oops:

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

02 août 2005, 16:19

whaou respect :lol:

t'as pas mal aux yeux à la fin de la journée ?

sans aller jusqu'à ce payer/s'installer un gros IDE, il y a des éditeurs de code un peu mieux

la coloration syntaxique ça change la vie ;)

y'en a quelques-un de listés ici : http://www.phpfrance.com/forums/voir_su ... hpedit.php
ou ici : http://www.phpfrance.com/forums/voir_su ... hpedit.php

Mammouth du PHP | 543 Messages

02 août 2005, 16:30

Ouais mais j'arrive pas a m'y faire lol
Le truc qui me manque c'est les numero de ligne, et les historiques pour annuler plusieurs fois lol

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

02 août 2005, 16:33

Ouais mais j'arrive pas a m'y faire lol
Le truc qui me manque c'est les numero de ligne, et les historiques pour annuler plusieurs fois lol
ah oui j'avais pas pensé à ça je sais pas comment tu fais

t'arrives pas à t'y faire ?! moi j'utilise Texpad, franchement c'est le top

je vois pas ce qui est gênant c'est un bloc-note avec que des trucs mieux :lol:

Mammouth du PHP | 543 Messages

02 août 2005, 16:34

Faudrai que je retente l'expérience ^^
Mais c'est une épreuve difficile pour moi :lol:

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

02 août 2005, 16:36

Mais c'est une épreuve difficile pour moi :lol:
à mon avis ça passera vite ;)
t'as tout à gagner à changer, faut juste en trouver un qui te convient

Mammouth du PHP | 543 Messages

02 août 2005, 16:39

En fait il me faudrait juste :

- Coloration syntaxique,
- Onglets,
- Numero de ligne
- Plusieurs annulations possible
- Possibilité de couper virtuellement la ligne apres X caractères, pour pas avoir l'ascenceur du bas
- Possibilité de rechercher et remplacer dans plusieurs fichiers / dossiers.

Et c'est tout.
J'aime pas avoir des barres de menu inutiles, genre des trucs pour ajouter des balises -_-
Le gars qui me trouve un soft vesant uniquement ca, je lui bravo :)
Ca pourrait ptetre me faire lacher le notepad ^^

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

02 août 2005, 16:44

Pour toutes tes requêtes sauf la dernière, la plupart le font
tu n'es pas obligé d'afficher toutes les barres d'outils, tu peux customiser

ce qui me vient c'est TextPad et UltradEdit (je préfère le premier)
mais dans les liens que je t'ai filé il y en a surement des complétements gratuits qui devraient te convenir ;)
ex : dans Textpad, tu peux stocker tes petits bouts de codes, mais si tu ne vexu pas tu n'affiches pas le panneau et basta

pour le rechercher/remplacer dans des fichiers sans les ouvrir, je crois qu'UltraEdit est un des seuls à le faire, en tout cas textPad ne le fais pas il me semble

mais je ne pense pas que ce soit une fonctionnalité utilisée si fréquemment que ça si ? :)

Mammouth du PHP | 543 Messages

02 août 2005, 16:49

Ca me servirai bien quand je change un nom de classe ou truc du style :)

ultraedit j'avais testé, mais plus long a ouvrir que notepad lol

Sinon j'aimais bien PSPad, je l'ai testé un temps, mais ya beaucoup de truc qui me genent et qui me sont inutile, et y a un bug qui arrive parfois quand on coupe virtuellement la ligne apres X caractères. Des fois il explose tout le code. Ca m'est arrivé de faire un ctrl+s ctrl+f4 sans voir qu'il a tout explosé, j'ai eu l'air con -_-

un truc qui me gene aussi avec PSPAD, c'est qu'il fait parfois des "retouches" aux chaines de caractères, meme si on lui demande de pas faire d'autodetection du code de la page. Du coup il remplace les caractères spéciaux par un gros n'importe quoi :)