(php) honte sur moi et mort au "" !!!!
Résolu
simbadzemarin
Messages postés
31
Date d'inscription
Statut
Membre
Dernière intervention
-
simbadzemarin Messages postés 31 Date d'inscription Statut Membre Dernière intervention -
simbadzemarin Messages postés 31 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- (php) honte sur moi et mort au "" !!!!
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Airbag takata mort - Guide
- Retour a la ligne php ✓ - Forum PHP
- Alert php ✓ - Forum PHP
13 réponses
function f_liste($table, $champs, $order, $where)
{
// information pour la connection à le DB
$host = 'XXXXXXXXXX';
$user = 'XXXXXXXXXXX';
$pass = 'XXXXXXXXX';
$db = XXXXXXXXXXXX';
// connection à la DB
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());
// la requete sql
$select = 'SELECT '.$champs.' FROM '.$table.' '.$where.' ORDER BY '.$order;
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
//il faut fermer la base close
return ($result);
}
Mais ça ne change pas grand chose... Elle elle fonctionne puisqu'initialement je me servais d'elle directement... L'important est qu'elle renvoie $result qui contient la reponse a la requete selection.
Dans l'attente de reponse, je commence a opter pour la solution truffe finie...
{
// information pour la connection à le DB
$host = 'XXXXXXXXXX';
$user = 'XXXXXXXXXXX';
$pass = 'XXXXXXXXX';
$db = XXXXXXXXXXXX';
// connection à la DB
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());
// la requete sql
$select = 'SELECT '.$champs.' FROM '.$table.' '.$where.' ORDER BY '.$order;
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
//il faut fermer la base close
return ($result);
}
Mais ça ne change pas grand chose... Elle elle fonctionne puisqu'initialement je me servais d'elle directement... L'important est qu'elle renvoie $result qui contient la reponse a la requete selection.
Dans l'attente de reponse, je commence a opter pour la solution truffe finie...
Sans vouloir être désagréable, il y a au moins un problème avec la requête SQL:
SELECT Livre_num FROM Livres WHERE$row['Livre_num'] ORDER BY Livre_titre
ne donnera pas ce que je pense que tu veux obtenir.
(Fais un echo $select; avant ton $result = ... , c'est ce qui sera affiché )
Et pour pouvoir continuer à t'aider il va falloir décrire ce qu'est censée faire cette fonction f_liste et ce que tu comptais faire avec ce $row['Livre_num'] qui n'a rien à faire dans une requête SQL ...
SELECT Livre_num FROM Livres WHERE$row['Livre_num'] ORDER BY Livre_titre
ne donnera pas ce que je pense que tu veux obtenir.
(Fais un echo $select; avant ton $result = ... , c'est ce qui sera affiché )
Et pour pouvoir continuer à t'aider il va falloir décrire ce qu'est censée faire cette fonction f_liste et ce que tu comptais faire avec ce $row['Livre_num'] qui n'a rien à faire dans une requête SQL ...
Effectivement ce que tu decris ne donnerais pas grand chose, mais ce n'est pas ce que je fais... Je ne vous jette pas la pierre pierre (... sans commentaire...)... Le problème est que c'est pas tres lisible. Je me reexplique donc avec plaisir et j'esperes qu'on pourra ainsi se depatouiller !
j'appelle ma fonction f_affiche come suit :
f_recherche("Livres", "Livre_num, Livre_titre", "Livre_titre", "Titre", '$row[\'Livre_num\']')
celle ci etant definie comme suit :
function f_recherche($table, $champs, $order, $label, $afficher, $where)
donc
$table = Livres
$champs = "Livre_num, Livre_titre"
$order="Livre_titre"
$label="Titre"
$affiche=$row['Livre_num'] (avec ou sans "" qui l'entoure la est le dilem...)
$where= rien...
$where ne me servant qu'occasionellement, je l'ai mis a la fin pour pouvoir le laisser vide.
L'idée, c'est de pouvoir afficher dans mon select les valeurs retourner dans la boucle while :
echo ('<select name="nom" size=1>');
while($row = mysql_fetch_array($result)) {
echo '<option value="'.$label.'1">'.$afficher.'</option>';
}
echo ('</select> ');
ce qui, je l'esperais, serais equivalent à :
<?php
while($row = mysql_fetch_array($result)) {
//form select pour liste deroulante
echo ('<option value=\"Auteur1\">'.$row['Livre_num']);
}
?>
Est ce plus clair ?
Et tu ne m'es pas desagrable. C'est dit. Merci ! :D
j'appelle ma fonction f_affiche come suit :
f_recherche("Livres", "Livre_num, Livre_titre", "Livre_titre", "Titre", '$row[\'Livre_num\']')
celle ci etant definie comme suit :
function f_recherche($table, $champs, $order, $label, $afficher, $where)
donc
$table = Livres
$champs = "Livre_num, Livre_titre"
$order="Livre_titre"
$label="Titre"
$affiche=$row['Livre_num'] (avec ou sans "" qui l'entoure la est le dilem...)
$where= rien...
$where ne me servant qu'occasionellement, je l'ai mis a la fin pour pouvoir le laisser vide.
L'idée, c'est de pouvoir afficher dans mon select les valeurs retourner dans la boucle while :
echo ('<select name="nom" size=1>');
while($row = mysql_fetch_array($result)) {
echo '<option value="'.$label.'1">'.$afficher.'</option>';
}
echo ('</select> ');
ce qui, je l'esperais, serais equivalent à :
<?php
while($row = mysql_fetch_array($result)) {
//form select pour liste deroulante
echo ('<option value=\"Auteur1\">'.$row['Livre_num']);
}
?>
Est ce plus clair ?
Et tu ne m'es pas desagrable. C'est dit. Merci ! :D
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ici :
j'appelle ma fonction f_affiche come suit
vous aurez lu :
j'appelle ma fonction f_recherche come suit :
j'appelle ma fonction f_affiche come suit
vous aurez lu :
j'appelle ma fonction f_recherche come suit :
function f_recherche($table, $champs, $order, $label, $afficher, $where)
devient
function f_recherche($table, $champs, $order, $label, $afficher, $where='')
f_recherche("Livres", "Livre_num, Livre_titre", "Livre_titre", "Titre", '$row[\'Livre_num\']')
devient
f_recherche("Livres", "Livre_num, Livre_titre", "Livre_titre", "Titre", 'Livre_num')
echo '<option value="'.$label.'1">'.$afficher.'</option>';
devient
echo '<option value="'.$label.'1">'.$row[$afficher].'</option>';
devient
function f_recherche($table, $champs, $order, $label, $afficher, $where='')
f_recherche("Livres", "Livre_num, Livre_titre", "Livre_titre", "Titre", '$row[\'Livre_num\']')
devient
f_recherche("Livres", "Livre_num, Livre_titre", "Livre_titre", "Titre", 'Livre_num')
echo '<option value="'.$label.'1">'.$afficher.'</option>';
devient
echo '<option value="'.$label.'1">'.$row[$afficher].'</option>';
...mmmm.... non.
Pourquoi.
Parce que 1 - le $where laisse tomber, il faudrait que je te montre d'autre bout du code, la n'est pas le probleme.
2- ensuite, enlever le "$row..." de l'appel pour le mettre dans la fonction est une fausse solution : ça marche si je ne veux afficher qu'1 champ dans mon <select>. Mais le but de ma fonction, serais de pouvoir faire un appel du genre :
f_recherche("Livres", "Livre_num, Livre_titre", "Livre_titre", "Titre", '$row[\'Livre_num\'].$row['AUTRECHOSE'].$row['ETUNAUTRE']') puis de refaire un autre appel avec
f_recherche("Livres", "Livre_num, Livre_titre", "Livre_titre", "Titre", '$row[\'Livre_num\'].$row['AUTRECHOSE'])...
En gros faire eune fonction assez generale pour afficher 1, 2, 3 ... autant que je veux champs issus de ma requete.
Bon mais tu sais quoi ? On dors dessus, on y pense, on voit ça demain. De toute façon ch'uis pas pressé !
Mais merci qd même de t'etre penché dessus, c'etait fort urbain.
Ciao
Pourquoi.
Parce que 1 - le $where laisse tomber, il faudrait que je te montre d'autre bout du code, la n'est pas le probleme.
2- ensuite, enlever le "$row..." de l'appel pour le mettre dans la fonction est une fausse solution : ça marche si je ne veux afficher qu'1 champ dans mon <select>. Mais le but de ma fonction, serais de pouvoir faire un appel du genre :
f_recherche("Livres", "Livre_num, Livre_titre", "Livre_titre", "Titre", '$row[\'Livre_num\'].$row['AUTRECHOSE'].$row['ETUNAUTRE']') puis de refaire un autre appel avec
f_recherche("Livres", "Livre_num, Livre_titre", "Livre_titre", "Titre", '$row[\'Livre_num\'].$row['AUTRECHOSE'])...
En gros faire eune fonction assez generale pour afficher 1, 2, 3 ... autant que je veux champs issus de ma requete.
Bon mais tu sais quoi ? On dors dessus, on y pense, on voit ça demain. De toute façon ch'uis pas pressé !
Mais merci qd même de t'etre penché dessus, c'etait fort urbain.
Ciao
Ok, c'est en effet différent :
echo '<option value="'.$label.'1">'.$afficher.'</option>';
devient alors
echo '<option value="'.$label.'1">'.eval($afficher).'</option>';
echo '<option value="'.$label.'1">'.$afficher.'</option>';
devient alors
echo '<option value="'.$label.'1">'.eval($afficher).'</option>';
Pardon de revenir a la charge mais je ne m'en suis pas sortie....
La proposition d'hier soir avec le eval ne fonctionne pas. Je pense qu'il m'a certainement indiqué une voie interressante a prendre.
Qq1 aurait il une idée plus précise ?
Merci
La proposition d'hier soir avec le eval ne fonctionne pas. Je pense qu'il m'a certainement indiqué une voie interressante a prendre.
Qq1 aurait il une idée plus précise ?
Merci
Re-Enième proposition :
echo '<option value="'.$label.'1">';
eval('echo '.$afficher.';');
echo '</option>';
echo '<option value="'.$label.'1">';
eval('echo '.$afficher.';');
echo '</option>';