Menu

Exécuter un lien via un SELECT dans un PHP [Résolu]

mikesunshine59 73 Messages postés lundi 22 janvier 2018Date d'inscription 24 février 2018 Dernière intervention - 1 févr. 2018 à 21:50 - Dernière réponse : yg_be 5835 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 23 juin 2018 Dernière intervention
- 6 févr. 2018 à 21:50
Bonjour,

Je voudrais exécuter un lien qui vient d'un SELECT. Comment fait-on ?

Voici ma requête dans le PHP

Merci d'avance pour votre aide.


<?php
//Données pour la connexion à la base de données
$nom_du_serveur ="***********";
$nom_de_la_base ="***********";
$nom_utilisateur ="***********";
$passe ="***********";

//Connexion à la base de données
mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe");
mysql_select_db("$nom_de_la_base") OR die( "ERREUR de connexion : " . mysql_error () );

//Requête pour exécution du lien
$query = mysql_query("SELECT CONCAT('https://aaaaaaaaaaaaaaa',`Commande`) FROM `openorder`");

mysql_query($query) or die(mysql_error());

//Si il y a une erreur
if (!$query)
{
die ( 'Erreur de requête : ' . mysql_error() );
}
//Si tout va bien
else
{
echo 'Execution = OK';
}
mysql_close();
?>
Afficher la suite 

Votre réponse

17 réponses

jordane45 21438 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 juin 2018 Dernière intervention - 1 févr. 2018 à 23:29
0
Merci
Bonjour,

Que veux tu dire par exécuter ? Tu veux dire ouvrir la page vers laquelle pointe ton lien ??
Dans ce cas.. une simple redirection suffirait
header('location :'.$tonlien);
exit();


Par contre.... Attention, l'extension mysql était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0.
http://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top

À la place, tu peux (<gras DOIS </gras> ) utiliser l'extension MySQLi ou l'extension PDO_MySQL
http://www.commentcamarche.net/faq/44117-connexion-a-une-base-avec-pdo-mysqli

Si tu choisis PDO, pense à activer la gestion des erreurs : http://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs

NB : Pour poster du code sur le forum.. merci d'utiliser la coloration syntaxique (les balises de code).
Explications disponibles ici : http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
mikesunshine59 73 Messages postés lundi 22 janvier 2018Date d'inscription 24 février 2018 Dernière intervention - 4 févr. 2018 à 21:26
C'est un lien externe à mon site.

Le résultat de la requete est un lien externe et c'est ce lien que je souhaite activer en php. Ce lien externe permet de désactiver une option.

Merci d'avance pour ton aide.
jordane45 21438 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 juin 2018 Dernière intervention - 4 févr. 2018 à 21:42
Ben je t'ai donné la réponse...que te manque t'il ?
mikesunshine59 73 Messages postés lundi 22 janvier 2018Date d'inscription 24 février 2018 Dernière intervention > jordane45 21438 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 juin 2018 Dernière intervention - 4 févr. 2018 à 22:17
Merci pour ta patience.

J'ai mis :
//Requête pour exécution du lien
$url= = mysql_query("SELECT CONCAT('https://aaaaaaaaaaaaaaa',`Commande`) FROM `openorder`");
header('location :'.$url);
exit();

Et le lien pointe sur mon site. Alors que le lien est un site externe.

De plus mon lien est le résultat de :
SELECT CONCAT('https://aaaaaaaaaaaaaaa',`Commande`) FROM `openorder`
Bonjour Jordan45

J'ai effectué les modifications que tu as demandé.


<?php
$hostname='***********';
$username='***********';
$password='***********';
$database='***********';

$link = mysqli_connect($hostname,$username,$password,$database);
if (!$link) {
die( 'Erreur de connexion (' . mysqli_connect_error() . ')' );
}
echo ' <br /> Connecté avec succès à ' . mysqli_get_host_info($link) . '<br />' ;

