Inlägg

Inlägg som csmannen har skrivit i forumet
Av csmannen
Skrivet av SmOOthy:

Du man driva den med den ena kanalen utan problem så länge som det sitter belastning över alla kanaler. Koppla med andra ord in den som en vanlig högtalare tillsammans med diskanten på den ena kanalen. Överväg annars att fixa en bas till, vilket är rekommenderat oavsätt hur du gör.

Edit: använd 10" gjorda för små slutna lådor och använd två. 12" brukar inte vara bra för mellanregistert i små byggen. Kolla upp bygget boominator och då även the halfinator som är byggd med 2 10".

Och nej, du får överlag inte brygga digitala steg.

Så om jag bygger en låda med en 10" bas och 2 st piezo horn (de i bomminatorn), skulle det låta illa? Jagg vill verkligen att min nya låda ska vara liten, dock medbra bra och framför allt högt ljud.

Av csmannen
Skrivet av Andyah:

hur ska du driva sakerna?..är inte tamp en som måste gå på 230v?. rent nyfiken fråga då jag inte har en anning

Nej, jag ska driva den med 12 v.

Av csmannen

Hur koppla 2.1 till 2-kanals T-amp?

Nu sommar ska jqg bygga en ny mindre, krqftfullare och snyggare boombox. För tt hålla nere vikten tänker jag köra med en 12" bas och två små horn. Jag Kommer att använda en t-amp, men hur ska jag koppla in basen? Jag vill att basenska vara "mono" så att den spelar alla ljud oberonde om de är vänster eller höger. Hur ska jag koppla?

Av csmannen

Hur koppla 2.1 till 2-kanals T-am?

Nu sommar ska jqg bygga en ny mindre, krqftfullare och snyggare boombox. För tt hålla nere vikten tänker jag köra med en 12" bas och två små horn. Jag Kommer att använda en t-amp, men hur ska jag koppla in basen? Jag vill att basenska vara "mono" så att den spelar alla ljud oberonde om de är vänster eller höger. Hur ska jag koppla?

Av csmannen

Jag kom på att nu visas enbart låtar som har fått en eller flera röster, vilket dödar systemet för alla låtar. Hur ska jag lösa det? Känns som det borde gå att göra i queryn, men hur? En annan lösningen är ju att man skriver in ett betyg i databasen i samma veva som låten läggs till.

Query:

$query = "SELECT `songs`.*, `votes`.*, `votes`.`id` AS `voteid`, AVG(`votes`.`points`) AS `meanvalue` FROM `songs` INNER JOIN `votes` ON `songs`.`id` = `votes`.`songid` WHERE `songs`.`active` = 1 AND `votes`.`unix` >= '$chosedtimeX' GROUP BY `songs`.`id` ORDER BY `meanvalue` DESC ";

Det som gör att låtar utan röster inte visas är

WHERE: `votes`.`unix` >= '$chosedtimeX'

Dock gillar jag den funktionen. Jag tror det är bäst att göra så att ett betyg skrivs in när låten skickas in.

För att göra det tänkte jag mig en mycket simpel query, lik den i votes. Det enda jag inte riktigt vet hur jag ska göra är att skriva in songid. Kan jag göra så att låten först skrivs in, sen så kollar jag vilket id den fick och skriver in det id som songid i votes? Hajjar ni?

Som det ser ut nu gör jag 3 st query, en som skriver in låten, en som hämtar låten id genom att kolla länken och en sista som skriver in en röst med värdet 3 genom att den tar idt från songen och gör det till songid. Dock fungerar det inte ritkigt.

Querys:

$query = "INSERT INTO songs(link, name, active,date) VALUES('$link','$name','$active','$date')"; mysql_query($query); $query1 = mysql_query ("SELECT id, link FROM users WHERE link='$link'"); $row['id'] = $songid $query2 = "INSERT INTO votes(songid, ip, points, date) VALUES('$songid','$ip','3','$date')"; mysql_query($query2);

Jag får då error på rad 50: "syntax error, unexpected T_VARIABLE"

Av csmannen
Skrivet av infinity08:

