carmellovy
7.03.2013, 13:42:50
Cześć!
Jestem początkujący w temacie PHP i przyszło mi edytować kod, z którym nie mogę sobie poradzić.
Jest to skrypt rejestracyjny powiązany z bazą mysql.
Potrzebuje zmienić tak kod, aby nie wyświetlało w liście dziedziny z id = 9.
Poniżej potrzebne fragmenty kodu:
$sql = 'SELECT u.id, u.imie, u.nazwisko, u.email, u.nrtel, u.male, u.birthdate, u.pesel, m.name AS miasto, k.name AS kierunek, u.otherkierunek, u.studia, ucz.name AS uczelnia, '.
'u.otheruczelnia, u.rok, u.otherjezyk, dz.name AS dziedzina, u.test_started_at, u.test_ended_at, u.punkty, s.name AS status '.
'FROM users u '.
'LEFT JOIN miasta m ON m.id = u.miasto '.
'LEFT JOIN kierunki k ON k.id = u.kierunek '.
'LEFT JOIN uczelnie ucz ON ucz.id = u.uczelnia '.
'LEFT JOIN dziedziny dz ON dz.id = u.dziedzina '.
'LEFT JOIN statusy s ON s.id = u.status '.
'WHERE u.is_admin = 0 '.
'ORDER BY u.id ASC';
<?php
$sql = 'SELECT * FROM dziedziny';
$dziedziny = $pdo->query($sql)->fetchAll(PDO::FETCH_ASSOC);
foreach($dziedziny as $key => $dziedzina){
$sql = "SELECT COUNT( * ) FROM `users` WHERE dziedzina = $dziedzina[id]";
$count = $pdo->query($sql)->fetch(PDO::FETCH_NUM);
$nazwa = explode(' (',$dziedzina[name]);
echo("<li ".($key ? '' : "class='first'")."".($key == count($dziedziny) - 1 ? "class='last'": "")."><span class='item miasto'>".$nazwa[0]."</span><span class='count'>$count[0]</span></li>");
}
?>
Będę mega wdzięczny za pomoc.
Używaj tagów jak podajesz kod na forum.
if($dziedzina['id'] != 9)
{
// tu wyświetl wszytko inne co nie ma id 9
}
carmellovy
7.03.2013, 14:12:47
W pliku, który odpowiada za wyświetlenie (rejestracja.html) mam tylko:
<select name="register[dziedzina]"> <option selected="selected" value="--- Wybierz dziedzinę ---">--- Wybierz dziedzinę ---
</option> <!--{foreach from=$vars->doctrine->dziedziny->findAll() item=dziedzina}-->
<option value="{$dziedzina->id}" >{$dziedzina->name}
</option>
<!--{/foreach}-->
Nie mam pomysłu, gdzie tego ifa wstawić.
Damonsson
7.03.2013, 14:15:44
WHERE u.is_admin = 0 AND dz.id != 9
carmellovy
7.03.2013, 14:33:22
Cytat(Damonsson @ 7.03.2013, 14:15:44 )

WHERE u.is_admin = 0 AND dz.id != 9
Dzięki, ale chyba popełniłem mały błąd. Ten plik nie odpowiada za wyświetlanie - podesłałem jeszcze fragment pliku rejestracja.html, który za to odpowiada.
Damonsson
7.03.2013, 14:45:48
No to, tak jak wyżej ktoś napisał:
if({$dziedzina->id} != 9) {
}
albo
if($dziedzina->id != 9) {
}
nie wiem jak zadziała
carmellovy
7.03.2013, 15:00:20
Po nałożeniu ifa na wyświetlanie nie wyświetla, bo istnieje wartość id = 9.
Damonsson
7.03.2013, 15:15:36
<?php if($dziedzina->id != 9): ?>
<option value="{$dziedzina->id}" >{$dziedzina->name}</option>
<?php endif; ?>
Tak zrobiłeś?
carmellovy
7.03.2013, 15:26:56
Cytat(Damonsson @ 7.03.2013, 15:15:36 )

<?php if($dziedzina->id != 9): ?>
<option value="{$dziedzina->id}" >{$dziedzina->name}</option>
<?php endif; ?>
Tak zrobiłeś?
Jak tak zrobiłem to nic się nie zmienia - dalej widoczna jest ta z id 9.