Gå til innhold

Problemer med og endre felter i tabeler


Anbefalte innlegg

Hei, jeg har et problem med en kode.

Jeg driver og lager administrator system til et annonse script, men når jeg skal endre felter i tabelene i databasen vil den ikke gjøre det

 

Feilmelding:

 

Klikk for å se/fjerne innholdet nedenfor
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 'adurl = 'http://www.anonnselink.no/', WHERE adID = 2' at line 11

 

Jeg bruker dette scriptet på bildegalleriet mitt også, og der er det ingen problemer.

så jeg har ingen anelse om hva det kan være.

 

Her er scriptet:

 

Klikk for å se/fjerne innholdet nedenfor
PHP

<?php

 

//Har tatt bort tilkoblingen til databasen, siden det ikke er feilen

 

 

$id $_GET['id']; // Hent produktID for bruk lenger ned.

 

 

 

if($_POST['submit']){ // Hvis brukeren har trykt på submit knappen, legg til i databasen.

 

$sql "UPDATE ads SET

 

adID = '".$_POST['adID']."',

 

alt = '".$_POST['alt']."',

 

url = '".$_POST['url']."',

 

aktiv = '".$_POST['aktiv']."'

 

adurl = '".$_POST['adurl']."', 

 

WHERE adID = ".$id;

 

mysql_query($sql$db) or die(mysql_error()); // Kjør spørringen som legger inn i databasen.

 

echo "Bildet oppdatert!<br>";

 

}

 

 

 

// Henter ut produktinfo og legger det inn i et recordset ($result)

 

$sql "select * from ads WHERE adID='".$id."' ORDER BY adID";

 

$result mysql_query($sql,$db) or die(mysql_error());

 

echo "<table><tr><td>";

 

 

 

// Henter ut info fra recordsettet og leggerden inn i variabler. 

 

// Dette trenger du egentlig ikke å gjøre siden du kan referere til dem

 

// direkte med $row['feltnavn']. 

 

// Du trenger heller ikke å bruke en løkke (while, i dette tilfellet) pga

 

// at du alltid vil få kun 1 post. Kun når du får flere poster at du trenger 

 

// en løkke. F.eks. når du skal hente ut alle produktene å lage en liste av dem.

 

 

 

$row mysql_fetch_array($result); // Henter ut infoen å legger dem inn i en array (variabel)

 

 

 

// Disse neste 4 linjene trenger du som sagt egentlig ikke. Hvis du tar dem bort må du

 

// forandre koden lenger ned på siden til å referere direkte til $row variabelen.

 

$adID "".$row['adID']."";

 

$alt "".$row['alt']."";

 

$url "".$row['url']."";

 

$aktiv "".$row['aktiv']."";

 

$adurl "".$row['adurl']."";

 

?>

 

 

<!-- Viktig at alle kontrollene (tekstbokser, tekstfelt, avkrysningsboks etc. får et navn. name="feltnavn" -->

 

 

 

<form action="<?php echo $_SERVER['PHP_SELF']."?id=".$id?>" method="post">

 

<fieldset>

 

<legend>Endre annonse info. </legend>

 

<dl>

 

<dt>adID:

 

<dd><input type="text" name="adID" value="<?php echo $adID?>"/>

 

</dd>

 

</dt>

 

<dt>Alt:

 

<dd>

 

<textarea name="alt" cols="55" rows="8"><?php echo $alt?> </textarea>

 

</dd>

 

</dt>

 

<dt>bilde URL:

 

<dd><input type="text" name="url" value="<?php echo $url?>"/></dd>

 

</dt>

 

<dt>Aktiv*:

 

<dd><input type="text" name="aktiv" size="" value="<?php echo $aktiv?>"/></dd>

 

</dt>

 

<dt>anonnsen skal peke til url:

 

<dd><input type="text" name="adurl" size="" value="<?php echo $adurl?>"/></dd>

 

</dt>

 

<dt><br /><input type="hidden" name="adID" value="<?php echo $id?>"/><input type="submit" name="submit" value="Lagre" />

</dt>

 

</dl>

* = Vis aktiv la feltet vere blank, vis ikke aktiv skriv 'Nei' i feltet

</fieldset>

 

</form>

Lenke til kommentar
Videoannonse
Annonse
UPDATE ads SET adID = '2', alt = 'annonsetekst ', url = '/ad/tba.jpg', aktiv = '' adurl = 'http://www.annonselink.no/', WHERE adID = 2You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'adurl = 'http://www.annonselink.no/', WHERE adID = 2' at line 11

Lenke til kommentar

Håper den som skal bruke dette skriptet er klar over at tegn som #,--,'," osv. kan føkke opp en del så han/hun unngår det.

 

Ettersom du bruker mysql kan du i det minste bruke mysql_real_escape_string()?

 

og hvorfor skriver du slik:

$adID = "".$row['adID']."";
$alt = "".$row['alt']."";
$url = "".$row['url']."";
$aktiv = "".$row['aktiv']."";
$adurl = "".$row['adurl']."";

Når du kan skrive slik?

$adID = $row['adID'];
$alt = $row['alt'];
osv..

 

Du starter en tabell som aldri blir avsluttet eller brukt, men antar du skal printe ut annonsene her etterhvert?

Lenke til kommentar

Dette er et script som jeg har modifisert etter mitt bruk, så lenge det funker så er jeg fornøyd :)

Dette scriptet blir brukt på den delen av siden som folk ikke kommer til og være (forhåpentligvis) så vis det blir problemer så skal jeg fikse eller lage et nytt script!

 

Men er enig der, det er noen ting i scriptet som kunne vært gjort mye enklere..

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...