webForumDet fria alternativet

Lista uppladdning av bilder i "samlad" post!

PHPur PHP

11 svar · 1 351 visningar · startad av Asa

Medlem sedan dec. 20011 860 inlägg
Frågan#1

Vet inte om jag skall skriva detta här men annars får den flyttas.

Jo jag har en sida där det ska visas massa bilder som man skall kunna ladda upp. När man gör det så ska dessa samlas i en post/inlägg om de är uppladdade inom ex 5 min.

Som facebook har när man lägger till massa bilder. Då ser man de 4 senaste av bilderna. två på varje rad.

Är detta något som är svårt?

Medlem sedan dec. 20011 860 inlägg
#2

Ingen som vet?

Medlem sedan juni 20004 308 inlägg
#3

Det är en väldigt generell fråga. Har du någon funktionallitet idag som skall anpassas för funktionen, eller är det en ny funktion. Spontant tänker jag mig 2 databas-tabeller. 1 tabell för Posts/inlägg, 1 tabell för bilder. När en bild laddas upp kollar du om det finns en post inom de 5 senaste minuterna. Om ja skapas ingen ny post och bilden som laddats upp knyts till den befintliga posten. Om ingen post finns skapas en ny och bilden knyts till den.

Medlem sedan dec. 20011 860 inlägg
#4

Jag har ett bildgalleri där man laddar upp flera bilder i ett svep men alla får egen rad i databasen. Så vill jag att de skall samlas om man då laddar upp fler än 1 bild så klart.

Ex:

Hämta post från photos som uid_fk nr 12 gjort som inte skiljer sig från denna posten med mer än 1 minut.

Hur skriver man det med sql. Datumet creates sparas som time, typ 1398028220

Medlem sedan juni 20004 308 inlägg
#5

Om bildtabellen heter images och har en datetime-kolumn med skapande-datum som heter created och inläggstabellen heter posts och även har en created-kolumn:

MySQL

SELECT images.created as imgcreated, posts.created as postcreated, images.flerakolumner, posts.flerakolumner
FROM images
JOIN posts
WHERE images.created>=DATE_SUB(posts.created, INTERVAL 5 MINUTE) AND images.created<=DATE_ADD(posts.created, INTERVAL 5 MINUTE);

SQLITE

SELECT images.created as imgcreated, posts.created as postcreated, images.flerakolumner, posts.flerakolumner
FROM images
JOIN posts
WHERE images.created>=datetime(posts.created,'-5 minutes') AND images.created<=datetime(posts.created,'+5 minutes');
Medlem sedan dec. 20011 860 inlägg
#6

Okej så jag måste dela upp det? Går inte annars?
Jag har bara en tabell som heter photos där alla ligger. bild, text, datum m.m

Medlem sedan juni 20004 308 inlägg
#7

Jovisst. Då är det ju ännu enklare.

SELECT * FROM din_tabell WHERE created>=DATE_SUB('Aktuellt datum for posten', INTERVAL 5 MINUTE) AND created<=DATE_ADD('Aktuellt datum for posten', INTERVAL 5 MINUTE);

Typ... Fast du vill antagligen lägga till något användar-id i WHERE-direktivet för att bara få träffar för aktuell användare.

Medlem sedan dec. 20011 860 inlägg
#8

Tackar då skall jag testa! Men vilket format skall datumet vara som man skall skriva vid Aktuellt datum for posten ?
För mitt datum är ju creates sparas som time, typ 1398028220

Medlem sedan juni 20004 308 inlägg
#9

Det kan funka. Annars kan du använda FROM_UNIXTIME(1398028220) för att konvertera från 1398028220 till typ '2014-01-01 01:00:00'

Medlem sedan dec. 20011 860 inlägg
#10

Ska jag skriva så här då eller?

$mtime			= date("Y-m-d H:i:s");
$antalFotonIrad=mysql_num_rows(mysql_query("SELECT * FROM photos WHERE FROM_UNIXTIME(created) >= DATE_SUB($mtime, INTERVAL 5 MINUTE) AND FROM_UNIXTIME(created)<=DATE_ADD($mtime, INTERVAL 5 MINUTE)"));
Medlem sedan juni 20004 308 inlägg
#11

$mtime kommer i ditt exempel att innehålla formatet 2014-05-15 00:00:00 (således inte ett tal) och måste därför inneslutas med '-tecken i SQL-frågan.

$antalFotonIrad=mysql_num_rows(mysql_query("SELECT * FROM photos WHERE FROM_UNIXTIME(created) >= DATE_SUB('$mtime', INTERVAL 5 MINUTE) AND FROM_UNIXTIME(created)<=DATE_ADD('$mtime', INTERVAL 5 MINUTE)"));

$mtime i ditt exempel är dessutom tiden just nu. Så SQL-frågan kommer att spänna från 5 minuter sen och 5 minuter in i framtiden vilket kanske inte är så logiskt. Men jag antar att det bara var ett exempel :)

Medlem sedan dec. 20011 860 inlägg
#12

Det funkade prima :)

127 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)