Page 1 sur 1

[résolu]candidature

Posté : 28 août 2005, 11:43
par felixphp
bonjour

j'ai un probleme avec ce scripte il n'affiche RIEN !!!!! (sauf la première ligne du tableau :
<?
include("debut.php");

mysql_connect("localhost","root","");
mysql_select_db("journal");

echo '<table>
<tr><th>Accepter</th><th>Refuser</th><th>nom</th><th>E-mail</th><th>Motivations</th></tr>';

$reponse=mysql_query("SELECT * FROM demande_journaliste ORDER BY 'id' DESC");
while($donnees=mysql_fetch_array($reponse));
{
echo '<tr><td><a href="candidature.php?accepte='.$donnees['id'].'">Accepter</a></td><td><a href="candidature.php?refuse='.$donnees['id'].'">Refuser</a></td><td>'.$donnees['pseudo'].'</td><td>'.$donnees['email'].'</td><td>'.$donnees['motivations'].'</td></tr>';
}

echo '</table>';

if(isset($_GET['accepte']))
{
$sortie=mysql_query("SELECT * FROM demande_journaliste WHERE id='".$_GET['accepte']."' ");
$don=mysql_fetch_array($sortie);


mysql_query("INSERT INTO journalistes VALUES('','".$don['pseudo']."','".$don['mot_de_passe']."','".$don['email']."')");
mysql_query("DELETE FROM demande_journaliste WHERE id='".$_GET['accepte']."' ");
}

if(isset($_GET['refuse']))
{
$accepte=$_GET['refuse'];
$sortie=mysql_query("SELECT * FROM demande_journaliste WHERE id='".$accepte."' ");
$don=mysql_fetch_array($sortie);
mysql_query("DELETE FROM demande_journaliste WHERE id='".$accepte."' ");
}

mysql_close();
include("fin.php");
?>

Posté : 28 août 2005, 12:10
par smarties
$reponse=mysql_query("SELECT * FROM demande_journaliste ORDER BY 'id' DESC");
Je dirais que ta requete a une petite erreur sur id :wink: Enleve les quotes.
Car si tu as seulement la 1ere ligne du tableau cela signifie que tu n'a aucun résultat :roll:

Posté : 28 août 2005, 12:11
par smarties
while($donnees=mysql_fetch_array($reponse));
enleve le point-virgule a la fin de la ligne.

Posté : 28 août 2005, 12:18
par Cyrano
Tu as mis la clause WHERE avec le nom du champ de tri entre apostrophes, il a donc été pris non comme la valeur du champ mais comme la valeur "id".

Avec un peu de nettoyage, voici une proposition de correction:
<?
include("debut.php");

mysql_connect("localhost","root","");
mysql_select_db("journal");
?>
<table>
  <tr>
    <th>Accepter</th>
    <th>Refuser</th>
    <th>nom</th>
    <th>E-mail</th>
    <th>Motivations</th>
  </tr>
<?php
$sql = "SELECT `id`,`pseudo`,`email`,`motivations` FROM demande_journaliste ORDER BY `id` DESC";
$reponse = mysql_query($sql);
while($donnees = mysql_fetch_assoc($reponse));
{
?>
  <tr>
    <td><a href="candidature.php?accepte=<?php echo($donnees['id']); ?>">Accepter</a></td>
    <td><a href="candidature.php?refuse=<?php echo($donnees['id']); ?>">Refuser</a></td>
    <td><?php echo($donnees['pseudo']); ?></td>
    <td><?php echo($donnees['email']); ?></td>
    <td><?php echo($donnees['motivations']); ?></td>
  </tr>
<?php
}
?>
</table>
<?php
if(isset($_GET['accepte']))
{
    $sortie=mysql_query("SELECT * FROM demande_journaliste WHERE id='".$_GET['accepte']."' ");
    $don=mysql_fetch_array($sortie);


    mysql_query("INSERT INTO journalistes VALUES('','".$don['pseudo']."','".$don['mot_de_passe']."','".$don['email']."')");
    mysql_query("DELETE FROM demande_journaliste WHERE id='".$_GET['accepte']."' ");
}
elseif(isset($_GET['refuse']))
{
    $accepte=$_GET['refuse'];
    $sortie=mysql_query("SELECT * FROM demande_journaliste WHERE id='".$accepte."' ");
    $don=mysql_fetch_array($sortie);
    mysql_query("DELETE FROM demande_journaliste WHERE id='".$accepte."' ");
}

mysql_close();
include("fin.php");
?>

Posté : 28 août 2005, 12:22
par felixphp
while($donnees=mysql_fetch_array($reponse));
enleve le point-virgule a la fin de la ligne.
merci
ça marche c'était pas plus bete que ça

Posté : 28 août 2005, 12:23
par Cyrano
Ha oui, bien vu, j'avais pas remarqué ce détail.