webForumDet fria alternativet

Php-hjälp!

8 svar · 399 visningar · startad av Hamatzu

HamatzuMedlem sedan mars 2005232 inlägg
#1

Hej!

Jag har nu börjat att försöka lära mig php. Men jag har kommit fram till ett litet problem.

echo "| <a href='admin_gb.php?svara=".$rad['id']."'>Svara På Inlägget</a> ";    

if(isset($_GET['svara'])) {
        $lank = mysql_connect($server, $user, $pass);
        $sql = "SELECT * FROM gastbok WHERE id='{$_GET['svara']}'";
        mysql_query("$sql");
    }

Borde inte koden ovanför skriva ut all info om just det id eller har jag fel.

Tacksam för svar.

GunnarDMedlem sedan juni 20014 290 inlägg
#2

Du saknar ett antal rader/funktioner:

Ett enkelt exempel som hämtar från en databas och skriver ut det:

$link=mysql_connect($dbhost, $dbuser, $dbpasswd);
$db=mysql_select_db($dbname, $link);
$query="SELECT * FROM nyheter  ORDER BY tid DESC";
$result=mysql_query($query);
if (!mysql_num_rows($result)) {
        printf("<p>Inga aktuella nyheter funna!</p>\n");
}
while($row=mysql_fetch_array($result, MYSQL_ASSOC)) {
        printf("<dt><b>%s</b></dt>\n", $row["tid"]);
        printf("<dd>%s</dd>\n", $row["text"]);
}
mysql_close($link);

PS: Jag är en gammal C programmerarer ja! :)

aasahMedlem sedan mars 20034 471 inlägg
#3

Re: Php-hjälp!

Förutom det GunnarD påpekar är jag osäker på om detta verkligen funkar?

id='{$_GET['svara']}'";

Borde inte { tolkas som tecknet '{' här eftersom det står i en sträng? :q

Jag skulle skrivit:

id='".$_GET['svara']."'";
HamatzuMedlem sedan mars 2005232 inlägg
#4

Jag löste det själv Jag glömde ju inkludera den filen där jag har databaskopplingarna. :r

MatteMedlem sedan aug. 20002 975 inlägg
#5

Re: Re: Php-hjälp!

aasah skrev:

Förutom det GunnarD påpekar är jag osäker på om detta verkligen funkar?

id='{$_GET['svara']}'";

Borde inte { tolkas som tecknet '{' här eftersom det står i en sträng? :q

Jag skulle skrivit:

id='".$_GET['svara']."'";

Jodå, det fungerar.

Klamrarna är t.o.m. nödvändiga om man har associativt index i en array-variabel inne i en sträng, annars gör man som du föreslår.

Några sätt att göra samma sak på:

echo "text {$_GET['var']} text";
echo "text " . $_GET['var'] . " text";
echo "text $_GET[var] text";

// Med apostrofer måste du alltid bryta ut ur strängen
echo 'text ' . $_GET['var'] . ' text';
aasahMedlem sedan mars 20034 471 inlägg
#6

Åh, TACK, Matte! :birp

HamatzuMedlem sedan mars 2005232 inlägg
#7

Jag har nu ett till problem. Om ni kollar på denna
kod så borde det ju när man trycker på länken
"Svara På Inlägget" rada upp det inlägget som
man trycker på. Det konstiga är att if-satsen med
"radera" funkar men inte den med "svara".

echo "<a href='admin_gb.php?radera=".$rad['id']."'>Radera Inlägget</a> ";
echo "| <a href='admin_gb.php?svara=".$rad['id']."'>Svara På Inlägget</a> ";

	if(isset($_GET['radera'])) {
		$sql = "DELETE FROM gastbok WHERE id='".$_GET['radera']."'";
		mysql_query("$sql");
        echo "<script language='JavaScript'>
             location.href=('admin_gb.php');
             </script>";
    }

    if(isset($_GET['svara'])) {
        $sql = "SELECT FROM gastbok WHERE id='".$_GET['svara']."'";
        mysql_query("$sql");
        die();
    }
aasahMedlem sedan mars 20034 471 inlägg
#8

Felet är här (i SQL-satsen):

$sql = "SELECT FROM gastbok WHERE id='".$_GET['svara']."'";

Det borde stå:

$sql = "SELECT * FROM gastbok WHERE id='".$_GET['svara']."'";
MatteMedlem sedan aug. 20002 975 inlägg
#9

Du måste också hämta resultatet:

    if (isset($_GET['svara'])) {

        $sql = "SELECT * FROM gastbok WHERE id = ".intval($_GET['svara']);
        $result = mysql_query($sql);
        
        if (mysql_num_rows($result) == 0) {
           // Gör något om inte någon rad hittades med detta id.
        }
        
        $row = mysql_fetch_assoc($result);
        
        // Visa inlägget m.m. Värdena finns i arrayen $row.
        
        exit;

    }
125 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)