Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/09/2011, 11h26   #1
Membre du Club
 
Avatar de fazpedro
 
Homme
Inscription : août 2009
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2009
Messages : 360
Points : 64
Points : 64
Par défaut Mysql href non vide

Bonjour,
j'ai un petit souci d'affichage pour ma requête, sur la ligne suivante :
Code :
echo '<a href="'.$affiche["site_infos"].'">'.'Informations'.'</a>';
s'il n'y a rien (pas de données dans la colonne site_infos) dans la base, il me met systématiquement l'adresse web de mon site http://monsite.free.fr/ alors que je souhaite qu'il m'affiche " " afin que l'on ne puisse pas cliquer dessus s'il n'existe pas de lien...

Merci d'avance.

Code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
<?php
// *************************************************************************************************
// 							pour Affichage des évènements du jour
// *************************************************************************************************
echo '<h3>'.'A la une'.'</h3>';
echo '<br/>';
echo '<br/>';
echo '<p>';
echo '<b>'.'Retrouvez tous les nouveaux &eacute;v&eacute;nements de ce jour'.'</b>';
echo '<p/>';
echo '<br/>';
// création de la date de départ au format date MySQL  année  mois jour
$date_depart=date('y').'-'.date('n').'-'.date('j');
// création de la date de fin au format date MySQL
$date_fin=date('y').'-'.date('n').'-'.date('j');
//On remet les dates au format français
setlocale (LC_TIME, 'fr_FR.UTF8');
$date_vue_depart = strftime("%A %d %B %Y",strtotime("$date_depart"));
$date_vue_fin = strftime("%A %d %B %Y",strtotime("$date_fin"));
// Affichage de la date de départ et de fin en français
echo 'Aujourd\'hui'.'&nbsp;'.'<b>'.ucwords(strtolower($date_vue_depart)).'&nbsp;'.'&nbsp;'.'</b>';
echo '<br/>';
// connexion à la base
require("configuration.php");
$sql = connect_sql();
 
	// requête pour mise dans la base de la connexion ip du client
	$IPClient= $_SERVER[REMOTE_ADDR] ;
	// on récupère le nombre de connexions du client
	$select_ip = ("SELECT nb_connexions FROM client_ip WHERE adresse_ip='$IPClient';");
	$result_ip = mysql_query($select_ip) or die ('Erreur : '.mysql_error() );
	$affiche_ip = mysql_fetch_array($result_ip);
	$verif_ip = $affiche_ip["nb_connexions"];
	//On vérifie que le nombre de connexions est de zéro
	if ($verif_ip == 0) { 	 // pas de connexions on créé l'adresse IP
		$nb_init = "1";
		$sql_ip = "INSERT INTO client_ip(adresse_ip, nb_connexions, date) VALUES('$IPClient','$nb_init','$date_depart')";
		// on insère les informations du formulaire dans la table
		mysql_query($sql_ip) or die('Erreur SQL !'.$sql_ip.'<br>'.mysql_error());
		}
	else	// l'adresse est déjà connue on met à jour
		{
		// on ajoute 1 au choix qui a été fait
		mysql_query("UPDATE client_ip SET nb_connexions=nb_connexions+1 WHERE adresse_ip='$IPClient';");
		}
 
