PHP - Variabele in SQL

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Beste mensen,

Allereerst, ik heb gezocht op google en hier op het forum maar heb helaas niet gevonden.
In het kort:
Situatie:
Voor een website moeten er 15 foto's geupload kunnen worden. De bestandsnamen moeten worden weggeschreven in de database. Het wegschrijven naar de db lukt, enkel niet op de manier zoals ik het wil.

Wat wil ik
Ik heb een loopje gemaakt waarin de bestanden worden geüpload (wat goed gaat). De bestandsnamen moeten in de db komen om ze zo vervolgens weer op te roepen op andere pagina's. Dat gaat niet goed.

Huidige code

Hier het stukje v.d. code waar het om gaat en wat ik nu heb:

for ($f=1; $f<=15; $f++)
{
if (!move_uploaded_file($HTTP_POST_FILES['foto'.$f]['tmp_name'], $HTTP_SERVER_VARS['DOCUMENT_ROOT'].'/AImages/'.$date.$HTTP_POST_FILES['foto'.$f]['name']))
{}
else
{
$foto = $date.$HTTP_POST_FILES['foto'.$f]['name'];

$sql = "UPDATE Activities SET AP.$f = '$foto' WHERE AID = '$aid'";

$A_U = mysql_query("$sql");
mysql_query($A_U);


Het stukje AP.$f werkt niet. Als ik AP1 (wat de entiteit v.d. tabel Activities betreft) invoer, gaat het prima. (AP1 t/m AP15 zijn de entiteiten waarin de bestandsnamen v.d. activiteiten in kunnen worden gezet)

Wat heb ik al gedaan om het op te lossen
AP.$f heb ik al vervangen door AP'.$f' . Ook al heb ik een variabele aangemaakt en deze in het SQL-statement gezet, maar ook dat werkt niet.


Zou iemand mij kunnen helpen met het oplossen van dit probleem.

Alvast heel hartelijk bedankt.

Acties:
  • 0 Henk 'm!

  • Paxlie
  • Registratie: Oktober 2000
  • Laatst online: 23-11-2024

Paxlie

chaos en inslag

$sql = "UPDATE Activities SET AP.$f = '$foto' WHERE AID = '$aid'";

veranderen naar:

$sql = "UPDATE Activities SET AP".$f." = '$foto' WHERE AID = '$aid'";

Volgens mij moet het dan werken

Wie werd waar wanneer geboren en waarom werd hij door wie hoe genoemd?
braque© zijn is een keuze


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 10:03

Creepy

Tactical Espionage Splatterer

Door je query naar het scherm af te drukken zie je al snel dat je een . in je query hebt staan (AP.1). Door een beetje te gaan debuggen moet je vrij snel zelf achter dit soort fouten kunnen komen ;)
Zie ook P&W FAQ - Leer **** debuggen!!

Als extraatje:
code:
1
$A_U = mysql_query("$sql");

De "'s zijn hier totaal overbodig aangezien je de complete query in een variabele hebt staan

[ Voor 24% gewijzigd door Creepy op 05-03-2006 21:27 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • Psychokiller
  • Registratie: Oktober 2001
  • Niet online
Ik meen dat er voor HTTP_SERVER_VARS en HTTP_POST_FILES de nieuwere $_SERVER en $_FILES waren ook nog, hoewel hetzelfde werkend bij mijn weten en hebben verder niks met het probleem te maken. Het viel me op toevallig :)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hartelijk dank voor jullie tips en trucs.
De code van Paxlie heb ik geprobeerd, maar dat werkt helaas (ook) niet.

De tip van het debuggen ga ik zeker toepassen. Bedankt Creepy! Helaas is m'n probleem nog niet opgelost. Hebben jullie misschien nog ideeën?

Acties:
  • 0 Henk 'm!

Verwijderd

Hallo,

Je kunt natuurlijk altijd een stringreplace uitvoeren:
$sql = "blahblah AP[vervolg] = $foto blahblah";
$sql = str_replace ( "[vervolg]" , $f , $sql );


Is misschien niet de meest nette manier, maar op deze manier kun je wel dit soort problemen oplossen.

groetjes
Pagina: 1