2014-06-24 1 views
0

J'ai une table "shedules" où je garde toujours deux dossiers (mes shedules sont enregistrées en format pdf).mon code fonctionne bien avec deux sélections mais Im essayant d'utiliser un seul

Un enregistrement est relatif à shedule 1ère année, de sorte que mon dossier est comme:

(id, pdf, année)(1, ../uploads/shedules/1st_year.pdf, 1st_year)

Mon dossier est comme Othe:

(id, pdf, année)(2, ../uploads/shedules/2nd_year.pdf, 2nd_year)

Mes fiches sont mises à jour chaque semaine, mais peuvent être mises à jour sans un ordre spécifique, peuvent d'abord être mis à jour l'horaire de la première année ou de la deuxième année.

Et dans ma forme, où je mets à jour mes horaires, j'ai aussi deux liens pour montrer les horaires actuels de chaque année.

Et je veux montrer sur mon lien "Voir l'horaire 1ère année" mon programme pdf de ma 1ère année, et je veux montrer sur mon lien "Voir l'horaire 2ème année" mon programme pdf de ma 2ème année. Savez-vous comment puis-je faire cela sans faire deux sélections ??? Je l'ai déjà fait avec deux sélections mais maintenant Im essayant de faire seulement en utilisant un.

je tentais en utilisant « l'ordre par année asc » mais ne fonctionne bien parce que l'utilisateur qui mettent à jour shedules peut insérer d'abord ma 1ère année ou 2ème année ...

<?php 
    $readShedules = $pdo->prepare("SELECT pdf from schedules ORDER BY year ASC"); 
    $readShedules->execute(); 
    $result = $readShedules->fetch(PDO::FETCH_ASSOC);  
    echo '<div>'; 
    echo '<a style="margin-right:10px;" href="../uploads/pdfs/'.$result['pdf'].'">See schedules 1st year</a>'; 
    echo '<a href="../uploads/pdfs/'.$result['pdf'].'">See schedule 2nd year</a>'; 
    echo '</div><!--viewcapa-->'; 
?> 
+0

Sont-ils mis à jour ou juste une nouvelle ligne est insérée dans la table? – Nutic

+0

Merci pour votre réponse Nutic. Si c'est la première fois que Im insérant des shedules je fais un insert. Mais alors c'est toujours une mise à jour .. – UserX

Répondre

2

On dirait que vous êtes à la recherche pour récupérer plusieurs lignes de la base de données. Si c'est le cas je vous dirigerais vers le PDO fetchAll method, qui récupère toutes vos correspondances pour cette requête au lieu de fetch qui récupère juste le premier.

Quelque chose le long de ces lignes:

$results = $readShedules->fetchAll(PDO::FETCH_ASSOC); 
echo '<div>'; 
foreach($results as $result) { 
    echo '<a style="margin-right:10px;" href="../uploads/pdfs/'.$result['pdf'].'">See schedules '.$result['year'].'</a>'; 
} 
echo '</div><!--viewcapa-->'; 
+0

Merci, ça a fonctionné parfaitement avec la méthode fetchAll! – UserX

+1

De rien :) Rappelez-vous juste qu'un ensemble de résultats de base de données est juste cela, un ensemble. Pour obtenir plusieurs résultats, vous devez utiliser une méthode qui récupère plusieurs résultats ou utiliser une boucle avec une méthode qui renvoie une seule à chaque itération. – Brian

1

Vous pouvez essayer d'utiliser cette requête

SELECT DISTINCT year, pdf FROM [TableName] ORDER BY ID DESC 

Cela vous ramènera seulement 2 lignes. Et la valeur PDF serait la mise à jour la plus récente. Ceci est dans le cas où chaque mise à jour fait une nouvelle ligne dans la table.

Questions connexes