// on écrit la requête pour les news
mysql_query("SET NAMES utf8");
$select2 = "SELECT * FROM evenement WHERE date_ev BETWEEN '$date_depart' AND '$date_fin' ORDER BY date_ev ASC LIMIT 20";
$result = mysql_query($select2) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
//On vérifie que la table contient quelque chose
if
(mysql_num_rows($result) == 0)
{
echo '<p>'.'<b>'.'Aucun &eacute;v&eacute;nement ! '.'</b>'.'</p>'.'<br>'.'</br>';
echo '<a href="#haut">'.'Haut de page'.'</a>';
}
//Si il y a des entrées	  
else
{
	//On initialise le type précédent à blanc pour affichage du type une seule fois
   $PrecedentType="";
 
	//On fait une boucle pour sortir toutes les entrées
	while($affiche = mysql_fetch_array($result))
	{
	//On remet la date au format français
	setlocale (LC_TIME, 'fr_FR.UTF8');
	$date_affiche = $affiche["date_ev"];
	$date_vue = strftime("%A %d %B %Y",strtotime("$date_affiche"));
	//On affiche les entrées du jour
	echo '<br/>';
 
	//On affiche une seule fois le type
	if ($affiche["type_evenement"] <> $PrecedentType)
		{
			echo '<span style="color:#8E236B;">';
			echo '<b>'.$affiche["type_evenement"]."   ".'</b>';
			echo '</span>';
		}
 
	$PrecedentType=$affiche["type_evenement"];
 
	echo '<br/>';
	echo "     ".$affiche["type_etab"]."   ";
	echo '<b>'."     ".$date_vue."   ".'</b>';
	echo "     ".$affiche["secteur"]."   ";
	echo "Début à : ".$affiche["heure"]."   ";
	echo "  Tarif : ".$affiche["tarif"]."   ";
	echo " ".$affiche["montant"]."   ";
	echo " où ? ".$affiche["lieu"]."   ";echo '<br />';
	echo '<br/>';
	echo '<div class="autre">';
	echo '<span style="color:#8E236B;">';
	echo $affiche["nom"];
	echo '</span>';
	echo '<br/>';
	echo '<div class="cache">';
	echo $affiche["description"];
	echo '<br/>';
	echo '<a href="'.$affiche["site_infos"].'">'.'Informations'.'</a>';
	echo '<br/>';
	echo " mis en ligne par  ".$affiche["pseudo_ev"]."   ";
	echo '</div>';
	echo '</div>';
	echo '<br />';
	//On ferme la boucle while
	}
	//on ferme le else
	echo '<a href="#haut">'.'Haut de page'.'</a>';
}
// *************************************************************************************************
// 							pour affichage des données de la semaine en cours
// *************************************************************************************************
echo '<br/>';
echo '<h3>'.'Cette semaine'.'</h3>';
echo '<br/>';
echo '<br/>';
echo '<p>';
echo '<b>'.'Retrouvez tous les nouveaux événements des 7 prochains jours'.'</b>';
echo '<br/>';
echo '<p />';
// création de la date de départ au format date MySQL  année  mois jour
$date_depart3=date('y').'-'.date('n').'-'.date('j');
$date_depart2 = date('Y-m-d', strtotime($date_depart3.' +1 days'));
// création de la date de fin au format date MySQL
$date_fin2 = date('Y-m-d', strtotime($date_depart2.' +7 days'));
//On remet les dates au format français
setlocale (LC_TIME, 'fr_FR.UTF8');
$date_vue_depart2 = strftime("%A %d %B %Y",strtotime("$date_depart2"));
$date_vue_fin2 = strftime("%A %d %B %Y",strtotime("$date_fin2"));
// Affichage de la date de départ 2 et de fin 2 en français
echo 'Du '.'<b>'.ucwords(strtolower($date_vue_depart2)).'&nbsp;'.'&nbsp;'.'</b>';
echo 'Au '.'<b>'.ucwords(strtolower($date_vue_fin2)).'&nbsp;'.'&nbsp;'.'</b>';
echo '<p />';
// on écrit la deuxième requête
$select3 = "SELECT * FROM evenement WHERE date_ev BETWEEN '$date_depart2' AND '$date_fin2' ORDER BY date_ev ASC LIMIT 20";
$result2 = mysql_query($select3) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result2);
//On vérifie que la table contient quelque chose
if
(mysql_num_rows($result2) == 0)
{
echo '<p>'.'<b>'.'Aucun &eacute;v&eacute;nement ! '.'</b>'.'</p>'.'<br>'.'</br>';
}
//Si il y a des entrées	  
else
{
	//On fait une boucle pour sortir toutes les entrées de la semaine
	echo '<p />';
 
	//On initialise le type précédent à blanc pour affichage du type une seule fois
	$PrecedentType2="";
 
	while($affiche2 = mysql_fetch_array($result2))
	{
	//On remet la date au format français
	setlocale (LC_TIME, 'fr_FR.UTF8');
	$date_affiche2 = $affiche2["date_ev"];
	$date_vue2 = strftime("%A %d %B %Y",strtotime("$date_affiche2"));
	//On affiche les entrées de la semaine
	echo '<br />';
 
	//On affiche une seule fois le type
	if ($affiche2["type_evenement"] <> $PrecedentType2)
		{
			echo '<span style="color:#8E236B;">';
			echo '<b>'.$affiche2["type_evenement"]."   ".'</b>';
			echo '</span>';
		}
 
	$PrecedentType2=$affiche2["type_evenement"];
 
	echo '<br/>';
	echo "     ".$affiche2["type_etab"]."   ";
	echo '<b>'."     ".$date_vue2."   ".'</b>';
	echo "     ".$affiche2["secteur"]."   ";
	echo "Début à : ".$affiche2["heure"]."   ";
	echo "  Tarif : ".$affiche2["tarif"]."   ";
	echo "  ".$affiche2["montant"]."   ";
	echo " où ? ".$affiche2["lieu"]."   ";
	echo '<br/>';
	echo '<div class="autre">';
	echo '<span style="color:#8E236B;">';
	echo $affiche2["nom"];
	echo '</span>';
	echo '<br/>';
	echo '<div class="cache">';
	echo $affiche2["description"];
	echo '<br/>';
	echo '<a href="'.$affiche2["site_infos"].'">'.'Informations'.'</a>';
	echo '<br/>';
	echo " mis en ligne par  ".$affiche2["pseudo_ev"]."   ";
	echo '</div>';
	echo '</div>';
	echo '<br/>';
	//On ferme la boucle while
	}
	//on ferme le else
}
// Fermeture de la connexion à la base de données
mysql_close();		
?>
fazpedro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2011, 11h38   #2
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
Avec un test sur la donnée tu devrais pouvoir t'en sortir.

Code :
1
2
3
4
5
6
7
8
if(empty($_POST['data']))
{
$url ='#';
}
else
{
$url = $_POST['data'];
}
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2011, 12h02   #3
Membre chevronné
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 399
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 399
Points : 662
Points : 662
Citation:
Envoyé par fazpedro Voir le message
Bonjour,
s'il n'y a rien (pas de données dans la colonne site_infos) dans la base, il me met systématiquement l'adresse web de mon site http://monsite.free.fr/ alors que je souhaite qu'il m'affiche " " afin que l'on ne puisse pas cliquer dessus s'il n'existe pas de lien...
C'est la réaction normale de certains navigateurs quand le href est vide.
On pourrait passer par un href rempli avec un # mais ce n'est sémantiquement pas correct. Dans ce cas, pourquoi mettre une balise <a> si, finalement, il n'y a pas de lien !?

Code :
echo  !empty($affiche["site_infos"]) ? '<a href="'.$affiche["site_infos"].'">Informations</a>' : '-';
Par ailleurs, quelques remarques qui n'ont rien à voir avec la question :
* Les fonctions mysql_* sont obsolètes depuis 2004, merci de passer à la vitesse supérieure avec mysqli_* ou la classe PDO.
* il est inutile de placer 50 fois setlocale (LC_TIME, 'fr_FR.UTF8');
* Vous arrivez à vous y retrouver avec tous ces echo ? moi non.
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery.
Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels.
Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc...
Shikiryu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2011, 13h24   #4
Membre chevronné
 
Homme Taoufiq Ben
Développeur Web
Inscription : mai 2009
Messages : 465
Détails du profil
Informations personnelles :
Nom : Homme Taoufiq Ben
Âge : 25
Localisation : Maroc

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2009
Messages : 465
Points : 651
Points : 651
Code :
echo '<a href="'.((!empty($affiche["site_infos"]))?$affiche["site_infos"] : " ").'">' . Informations . '</a>';
m4riachi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2011, 13h48   #5
Membre du Club
 
Avatar de fazpedro
 
Homme
Inscription : août 2009
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2009
Messages : 360
Points : 64
Points : 64
Merci Shikiryu

le code fonctionne bien
Code :
echo  !empty($affiche["site_infos"]) ? '<a href="'.$affiche["site_infos"].'">Informations</a>' : '-';
pour répondre aux interrogations :
* Les fonctions mysql_* sont obsolètes depuis 2004, merci de passer à la vitesse supérieure avec mysqli_* ou la classe PDO.
=> mysqli n'est pas compatible avec Free

* il est inutile de placer 50 fois setlocale (LC_TIME, 'fr_FR.UTF8');
=> OK, j'ai laissé le premier et retiré les autres, inutiles...

* Vous arrivez à vous y retrouver avec tous ces echo ? moi non.
=> Oui, ça va.. pourquoi il y a un autre moyen d'affichage en PHP/Mysql ?

Merci.
fazpedro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2011, 14h00   #6
Membre chevronné
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 399
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 399
Points : 662
Points : 662
Citation:
Envoyé par fazpedro Voir le message
=> mysqli n'est pas compatible avec Free
=> Oui, ça va.. pourquoi il y a un autre moyen d'affichage en PHP/Mysql ?
Je ne sais pas pour mysqli (mais je pense que oui), mais PDO est disponible si vous activez PHP5 avec
Citation:
php 1
dans un fichier .htaccess à la racine de votre site.

Rien ne vous empêche, parfois, de fermer votre balise php pour y placer du HTML.

Exemple :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
// *************************************************************************************************
// 							pour Affichage des évènements du jour
// *************************************************************************************************
echo '<h3>'.'A la une'.'</h3>';
echo '<br/>';
echo '<br/>';
echo '<p>';
echo '<b>'.'Retrouvez tous les nouveaux &eacute;v&eacute;nements de ce jour'.'</b>';
echo '<p/>';
echo '<br/>';
// création de la date de départ au format date MySQL  année  mois jour
$date_depart=date('y').'-'.date('n').'-'.date('j');
Deviendrait

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
// *************************************************************************************************
// 							pour Affichage des évènements du jour
// *************************************************************************************************
?>
<h3>A la une</h3>
<br/>
<br/>
<p>
<b>Retrouvez tous les nouveaux &eacute;v&eacute;nements de ce jour</b>
<p/>
<br/>
<?php
// création de la date de départ au format date MySQL  année  mois jour
$date_depart=date('y').'-'.date('n').'-'.date('j');
Par ailleurs, les <br/>, ici, pourraient être gérés via CSS sur h3 (margin-bottom) et la balise <b> n'a aucune valeur sémantique. Soit c'est du pur style graphique et alors il faut jouer sur font-weight en CSS, soit c'est sémantique, et alors utiliser <strong>
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery.
Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels.
Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc...
Shikiryu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2011, 15h42   #7
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
Code :
1
2
3
$date_depart=date('y').'-'.date('n').'-'.date('j');
//===
$date_depart=date('y-n-j');
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h52.


 
 
 
 
Partenaires

Hébergement Web