$lien = "'SELECT CONCAT('https://aaaaaaaaaaaaaaa.com',`Commande`) FROM openorder";
header('location :'.$lien);
exit();

mysqli_query ($link,$sql);
?>


Mon lien se dirige vers une adresse interne de mon site (qui n'existe pas) alors que le résultat de mon SELECT est une adresse externe.

Quelles sont tes suggestions de modification dans ce PHP stp ?
Commenter la réponse de jordane45
yg_be 5835 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 23 juin 2018 Dernière intervention - Modifié par yg_be le 4/02/2018 à 21:43
0
Merci
ceci suffit peut-être:
$url= '';  // à remplacer par le résultat du query
file_get_contents($url);
mikesunshine59 73 Messages postés lundi 22 janvier 2018Date d'inscription 24 février 2018 Dernière intervention - 4 févr. 2018 à 22:13
J'ai essayé mais j'ai le message d'erreur ci-dessous :

Warning: file_get_contents() expects parameter 1 to be a valid path, resource given in .....Resource id #4

Voici ce que j'ai mis :
//Requête pour exécution du lien
$url= mysql_query("SELECT CONCAT('https://aaaaaaaaaaaaaaa',`Commande`) FROM `openorder`");
file_get_contents($url);

Qu'en penses-tu ?
yg_be 5835 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 23 juin 2018 Dernière intervention > mikesunshine59 73 Messages postés lundi 22 janvier 2018Date d'inscription 24 février 2018 Dernière intervention - 4 févr. 2018 à 23:03
fais d'abord les changements recommandés par jordane45 en #1.
mikesunshine59 73 Messages postés lundi 22 janvier 2018Date d'inscription 24 février 2018 Dernière intervention - 4 févr. 2018 à 23:08
J’ai répondu à Jordane45 que ça me dirige vers un lien externe.

Voici ce que je lui ai répondu :

Merci pour ta patience.

J'ai mis :
//Requête pour exécution du lien
$url= = mysql_query("SELECT CONCAT('https://aaaaaaaaaaaaaaa',`Commande`) FROM `openorder`");
header('location :'.$url);
exit();

Et le lien pointe sur mon site. Alors que le lien est un site externe.

De plus mon lien est le résultat de :
SELECT CONCAT('https://aaaaaaaaaaaaaaa',`Commande`) FROM `openorder`
yg_be 5835 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 23 juin 2018 Dernière intervention > mikesunshine59 73 Messages postés lundi 22 janvier 2018Date d'inscription 24 février 2018 Dernière intervention - 4 févr. 2018 à 23:12
tu peux (DOIS) utiliser l'extension MySQLi ou l'extension PDO_MySQL
http://www.commentcamarche.net/faq/44117-connexion-a-une-base-avec-pdo-mysqli
jordane45 21438 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 juin 2018 Dernière intervention > mikesunshine59 73 Messages postés lundi 22 janvier 2018Date d'inscription 24 février 2018 Dernière intervention - 5 févr. 2018 à 00:23
Que tu suives mes recomandations concernant l'utilisation obsolète de l'extension mysql (pour rappel A LIRE

Tu dois faire un FETCH de la requête...
pour l'instant... ta variable $url ne contient pas la données que tu penses....
Commenter la réponse de yg_be
mikesunshine59 73 Messages postés lundi 22 janvier 2018Date d'inscription 24 février 2018 Dernière intervention - Modifié par mikesunshine59 le 6/02/2018 à 20:11
0
Merci
Bonjour Jordan45

J'ai effectué les modifications que tu as demandé.


<?php
$hostname='***********';
$username='***********';
$password='***********';
$database='***********';

$link = mysqli_connect($hostname,$username,$password,$database);
if (!$link) {
die( 'Erreur de connexion (' . mysqli_connect_error() . ')' );
}
echo ' <br /> Connecté avec succès à ' . mysqli_get_host_info($link) . '<br />' ;

$lien = "'SELECT CONCAT('https://aaaaaaaaaaaaaaa.com',`Commande`) FROM openorder";
header('location :'.$lien);
exit();

mysqli_query ($link,$lien);
?>


Mon lien se dirige vers une adresse interne de mon site (qui n'existe pas) alors que le résultat de mon SELECT est une adresse externe.

Quelles sont tes suggestions de modification dans ce PHP stp ?

Merci pour ton aide.
jordane45 21438 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 juin 2018 Dernière intervention - 6 févr. 2018 à 20:38
yg_be 5835 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 23 juin 2018 Dernière intervention - 6 févr. 2018 à 20:50
au lieu de:
$lien = "'SELECT CONCAT('https://aaaaaaaaaaaaaaa.com',`Commande`) FROM openorder";
header('location :'.$lien);
exit();

mysqli_query ($link,$lien);

peut-être plutôt:
$sql = "'SELECT CONCAT('https://aaaaaaaaaaaaaaa.com',`Commande`) FROM openorder";
if ($selection = mysqli_query ($link,$sql)) {
    $reponse= mysqli_fetch_row($selection);
    $url=$reponse[0];
    file_get_contents($url);
};
mikesunshine59 73 Messages postés lundi 22 janvier 2018Date d'inscription 24 février 2018 Dernière intervention > yg_be 5835 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 23 juin 2018 Dernière intervention - 6 févr. 2018 à 21:11
Merci pour ton retour, mais il ne se passe rien.


<?php
$hostname='************';
$username='************';
$password='************';
$database='************';

$link = mysqli_connect($hostname,$username,$password,$database);
if (!$link) {
die( 'Erreur de connexion (' . mysqli_connect_error() . ')' );
}
echo ' <br /> Connecté avec succès à ' . mysqli_get_host_info($link) . '<br />' ;

$sql = "SELECT CONCAT('https://aaaaaaaaaaaaaaa.com',`Commande`) FROM openorder";
if ($selection = mysqli_query ($link,$sql)) {
$reponse= mysqli_fetch_row($selection);
$url=$reponse[0];
file_get_contents($url);
};

mysqli_close($link);
?>
yg_be 5835 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 23 juin 2018 Dernière intervention > mikesunshine59 73 Messages postés lundi 22 janvier 2018Date d'inscription 24 février 2018 Dernière intervention - 6 févr. 2018 à 21:50
que devrait-il se passer?
peut-être en remplacant
if ($selection = mysqli_query ($link,$sql)) {
$reponse= mysqli_fetch_row($selection);
$url=$reponse[0];
file_get_contents($url);
};

par
if ($selection = mysqli_query ($link,$sql)) {
$reponse= mysqli_fetch_row($selection);
$url=$reponse[0];
file_get_contents($url);
echo "url = ". $url;
}
else {
   echo "pas d'url, sql = " . $sql;
}
;
mikesunshine59 73 Messages postés lundi 22 janvier 2018Date d'inscription 24 février 2018 Dernière intervention - 6 févr. 2018 à 21:03
Merci pour ta patience jordan45

Voici mon code :

<?php
$con=mysqli_connect("***********","***********","***********","***********");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$sql="SELECT CONCAT('https://aaaaaaaaaaaaaaa.com',`Commande`) FROM openorder";
$result=mysqli_query($con,$sql);

// Exécution de l'adresse
$row=mysqli_fetch_array($result,MYSQLI_ASSOC);
printf("Select a retourné %d lignes.\n", mysqli_num_rows($result));

// Free result set
mysqli_free_result($result);

mysqli_close($con);
?>


Je suis content car cela génère la bonne adresse.

J'ai essayé d'ajouter : file_get_contents($result); mais cela ne fonctionne pas.

Sais-tu ce qu'il faut ajouter pour exécuter le lien stp ?

Encore merci pour ton aide.
Commenter la réponse de mikesunshine59