Queryn ska isåfall vara (förutsatt att kolumnnamnen är rätt och att id har en auto increment:

$query = "INSERT INTO votes(songid, ip,points,unix) VALUES('$songid','$ip','$points','$unix')";

Dvs. du behöver inte ha med id alls om den är primary index och har auto increment. Sen så hade du glömt en ' innan songid.

Tack!

Nu ska jag göra så att det enbart är en röst per låt. Återkommer med resultat, och i värsta fall frågor...

EDIT: Löste det!

$checkquery = mysql_query ("SELECT ip, songid FROM votes WHERE songid='$songid' AND ip='$ip' "); $numrows = mysql_num_rows ($checkquery); if ($numrows!=0) { echo "Du har redan röstat på den här låten!"; } else { blabla }

Nu är det bara den sista funktionen kvar: att låta användare skicka in låttips. Dock är den inte så svår.

Tack för alla svar, hade tagit enormt lång tid, eller snarare oändligt långtid utan dem!

Av csmannen
Skrivet av anon150287:

Är väl lite av en smaksak med, har alltid använt " i HTML och har då blivit ' i PHP.

Kör queryn såhär så får du eventuella felmeddelande:

if(!mysql_query($query)) { echo(mysql_error()); }

Jag får "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '','127.0.0.1','3','1307034548')' at line 1" Vad tyder det på?

Av csmannen
Skrivet av XzaR:

Har du den här tabellen?

CREATE TABLE IF NOT EXISTS `connections` ( `id` bigint(21) NOT NULL AUTO_INCREMENT, `ip` int(32) NOT NULL, `date` varchar(32) NOT NULL, `time` int(6) NOT NULL, PRIMARY KEY (`id`) );

Japp, inget händer tyvärr. Dock vill jag fråga en annan sak, vad är skillnaden på INT och BIGINT?

Av csmannen
Skrivet av infinity08:

Funkar queryn? Dvs. sparas det något? Skulle dock rekommendera dig att genomföra queryn på detta sätt:

$songid = fInClean($_GET['songid']); $points = fInClean($_POST['points']); $query = "INSERT INTO votes(id,ip,points,unix) VALUES('$songid','$ip','$points','$unix')"; mysql_query($query);

Flera fördelar:
- Säker in-data
- Du behöver inte tänka på kolumnernas ordning i databasen
- Snyggare och mer lättläst
- Du kan enkelt eka ut queryn med echo $query; ifall du vill veta exakt vad som körs, eller testa det i ett sql-program.

Tack, riktigt schysst! Dock fungerar det fortfarande inte... Inget sparas i min databas.

Här är min nya kod: http://pastie.org/2008833

Den följer din struktur, men den fungerar inte. Vad kan felet ligga?

EDIT: Knäppt när jag echoar ut min query får jag: INSERT INTO votes(id, songid, ip,points,unix) VALUES('',2','127.0.0.1','','1307025836')Det funkar!

Då borde det funka va?

Av csmannen
Skrivet av XzaR:

<?php date_default_timezone_set("Europe/Stockholm"); session_start(); if(empty($_SESSION['ip_registered'])) { $ip = ip2long($_SERVER['REMOTE_ADDR']); $_SESSION['ip_registered'] = 1; $query_connections = mysql_query("SELECT id FROM connections WHERE ip='".$ip."' limit 1"); $numrows_ip = mysql_num_rows($query_connections); if($numrows_ip == 0) { //date format: Thu, 21 Dec 2000 16:01:07 +0200 //table (int)id primary auto incr..,(int)ip,(varchar)date[32],(int) time mysql_query("INSERT INTO connections VALUES ('".$ip."','".date("r")."','".time()."')") or die(mysql_errno().": ".mysql_error()); } } ?>

bättre?

Jag får nu inget error, men inget i databasen heller...

Av csmannen

Tack!

Nu har jag fortsatt på scriptet som sätter betyg på låtarna. En så länge är det simpelt, alltså utan mysql_real_escape_string och så att scriptet kollar så att användarens IP bara finns på en röst på en låt.

Dock får jag lite problem. Mitt script echoar ut "det funkar", fast det inte gör det. Jag tycker scriptet ser bra ut, det gör dock inte servern

KOD: http://pastie.org/2008034

Varför händer inget i mitt script?

Av csmannen
Skrivet av anon150287:

Du börjar din echo med " och använder det senare i koden.
Det den tolkar det som är att tex. post och rate.php är PHP variabler medan det faktiskt är ord som ska vara med i koden.
Använd ' för PHP och " för HTML. Finns lite skillnader mellan ' och " i PHP, tex. kan du skriva in variabler i en sträng med " medan du måste använda punkter för '.

Exempel:

echo('<a href="'.$row['link'].'">'.$row['name'].'</a> - '.ceil($row['meanvalue']).' - <a href="rate.php" onclick="showhide(\'Votehidden\');">Rösta</a> <div id="Votehidden" style="margin-bottom: 0px; visibility:hidden;">');

Tack, jag har nu gjort som du säger, men likt förbannat får jag fel. "syntax error, unexpected T_ECHO, expecting ',' or ';'" på rad 33.

Kod: http://pastie.org/2005955

Av csmannen

Tack. Nu har jag fixat unixet och fått en idé om hur jag ska uppdatera sidan efter X antal sekunder.

"Utskrivningen av queryn" funkar nu, men jag ville lägga till lite mer, och då blev det knas.

"Utskrivningen av queryn" :

echo "<a href='{$row['link']}'>{$row['name']}</a> - " . ceil($row['meanvalue']) . " - <a href='rate.php' onclick='showhide(\'Votehidden\');'>Rösta</a> <div id="Votehidden" style="margin-bottom: 0px; visibility:hidden;"> <form method="post" action="rate.php"> <select name="points"> <option>1</option> <option>2</option> <option>3</option> <option>4</option> <option>5</option> <input type="submit" value="submit"> </select> </form> </div>";

Dock fungerar inte den. Jag får följande error; "Parse error: syntax error, unexpected T_STRING, expecting ',' or ';'" på rad 17. Vad gick fel?

Sen, finns det något bra sätt att felsöka php-kod på? För nu förstår jag inte riktigt vad alla errors betyder och hur man åtgärdar dem.

Av csmannen

<?php if(isset($_GET['songid'])){ $points = strip_tags(@$_POST['points']); $ip = isset($_SERVER['HTTP_X_FORWARDED_FOR']) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR']; $unix = time() $query = mysql_query ("INSERT INTO votes ('','".$_GET['songid']."','".$ip."','".$points."','".$unix."')"); $result = mysql_query($query) or die(mysql_error()); } ?>

Jag får fel på queryn: "syntax error, unexpected T_VARIABLE" på rad 9 (queryn). Vad har jag skrivit fel?

Sen, kan jag på något sätt leda till baka dem till sidan och att något skrivs ut, typ "Tack för din röst, om 5 sekunder skickas du tillbaka till sidan!" och sen kommer man tillbaka till xxx.php efter 5 sekunder.

Av csmannen

Nu har jag börjat sätta in en länk som man ska kunna trycka på att att kunna rösta. Dock får jag upp: "Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' " på rad 14.

Rad 14:

echo '<a href="'.$row['link'].'">'.$row['name'].'</a>'. " - ". ceil($row['meanvalue']). " - ". '<a href="rate.php" onclick="showhide('Votehidden');">Rösta</a> ' ;

Jag ser inget fel där, ser ni?

Jag har löst det på ett annat sätt, dock fulare. Nu visas "rullgardinsfönstret" till vänster om betyget. Jag vill helst göra så att det bara syns när man klicka på min länk, (rösta). Dock får jag fel i php när jag gör det, snälla nån?

Nu har jag även kommit på ett bra sätt att göra rösningen på. När man har valt ett betyg och trycker på "Rösta!" så skickas man vidare till rate.php?name=XXX. Via name hämtar jag sedan låtens namn och uppdaterar poängen, smart va?

Av csmannen
Skrivet av csmannen:

Skulle man kunna göra en IF sats där man räknar meanvalue och ersätter siffran med antal stjärnor? Så om jag har betyget är 4 så ersätts det med 4 st stjärnor.

Jag har kommit på att jag nog bara vill ha betyget, och sen en rösta knapp på sidan om varje låt. För att göra det ska jag använda css så att när man klickar på "Sätt betyg" så ska ett rullgardinfönster dyka upp". För att göra det i css ska jag skriva något i stil med:

<a href="javascript://" onclick="showhide('Votehidden');">Rösta</a></p> <div id="Votehidden" style="margin-bottom: 0px; visibility:hidden;"> <form method="post" action="rate.php"> <select name="points"> <option>1</option> <option>2</option> <option>3</option> <option>4</option> <option>5</option> <input type="submit" value="submit"> </select> </form> </div>

Hur får jag in det över i mitt php-script som echoar ut låtarna?:

while($row = mysql_fetch_array($result)){ echo '<a href="'.$row['link'].'">'.$row['name'].'</a>'. " - ". ceil($row['meanvalue']) ; echo "<br />";

Hur gör jag sedan i scriptet som ratear låtarna (rate.php) så att man ratear på den låten som är till vänster om rateknappen?

funkar den här principen med html i php scriptet?

while($row = mysql_fetch_array($result)){ echo '<a href="'.$row['link'].'">'.$row['name'].'</a>'. " - ". ceil($row['meanvalue']). " - ". 'all min kod i'.; echo "<br />";

Av csmannen
Skrivet av csmannen:

Grymt nu funkar det asbra.

Om jag vill göra en rating system med stjärnor eller liknande gör jag bara en till query. Men hur ska jag få dit stjärnorna? Förstår ni? Så att man kan välja 1-5 stjärnor och rösta genom att klicka.

I värsta fall kan man ju göra en "gardin" där man har 1,2,3,4,5. Dock blir det lite fulare.

Skulle man kunna göra en IF sats där man räknar meanvalue och ersätter siffran med antal stjärnor? Så om jag har betyget är 4 så ersätts det med 4 st stjärnor.

Av csmannen

Grymt nu funkar det asbra.

Om jag vill göra en rating system med stjärnor eller liknande gör jag bara en till query. Men hur ska jag få dit stjärnorna? Förstår ni? Så att man kan välja 1-5 stjärnor och rösta genom att klicka.

I värsta fall kan man ju göra en "gardin" där man har 1,2,3,4,5. Dock blir det lite fulare.

Av csmannen
Skrivet av XzaR:

ska det inte vara '.$ip_first.' men det kanske går att skriva '$ip_first'

Skrivet av kobb3:

Tror den fungerar, jag får i alla fall inget error.

Skulle kolla men verkar som att min sida är nere -.-

Jag får det fortfarande inte att funka. Undra vad f*n det kan vara?

Av csmannen

$chosedtime= $_POST ['chosedtime'];
$chosedtime= stripslashes($chosedtime);
$chosedtime= mysql_real_escape_string($chosedtime);

$chosedtimeX= time(); - $chosedtime * 86400;

Är det där ett korrekt och säkert sätt att räkna ut unixet - X*86400? Hur gör jag sen i queryn?