Avatar billede fatal85 Nybegynder
06. juli 2010 - 20:22 Der er 10 kommentarer og
1 løsning

mysql tabel virker ikke i joomla

Jeg har lavet et script der laver en tabel med data fra en mysql database, og det virkede egentligt fint. Men nu hvor jeg prøver at lave scriptet om til et joomla modul, virker det pludseligt ikke.

Koden:
<?php

$update = $address = JRequest::getVar('up', '', 'post');

if(isset($up)){
$hello = modHelloWorldHelper::getHello( $update );
echo $hello;
}
$border = $address = JRequest::getVar('order', '', 'get');

if(isset($border)){
  $order = $border;
}else{
  $order = "torder";}

$data = $address = JRequest::getVar('data', '', 'get');

$col = $address = JRequest::getVar('col', '', 'get');

echo $col;
echo $data;

if($col=="hjemmehold"){
$list = "WHERE $col='$data' OR udehold='$data'";
}
else {
if( isset($data)){
$list = "WHERE $col='$data'";}
else{ $list = NULL; }
}
// Make a MySQL Connection
mysql_connect("sivarajah.dk.mysql", "sivarajah_dk", "juventus") or die(mysql_error());
mysql_select_db("sivarajah_dk") or die(mysql_error());
// Get all the data from the "example" table
$result = mysql_query("SELECT * FROM kkp0910 $list ORDER BY $order")
or die(mysql_error());

echo "<table border='1'>";
echo "<tr> <th><a href=\"{$PHP_SELF}?order=knr\">Kampnummer</a></th> <th><a href=\"{$PHP_SELF}?order=turnering\">Turnering</a></th> <th><a href=\"{$PHP_SELF}?order=runde\">Runde</a></th> <th>Kamp</th> <th><a href=\"{$PHP_SELF}?order=torder\">Tidspunkt</a></th> <th>resultat</th> <th>Opdater</th></tr>";

while ($row = mysql_fetch_array( $result ))

{
echo "<tr><td>";
echo "<a href=\"{$PHP_SELF}?col=knr&amp;data={$row['knr']}\">{$row['knr']}</a>";
echo "</td><td>";
echo '<a href="'.$PHP_SELF.'?col=turnering&data='.$row['turnering'].'">'.$row['turnering'].'</a>';
echo "</td><td>";
echo '<a href="'.$PHP_SELF.'?col=runde&data='.$row['runde'].'">'.$row['runde'].'</a>';
echo "</td><td>";
echo "<a href=\"{$PHP_SELF}?col=hjemmehold&amp;data={$row['hjemmehold']}\">{$row['hjemmehold']}</a> - <a href=\"{$PHP_SELF}?col=hjemmehold&amp;data={$row['udehold']}\">{$row['udehold']}</a>";
echo "</td><td>";
echo $row['tidspunkt'];
echo "</td><td>";
echo $row['resultat'];
echo "</td><td>";
echo "<a href=\"{$PHP_SELF}?up=true&amp;dataup={$row['knr']}\">UD</a>";
echo "</td></tr>";
}
echo "</table>";

class modHelloWorldHelper
{
    function getHello( $update )
    {
    // Make a MySQL Connection
    mysql_connect("sivarajah.dk.mysql", "sivarajah_dk", "juventus") or die(mysql_error());
    mysql_select_db("sivarajah_dk") or die(mysql_error());
   
        $result = mysql_query("SELECT orgurl FROM kkp0910 WHERE knr='$update'")
or die(mysql_error());
$orgurl = mysql_fetch_array( $result );
echo $orgurl['orgurl'];
//$raw = file_get_contents($orgurl['orgurl']);

$newlines = array("\t","\n","\r","\x20\x20","\0","\x0B");

$content = str_replace($newlines, "", html_entity_decode($raw));

$start = strpos($content,'<table cellspacing="0" class="dbustandard stripes srDefault srMatchInformation">');

$end = strpos($content,'</table>',$start);

$table = substr($content,$start,$end-$start);

preg_match_all("|<td class=\"c02\"(.*)</tr>|U",$table,$rows);

    $tidraw = $rows[0][4];
    $resraw = $rows[0][8];

$tid = strip_tags($tidraw);
$res = strip_tags($resraw);

// Insert a row of information into the table "example"
$example = mysql_query("UPDATE kkp0910 SET tidspunkt='$tid', resultat='$res' WHERE knr='$update'")
or die(mysql_error()); 

return "Data Inserted!";
    }
}
?>

Som det kan ses, så bruger jeg jrequest i stedet for $_GET, men det burde vel ikke være et problem?
Fejlen lyder således:
"Data Inserted!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 '='' ORDER BY' at line 1"

Håber der er en der kan hjælpe mig.
Avatar billede fatal85 Nybegynder
06. juli 2010 - 20:26 #1
Ok, har skiftet kodeordet for databasen. Utroligt man ikke kan redigere et spørgsmål på eksperten.
Avatar billede majbom Novice
06. juli 2010 - 20:40 #2
udskriver den noget, der hvor du echoer "data"? umiddelbart ser det ud til den er tom...

prøv at udskrive din query inden du fyrer den af:

$query = "SELECT * FROM kkp0910 $list ORDER BY $order";
echo $query;
$result = mysql_query($query)
or die(mysql_error());
Avatar billede fatal85 Nybegynder
06. juli 2010 - 21:29 #3
hmm jo, det havde du ret i den. Den er tom :S
Men scriptet virker som bare ren php version. Måske jeg har ændret alt for meget og ikke har kunne overskue det.
Avatar billede fatal85 Nybegynder
06. juli 2010 - 21:35 #4
ok, så hvad jeg havde prøvet at ændre.

$border = $address = JRequest::getVar('order', '', 'get');

Ved ikke lige hvorfor jeg laver dobbelt definering af en variabel :P

Men hvis jeg prøver at lave en JRequest::getVar('order', '', 'get'); direkte i isset() som jeg gjorde med $_get i den oprindelige kode, så giver den mig denne fejl:

Fatal error: Can't use function return value in write context
Avatar billede majbom Novice
06. juli 2010 - 21:57 #5
det er så fordi du ikke kan bruge en funktion inde i en isset

du kan jeg bare sætte variablen til returværdien fra funktionen og derefter tjekke om variablen er tom i stedet for at tjekke om den er sat.

i og med at du skriver $variabel = funktion(); vil din variabel være defineret, og isset vil returnere true - også selvom $variabel er tom...
Avatar billede fatal85 Nybegynder
06. juli 2010 - 22:15 #6
nåå på den måde. Har du en ide til hvordan man kunne lave en if(isset($var)) på en anden måde så?
Avatar billede fatal85 Nybegynder
06. juli 2010 - 22:17 #7
ja eller rettere f(isset($_get))
Avatar billede majbom Novice
06. juli 2010 - 22:22 #8
som sagt er der ingen grund til at bruge isset, når du definerer variablen lige ovenfor...

bruge derfor empty for at tjekke om variablen er tom
Avatar billede fatal85 Nybegynder
11. juli 2010 - 13:12 #9
Splazz du er en gud til php :P Opretter du et svar?
Avatar billede majbom Novice
11. juli 2010 - 14:53 #10
kommer her :)
Avatar billede majbom Novice
11. juli 2010 - 16:27 #11
tfp! :)
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