ben beetje aan het testen met databases.
Maar het standaardbegin lukt me nog niet echt.
Ik ben bijvoorbeeld begonne met een scriptje te schrijven waardoor het ip van de bezoeker van een pagina wordt gepost in de database.
Hou niet teveel rekening met veiligheid en dergelijke. Ik ben voorlopig al blij wanneer het ip wordt gepost.
Dit is wat ik heb geschreven:

<?php


/*Vul hier je hostname, user, password en database in.*/

define('SQL_HOST','localhost');

define('SQL_USER','blabla');

define('SQL_PASS','youwish');

define('SQL_DB','naamdb');

$conn = mysql_connect(SQL_HOST, SQL_USER, SQL_PASS) or die(' Kan niet met database verbinden; ' . mysql_error());

mysql_select_db(SQL_DB, $conn) or die('Kan geen database selecteren; ' . mysql_error());

if (isset($_GET['$REMOTE_ADDR'])) {
$ip = $REMOTE_ADDR;
$query = "INSERT INTO mobystats(ip) VALUES('$ip')";

mysql_query($query, $conn) or die(mysql_error());
}
?>

tabel stats heeft twee velden:
id (primary key int auto increment)
ip (text not null)

wat doe ik fout?
<?php
/*Vul hier je hostname, user, password en database in.*/
define('SQL_HOST','localhost');
define('SQL_USER','blabla');
define('SQL_PASS','youwish');
define('SQL_DB','naamdb');

$conn = mysql_connect(SQL_HOST, SQL_USER, SQL_PASS) or die(' Kan niet met database verbinden; ' . mysql_error());
mysql_select_db(SQL_DB, $conn) or die('Kan geen database selecteren; ' . mysql_error());

$ip = $_SERVER['REMOTE_ADDR'];
$query = "INSERT INTO mobystats(ip) VALUES('$ip')";
mysql_query($query, $conn) or die(mysql_error());
?>
mmm, dit werkt al. Hartelijk dank.
Blij te zien dat ik toch niet zo een heel grote fout heb gemaakt.
Klopt. Het enige dat er vreemd aan was, was dat je er in je script van uit ging dat je het ip adres uit de GET variabele kon krijgen, terwijl hij gewoon rechtstreeks op te vragen is.
Paar kleine tips:

ip (text not null)
Daar kan heel wat in en een ip nummer inclusief puntjes is nooit groter dan 15 characters dus een varchar(15) is groot genoeg.

veiligheid
Ik heb er respect voor dat je daar nog niet te veel aandacht aan besteedt, maar ga je daar in de toekomst wél mee bezighouden, er zijn namelijk genoeg (censuur) die graag je database om zeep helpen.

Veel succes verder.
ok, ik krijg de gegevens nu al in mijn database. Nu zou ik ze er ook graag terug uitkrijgen.
Dit is wat ik heb geschreven:

<?php


/*Vul hier je hostname, user, password en database in.*/

define('SQL_HOST','localhost');

define('SQL_USER',blabla');

define('SQL_PASS','blabla');

define('SQL_DB',blabla');


$conn = mysql_connect(SQL_HOST, SQL_USER, SQL_PASS) or die(' Kan niet met database verbinden; ' . mysql_error());
mysql_select_db(SQL_DB, $conn) or die('Kan geen database selecteren; ' . mysql_error());

if ($ip = $_SERVER['REMOTE_ADDR']){
$query = "INSERT INTO stats(ip) VALUES('$ip')";
mysql_query($query, $conn) or die(mysql_error());
}

else {

$query = "SELECT * FROM stats ORDER BY id DESC";

$result = mysql_query($query) or die("Failed");

if (mysql_num_rows($result) == 0) {
echo"Database is empty";
}


else {

echo '.$result';

}

}
?>

Bedoeling is dus dat de opgeslagen ipadressen uit de database worden gehaald en in kolomvorm worden weergegeven. Momenteel wordt er niets weergegeven en ik snap niet echt waarom niet. Om ze in kolomvorm weer te geven, hoe moet ik dat juist aanpakken? Iets in de aard van: for(i=0; i<$id; i++){...?
Kijk eens goed naar de kleuren je mist nl een ' voor blabla


<?php


/*Vul hier je hostname, user, password en database in.*/ 

define('SQL_HOST','localhost'); 

define('SQL_USER','blabla'); 

define('SQL_PASS','blabla'); 

define('SQL_DB','blabla'); 


 $conn = mysql_connect(SQL_HOST, SQL_USER, SQL_PASS) or die(' Kan niet met database verbinden; ' . mysql_error()); 
    mysql_select_db(SQL_DB, $conn) or die('Kan geen database selecteren; ' . mysql_error()); 
    
if ($ip = $_SERVER['REMOTE_ADDR']){
    $query = "INSERT INTO stats(ip) VALUES('$ip')";
    mysql_query($query, $conn) or die(mysql_error());
}

else {

$query = "SELECT * FROM stats ORDER BY id DESC";

    $result = mysql_query($query) or die("Failed");

    if (mysql_num_rows($result) == 0) { 
        echo"Database is empty"; 
    }


    else {?>
<td>
Resultaten
</td>
<?php

        while($info=mysql_fetch_array($result))
{?>
<tr>
<td>
<?php echo $info['ip']; ?>
</td>
<tr>
<?php
    }

}
?> 
nu krijg ik volgende error:

Parse error: syntax error, unexpected $end in /home/mobyhost/public_html/mobystatsss.php on line 51

Heb al aanhalingsteken proberen te plaatsen op lijn 50, maar zonder resultaat.
Moet nog een } aan het einde
sorry voor het late antwoord, maar het extra } lost niets op. Het klopt wel dat het er moet staan, maar dat lost het probleem blijkbaar niet op.
Ik krijg volgende error:
Parse error: syntax error, unexpected $end in /home/mobyhost/public_html/mobystatsss.php on line 52

dit is het script dat ik draai:

<?php


/*Vul hier je hostname, user, password en database in.*/

define('SQL_HOST','localhost');

define('SQL_USER','blabla');

define('SQL_PASS','blabla');

define('SQL_DB','blabla');



$conn = mysql_connect(SQL_HOST, SQL_USER, SQL_PASS) or die(' Kan niet met database verbinden; ' . mysql_error());
mysql_select_db(SQL_DB, $conn) or die('Kan geen database selecteren; ' . mysql_error());

if ($ip = $_SERVER['REMOTE_ADDR']){
$query = "INSERT INTO stats(ip) VALUES('$ip')";
mysql_query($query, $conn) or die(mysql_error());
}

else {

$query = "SELECT * FROM stats ORDER BY id DESC";

$result = mysql_query($query) or die("Failed");

if (mysql_num_rows($result) == 0) {
echo"Database is empty";
}


else {?>
<td>
Resultaten
</td>
<?php

while($info=mysql_fetch_array($result))
{?>
<tr>
<td>
<?php echo $info['ip']; ?>
</td>
<tr>
<?php
}

}
}
?>
even voor de duidelijkheid:
<?php if ($ip = $_SERVER['REMOTE_ADDR']){ ?>
is altijd waar, je zal dus == moeten gebruiken, maar ik snap niet watje wilt...

Reageren