Avatar billede spidr Nybegynder
17. marts 2003 - 07:51 Der er 10 kommentarer og
1 løsning

Sotering efter point

Nogen der kan se hvad jeg har gjort galt med denne kode??
MEnigen er at den skal sotere brugeren efter om han har nok point eller ikke... Jeg tror der er noget gal tmed $point1 og $point2 den siger jeg ikke har point nok men jeg har rigeligt...

<?
session_start();
?>
<?
// Tjekker om brugeren er logget ind
if ($s_navn && $s_password) {
?>

<?php
$dl = strip_tags($s);
require("db_ind.inc");
$point1 = mysql_query("SELECT point FROM porndl WHERE http = '$dl'");        //point det koster at downloade filen
$point2 = mysql_query("SELECT point FROM googlogin WHERE navn = '$s_navn'"); //point brugeren har i alt
$nypoints = $point2 - $point1;                                              //minuser antla point det koster at se filen med dem han ahr
$sql = "UPDATE googlogin SET point = '$nypoints' WHERE navn = '$s_navn'";    //set han nye antal points

if($point2 >= $point1) {        //Tjekker om brugeren har pointnok
mysql_query($sql) or die (mysql_error());  //sæter linie 15 igang
echo("<html><head><META HTTP-EQUIV='Refresh' CONTENT='5; URL=$dl'></head><body>Conecting<br>Delete $point1 from user $s_navn<br>Download will start in 3 secs</body></html>");
} else { //hvis brugeren ikke har points nok
echo("You DONT have enough points!");
}
?>

<?
// Hvis brugeren ikke er logget ind
} else {
?><br><br>
<h1>&nbsp;Error</h1><br>
<center>
<br><br><b><font color=red>There is an error, maybe you are not logged in!!</font></b>
<?
}
?>
Avatar billede jpvj Nybegynder
17. marts 2003 - 08:47 #1
Et query må vist returneret en collection (dvs. en eller flere rækker). Du må skulle trække "point" ud fra den første række, i stedet for det du gør.
Avatar billede tefcke Nybegynder
17. marts 2003 - 11:31 #2
Kig lige på returtypen af '$point1' og '$point2' med print_r()

Ex.
print("<pre>");
print_r($point1);
print("</pre>");

så står der at det er en mysql ressource, og du skal bruge mysql_fetch_array eller lign. for at få din returnerede data ud.
Avatar billede spidr Nybegynder
17. marts 2003 - 13:00 #3
Hmm forstår slet ikke hvad i mener??
Ikke en der gider prøve at forklare hvad jeg så kan gøre hvis det er min hentning der er forkert? :S
Avatar billede tefcke Nybegynder
17. marts 2003 - 15:36 #4
Brug denne funktion i stedet for mysql_query()

/* Props til webcafe.dk som har stillet denne func. til rådighed (dog letter modificeret af undertegnet */
function mysql_retun_array_query($QUERY)
{
      $resultFromQuery = mysql_query($QUERY);
      while($row = mysql_fetch_array($resultFromQuery)) {
        $resultArray[] = $row;
      }
      if (isset($resultArray)) {
        return $resultArray;
      } else {
        return FALSE;
      }
}

$point1 = mysql_retun_array_query("SELECT ... FROM ... WHERE ...");

så løber du hele de returnerede array igennem med
foreach ( $point1 as $pt1) {
  ... $pt1['point'] ...;
  ... ... ...;
}


Håber du kan se ideen med det :)
Avatar billede spidr Nybegynder
17. marts 2003 - 15:53 #5
Damn jeg er slow men fater slet ik hva der er galt med det jeg har lavet :S Og hvordan jeg skal bruge det der :S Sry m8 :)
Avatar billede tefcke Nybegynder
17. marts 2003 - 16:11 #6
Så kunne det være du skulle tage at læse artiklen om mysql ovre på www.webcafe.dk før du begynder at bruge database!

http://www.webcafe.dk/artikler/php/phpmysqlintroduktion/
Avatar billede spidr Nybegynder
17. marts 2003 - 16:14 #7
Hehe plejer nu sagtens at kunne finde ud af det :) Men tror os jeg har fattet hva du mener :) Og er lige igang med at prøve det :)
Avatar billede spidr Nybegynder
17. marts 2003 - 17:27 #8
<?
session_start();
?>
<?
// Tjekker om brugeren er logget ind
if ($s_navn && $s_password) {
?>

<?php
$dl = strip_tags($s);
require("db_ind.inc");
function mysql_retun_array_query($QUERY)
{
      $resultFromQuery = mysql_query($QUERY);
      while($row = mysql_fetch_array($resultFromQuery)) {
        $resultArray[] = $row;
      }
      if (isset($resultArray)) {
        return $resultArray;
      } else {
        return FALSE;
      }
}

$point1 = mysql_retun_array_query("SELECT point FROM porndl WHERE http = '$dl'");
$point2 = mysql_retun_array_query("SELECT point FROM googlogin WHERE navn = '$s_navn'");
$nypoints = $point2 - $point1;                                              //minuser antla point det koster at se filen med dem han ahr
$sql = "UPDATE googlogin SET point = '$nypoints' WHERE navn = '$s_navn'";    //set han nye antal points

foreach ($point1 as $pt1) {
if($pt2['point'] >= $pt1['point']) {        //Tjekker om brugeren har point nok
mysql_query($sql) or die (mysql_error());  //sæter linie 15 igang
echo("<html><head><META HTTP-EQUIV='Refresh' CONTENT='5; URL=$dl'></head><body>Conecting<br>Delete $point1 from user $s_navn<br>Download will start in 3 secs</body></html>");
} else { //hvis brugeren ikke har points nok
echo("You DONT have enough points!");
}
}
?>

<?
// Hvis brugeren ikke er logget ind
} else {
?><br><br>
<h1>&nbsp;Error</h1><br>
<center>
<br><br><b><font color=red>There is an error, maybe you are not logged in!!</font></b>
<?
}
?>
<---HVa er galt nu? har prøvet at sætte det ind du sage men den siger:

Fatal error: Unsupported operand types in /customers/goog.dk/goog.dk/httpd.www/SEX/dl.php on line 27

tak for hjælpen iøvrigt :)
Avatar billede tefcke Nybegynder
17. marts 2003 - 18:25 #9
$nypoints = $point2 - $point1;

Hør nu her, $point2 og $point1 er begge arrays! du kan ikke bruge minus oprand på arrays, du er nød til at finde værdien i arrayet!

Hvis du er 110% sikker på at der kun er 1 værdi i hver array, så kan du gøre flg. i stedet:

$nypoints = $point2[0]['point'] - $point1[0]['point'];
Avatar billede spidr Nybegynder
17. marts 2003 - 19:38 #10
Tak :) Nu virker det nu er det bare
foreach ($point1 as $pt1) {
if($pt2['point'] >= $pt1['point']) {        //Tjekker om brugeren har point nok

det der der ikke virker? :)
pt1 er det antal point det koster at downloade den og pt2 er det antal point brugeren har :) Kan godt se at det er noget galt men hvad skal jeg gøre? :)
Tusind tak for hjælpen :) har lært en masse jeg ikke vidste :)
Avatar billede spidr Nybegynder
17. marts 2003 - 22:02 #11
SÅ er den løst :)  tak for hjælpen :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester