Query fout

Status
Niet open voor verdere reacties.

ginojo

Gebruiker
Lid geworden
7 sep 2010
Berichten
912
Hallo allemaal.

Ik ben met een teler voor mijn pagina's bezig. Ik heb een tabel aangemaakt "teller".
Met 2 kolommen "pagina" en "bekeken". In pagina wordt de pagina naam gezet en bij bekeken het aantal keer bekeken. Maar nu kan ik geen goede wuery vinden om deze gegevens op te halen. Iemand?
PHP:
<?php
$db = mysql_connect('XXX','XXX','XXX') or die(mysql_error());
mysql_select_db("XXX", $db);
$sql1="SELECT bekeken FROM teller WHERE pagina='Homepage'";
$result1=mysql_query($sql1);
echo ("$result1");

?>

Alvast bedankt.
Ginojo
 
Als ik me niet vergis, krijg je in plaats van de verwachte waarden nu telkens "array( )" te zien?

Wat hier nog mist, is een mysql_fetch_assoc, Deze zet je query ($result1) om in een array met gegevens. (kan tevens gedaan worden met mysql_fetch_array of mysql_fetch_object)

PHP:
$newResult1 = mysql_fetch_assoc($result1);
echo $newResult1['bekeken'];
 
Laatst bewerkt:
hej, bedankt. Ik moet eerlijk zeggen dat ik dat niet wist. Maar nu zit ik al weer met het volgende probleem. Ik kan nu niets verwijderen. ik heb de volgende code
PHP:
<?php 
if (isset($_GET['del'])) { 
$werqw=$_GET['del'];
$db = mysql_connect('XXX','XXX','XXX') or die(mysql_error());
mysql_select_db("XXX", $db);
mysql_query("DELETE FROM emails WHERE email=$werqw;");

} else { 
} 
?>
Maar hij delete dus niets. Ik ben nog een beetje sql aan het leren, maar meer met php bezig nu. dus daarom weet ikdit niet. :o

Weet jij het?
Ginojo
 
Om eerlijk te zijn heb ik daar zo geen antwoord op.
Wat je zou kunnen proberen, is de variabele $werqw even te echoen om te controleren of dit echt het juiste is, en of deze daadwerkelijk in de tabel staat.

Ik neem aan dat je ook gebruik maakt van PhpMyAdmin of iets dergelijks? Hier kan je ook losse SQL queries uitvoeren, probeer het commando daar eens uit te voeren.

Verder wil ik je nog als tip meegeven om de waarden waarna je zoekt altijd in quotes ( ' ) te zetten. Dan krijg je dus " DELETE FROM emails WHERE email='$werqw' "
En ik weet niet waar je SQL aan het leren bent, maar www.w3schools.com/sql/ biedt een goede uitleg bij de verschillende SQL mogelijkheden.
 
Gebruik altijd mysql_real_escape_string().

Sowieso moet je een script als deze NOOIT online plaatsen, al was het alleen al omdat iedereen hier alle adressen mee kan verwijderen. Als je wilt weten waarom een query niet lukt gebruik je mysql_error().

Zoek voor gebruik de functies die ik noem op op php.net.
 
SvU ik vermoed dat je met "nooit online zetten" bedoeld dat je code op deze manier niet op je website moet zetten omdat het onveilig is? :P

De eerste keer dat ik je post las dacht ik namelijk dat je bedoelde "niet op helpmij.nl posten" en dat lijkt me niet handig als de poster dat nu ook denkt :P
 
SvU ik vermoed dat je met "nooit online zetten" bedoeld dat je code op deze manier niet op je website moet zetten omdat het onveilig is? :P

De eerste keer dat ik je post las dacht ik namelijk dat je bedoelde "niet op helpmij.nl posten" en dat lijkt me niet handig als de poster dat nu ook denkt :P

Klopt, excuus voor eventuele ontstane verwarring.
 
Ja. K snap het. Maar dit staat op de admin page. Dus daar han niet iedereen bij.
 
Nee, je snapt het echt verkeerd. Het beveiligen van je site doe je overal en standaard en dus zonder uitzonderingen. Als je inlogpagina ook zo slecht beveiligd is ben ik zo admin van je site. En als je verderop ook geen waarden escapet (door middel van mysql_real_escape_string of door prepared statements) kan ik zonder al teveel moeite je database slopen, letterlijk, en ook zonder dat ik admin ben.

Even los van andere slordigheden en fouten in die scripts, moet je dit echt consequent overal toepassen. Eerste query:

PHP:
mysql_query("DELETE FROM emails WHERE email=$werqw;");

echo 'Maar dan goed:';

mysql_query("DELETE FROM emails WHERE email='" . mysql_real_escape_string($werqw) ."'");
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan