Próbowałem napisać skrypt "ulubione" do moda z filmikami. W moich planach jest to aby każdy mógł sobie te ulubione sortować i ustawać jak mu się podoba i właśnie to nie działa.
Zrobiłem takie coś:
W kolumnie ulubione_who - znajduje się nazwa użytkownika (czyje to jest)
ulubione_what - adres do filmiku ulubionego
ulubione_kolej - kolejność wyswietlania
kod dodawania do ulubionych:
<?php
if (!defined("IN_FUSION")) { header("Location:../../index.php"); exit; }
if (iMEMBER) {
$adres = "http://strona.net/".FUSION_SELF."?cat_id=".$cat_id."&film_id=".$film_id;
if($_POST["send"]==1){ //sprawdzanie czy formularz został wysłany jesli tak to doda
$queryk = mysql_query("SELECT `ulubione_kolej` FROM `fusion_ulubione` ORDER BY `ulubione_kolej` DESC");
$kolej = mysql_fetch_array($queryk);
$koleja = $kolej[0]+1;
$resulta = dbquery("insert into fusion_ulubione values(NULL, '".$userdata['user_name']."', '$adres', '$koleja');");
echo "$resulta";
header('location: '.$adres.'');
}
if($_POST["sendx"]==1){ //sprawdzanie czy formularz został wysłany - usunie
$resultax = dbquery("DELETE FROM fusion_ulubione WHERE ulubione_who='".$userdata['user_name']."' and ulubione_what='$adres';");
echo "$resultax";
header('location: '.$adres.'');
}
$result = dbquery("select * from fusion_ulubione where ulubione_who='".$userdata['user_name']."' and ulubione_what='$adres'");
if(dbrows($result) != 0){
echo "<form action='$adres' method=post>
<input type=hidden name=adresx value='$adres'>
<input type=hidden value='1' name=sendx>
<input type=submit value='Usuń z ulubionych'>
</form>";
}
else{
echo "
<form action='$adres' method=post>
<input type=hidden name=adres value='$adres'>
<input type=hidden value='1' name=send>
<input type=submit value='Dodaj do ulubionych'>
</form>
";
}
} else {
echo "Zaloguj się, aby widzieć więcej opcji<br><br>";
}
?>
Kod ustawiania kolejności ulubionych (edit_ulubione.php): to ten nie działa... :/ jest dobry ale dla jednego usera ale nie kilku...
<?php
if (!defined("IN_FUSION")) { header("Location:../../index.php"); exit; }
if (iMEMBER) {
$nr=1;
$res = mysql_query('SELECT MAX(ulubione_kolej) FROM fusion_ulubione');
$row = mysql_fetch_array($res);
$maxpos = $row[0];
if(isset($_GET['pos'])) {
$id = $_GET['id'];
$pos = $_GET['pos'];
$newpos = $_GET['newpos'];
mysql_query('UPDATE fusion_ulubione SET ulubione_kolej = '.$pos.' WHERE ulubione_kolej = '.$newpos.'');
mysql_query('UPDATE fusion_ulubione SET ulubione_kolej = '.$newpos.' WHERE id = '.$id.'');
header('Location: edit_ulubione.php');
exit;
}
else {
$res = mysql_query("SELECT * FROM fusion_ulubione WHERE ulubione_who='".$userdata['user_name']."' ORDER BY ulubione_kolej ASC");
while($row = mysql_fetch_array($res)) {
$pos = $row['ulubione_kolej'];
$id = $row['id'];
$ktory = substr ($row['ulubione_what'] , 51);
$queryf = mysql_query("SELECT `film_subject`, `film_miniaturka` FROM `fusion_film` WHERE `film_id`='$ktory'");
$play = mysql_fetch_array($queryf);
echo "<table style='margin-left:50px;'>
<tr>
<td> $nr. ";
$nr++;
echo "".$play['film_subject']."</td>
<td width='40' align='center'> =></td><td>";
if($pos == 1) echo '<a href="edit_ulubione.php?id='.$id.'&pos='.$pos.'&newpos='.($pos+1).'">w dół</a>';
else if($pos == $maxpos) echo '<a href="edit_ulubione.php?id='.$id.'&pos='.$pos.'&newpos='.($pos-1).'">w górę</a>';
else {
echo '<a href="edit_ulubione.php?id='.$id.'&pos='.$pos.'&newpos='.($pos+1).'">w dół</a> |';
echo ' <a href="edit_ulubione.php?id='.$id.'&pos='.$pos.'&newpos='.($pos-1).'">w górę</a>';
}
echo '</td>
</tr>
</table><hr>';
}
}
} else {
echo "Zaloguj się";
}
?>
Proszę o pomoc lub poprawienie tego co jest źle... kod działa poprawnie dla jednego usera ale jak jest kilku to są problemy z ustawieniem kolejności.
ps. php dopiero się uczę - przeczytałem jeden kurs w internecie i napisałem to co widać... ;)
EDIT:
Już wiem... hehe... zapomniałem o jednym warunku (wiedziałem, że ma być ale jak pisałem to zapomniałem ;)).
Już jest dobrze. Wystarczyło dodać:
ulubione_who='".$userdata['user_name']."' w czasie dodawania do ulubionych i do zmiany położenia na liście.
Może się komuś to przyda.
Głupi błąd, aż wstyd... :D
PW od moderatora:
- Zmiana nazwy tematu - Pieka 12.08 - 11:20
Edytowane przez Mazter dnia 16.08.2008 13:11:11
|