Ik probeer een sql query uit te voeren in een scriptje van me. Hier moet een veld veranderd worden in de database dit veld verschild per user.
Ik kijk in deze query naar de username in de sessie. In de rij van deze username moet het veld feedurl gevuld worden na de submit maar ook weer veranderd kunnen worden als er al een feedurl in staat.
[code:1:33dfd28d0f]<?php
session_start();
include_once(‘db.php’);
$feedurl = mysql_real_escape_string($_POST[‘feedurl’]);
$username = $_SESSION[‘username’];
$query = mysql_query(‘SELECT * FROM users WHERE username = "’.$username.’" LIMIT 1’);
$query = mysql_fetch_array($query);
$change_feed_url = mysql_query(‘INSERT INTO users (feedurl) WHERE username = "’.$username.’" VALUES ("’.$feedurl.’")’ );
?>[/code:1:33dfd28d0f]
Wat ik dus wil weten is hoe ik deze query moet maken
[code:1:33dfd28d0f]$change_feed_url = mysql_query(‘INSERT INTO users (feedurl) WHERE username = "’.$username.’" VALUES ("’.$feedurl.’")’ ); [/code:1:33dfd28d0f]
bij de change_feed_url wil het dus niet helemaal lukken maar ik begrijp niet goed wat ik nu fout doe met die query. Moet ik misschien UPDATE gebruiken? moet het in een andere volgorde?
Ik ben hier niet zo heul goed in. met veel kloten krijg ik t misschien wel opgelost maar moet dit projectje morgen inleveren dus er zit wat haast achter
Als je single quotes gebruikt wordt het een zgh. literal string. Dat houdt in dat alles wat er in staat als karakter wordt gezien. Als je een $variable er in hebt zitten wordt niet de waarde van die variabele getoond, maar de letterlijke tekst ($variable dus) wordt getoond.
Als je dubbele quotes gebruikt, is dat niet het geval en krijg je de waarde van de variabele. Doorgaans worden voor query strings dubbele quotes gebruikt omdat in de string vaak single quotes voor komen (en dan zou je die moeten escapen).
[quote:3f5155a759="sturb"]Kijk trouwens uit met die back ticks rondom je tabel naam enzo. Die ergeren bij mij alleen maar en ze zijn niet noodzakelijk.[/quote:3f5155a759]
Ik gebruik altijd backticks. Hiermee kun je aangeven wat een veldnaam moet zijn en wat niet. Je hebt bijv. wel eens queries waarin je gereserveerde woorden gebruikt (bijv. status, order, etc). Met gebruik van backticks omzeil je het probleem.