Data weergeven of verbergen
Ik heb een script waarmee ik gebruikers kan laten kiezen om hun postcode weer te geven of te verbergen. Deze keuze krijgen ze als ze hun gegevens beheren. Echter krijg ik hem niet werkende. Hij ziet wel wat hij moet doen, maar vervolgens geeft hij hem toch weer. Hij herkend dus wel of hij op 1 of 0 staat en hij switched die status ook. Maar verder geeft hij ze wat dan ook weer.
Deel code van gegevens beheer:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<?php
$sql = mysql_query("SELECT * FROM mensen WHERE id='" . $_SESSION["ke_id"] . "'");
$data = mysql_fetch_array($sql);
if($data["adres"] == 1)
echo "<a href='index.php?page=gegevensonline&id=".$data["id"]."'>Klik hier om Adres en postcode te verbergen in uw galerie</a>";
else
{
echo '<br>';
echo "<b>Adres en postcode niet zichtbaar</b>";
echo "</form>";
Deel code van gegevensonline script
if(isset($_GET["go"]))
{
$sql2 = mysql_query("SELECT * FROM mensen WHERE id='".$_GET["id"]."'");
$data2 = mysql_fetch_array($sql2);
if($data2["id"] == $_SESSION["ke_id"])
{
mysql_query("UPDATE mensen SET adres='0' SET postcode='0' WHERE id='".$_GET["id"]."'");
echo "Adres en Postcode zijn nu afgeschermd!";
}
else
{
echo "Er ging iets fout, U bent niet deze kunstenaar.";
}
}
else
{
Weet u zeker dat u deze gegevens wilt afschermen voor het publiek?<br/><br/>
<input type="button" value="Ja" onclick="location.href='index.php?page=gegevensonline&id=php echo $_GET["id"]; &go'">
<input type="button" value="Nee" onclick="location.href='javascript:history.go(-1)'">
Deel van het weergave script
if(isset($_GET["id"]))
{
$con = new verbinding();
$con->connectDB();
$sql = mysql_query("SELECT * FROM mensen WHERE id='" . $_GET["id"] . "'");
$data = mysql_fetch_array($sql);
echo "<table>";
foreach($data as $key => $value)
{
if(!is_numeric($key) && $key != "email" && $key != "geslacht" && $key != "agenda")
{
// Email link maken
if($key == "email")
{
$value = "<a href='mailto:$value'>$value</a>";
}
// website link maken
elseif($key == "website")
{
// checken op http://
if(substr($value,0,7) == "http://")
{
$value = "<a href='$value' target='_blank'>$value</a>";
}
else
{
$value = "<a href='http://$value' target='_blank'>$value</a>";
}
}
$eerste = strtoupper(substr($key,0,1));
$rest = substr($key,1);
echo "<tr><td width=100>$eerste$rest</td><td>$value</td></tr>";
}
}
echo "</table>";
?>
$sql = mysql_query("SELECT * FROM mensen WHERE id='" . $_SESSION["ke_id"] . "'");
$data = mysql_fetch_array($sql);
if($data["adres"] == 1)
echo "<a href='index.php?page=gegevensonline&id=".$data["id"]."'>Klik hier om Adres en postcode te verbergen in uw galerie</a>";
else
{
echo '<br>';
echo "<b>Adres en postcode niet zichtbaar</b>";
echo "</form>";
Deel code van gegevensonline script
if(isset($_GET["go"]))
{
$sql2 = mysql_query("SELECT * FROM mensen WHERE id='".$_GET["id"]."'");
$data2 = mysql_fetch_array($sql2);
if($data2["id"] == $_SESSION["ke_id"])
{
mysql_query("UPDATE mensen SET adres='0' SET postcode='0' WHERE id='".$_GET["id"]."'");
echo "Adres en Postcode zijn nu afgeschermd!";
}
else
{
echo "Er ging iets fout, U bent niet deze kunstenaar.";
}
}
else
{
Weet u zeker dat u deze gegevens wilt afschermen voor het publiek?<br/><br/>
<input type="button" value="Ja" onclick="location.href='index.php?page=gegevensonline&id=php echo $_GET["id"]; &go'">
<input type="button" value="Nee" onclick="location.href='javascript:history.go(-1)'">
Deel van het weergave script
if(isset($_GET["id"]))
{
$con = new verbinding();
$con->connectDB();
$sql = mysql_query("SELECT * FROM mensen WHERE id='" . $_GET["id"] . "'");
$data = mysql_fetch_array($sql);
echo "<table>";
foreach($data as $key => $value)
{
if(!is_numeric($key) && $key != "email" && $key != "geslacht" && $key != "agenda")
{
// Email link maken
if($key == "email")
{
$value = "<a href='mailto:$value'>$value</a>";
}
// website link maken
elseif($key == "website")
{
// checken op http://
if(substr($value,0,7) == "http://")
{
$value = "<a href='$value' target='_blank'>$value</a>";
}
else
{
$value = "<a href='http://$value' target='_blank'>$value</a>";
}
}
$eerste = strtoupper(substr($key,0,1));
$rest = substr($key,1);
echo "<tr><td width=100>$eerste$rest</td><td>$value</td></tr>";
}
}
echo "</table>";
?>
Ergens moet dus de fout zitten. Het lijkt mij dat het in het weergave script zit. Maar ik kan hem daar dus nergens vinden de fout. Wie kan er naar kijken en heeft evt de oplossing? Ik doe nu het overigens door de gegevens standaard niet weer te geven met && $key != "postcode"
Maar ze moeten kunnen kiezen.
Gewijzigd op 01/01/1970 01:00:00 door Robert-Jan De Vries
zet even alles tussen tags.
Is ie zo beter?
Code (php)
1
2
3
2
3
<?php
mysql_query("UPDATE mensen SET adres='0' SET postcode='' WHERE id='".$_GET["id"]."'");
?>
mysql_query("UPDATE mensen SET adres='0' SET postcode='' WHERE id='".$_GET["id"]."'");
?>
Maak daar eens van
Code (php)
1
2
3
2
3
<?php
mysql_query("UPDATE mensen SET adres='0' , postcode='' WHERE id='".$_GET["id"]."'");
?>
mysql_query("UPDATE mensen SET adres='0' , postcode='' WHERE id='".$_GET["id"]."'");
?>
Waarom trouwens adres=0 en postcode="". Is postcode een int? Dan zet je die beter ook op 0 of NULL, naargelang de instellingen.
Trouwens, ik zou die gegevens niet zomaar verwijderen; ik zou een veld adres_verborgen maken en telkens bij de SELECT controleren op dat veld.
Gewijzigd op 01/01/1970 01:00:00 door Emmanuel Delay
Probleem is dat er 4 gegevens zijn die altijd weergegeven moeten worden. Als ik een apart veld aanmaak met adres_verborgen dan moet ik dus twee delen maken eigenlijk. Of is daar een andere oplossing voor?
Verder verwijder ik op deze manier niet de gegevens uit de database. hoe het precies zit weet ik niet meer om eerlijk te zijn. Maar verwijderen die ik niet hiermee.
robert-jan schreef op 06.09.2008 11:56:
En welke straat hoort hier dan bij? Bij mijn weten is er geen postcode 0, dat staan dan fout in jouw database.postcode="" is een typefout van mij, dat moet ook gewoon postcode="0" zijn.
Wanneer je geen gegevens hebt om in te vullen, gebruik dan een NULL. NULL geeft aan dat er geen gegevens zijn, het is leeg. 0 en NULL zijn 2 verschillende dingen.
robert-jan schreef op 06.09.2008 11:56:
Probleem is dat er 4 gegevens zijn die altijd weergegeven moeten worden. Als ik een apart veld aanmaak met adres_verborgen dan moet ik dus twee delen maken eigenlijk. Of is daar een andere oplossing voor?
Sorry, hier volg ik je even niet. Hoe bedoel je?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$sql = mysql_query("SELECT * FROM mensen WHERE id='" . $_SESSION["ke_id"] . "'");
$data = mysql_fetch_array($sql);
if($data["adres"] == 0)
echo "<a href='index.php?page=gegevensonline&id=".$data["id"]."'>Klik hier om Adres en postcode te verbergen in uw galerie</a>";
else
{
echo '<br>';
echo "<b>Adres, postcode, telefoonnummer en e-mail adres niet zichtbaar in galerie</b>";
echo "</form>";
?>
$sql = mysql_query("SELECT * FROM mensen WHERE id='" . $_SESSION["ke_id"] . "'");
$data = mysql_fetch_array($sql);
if($data["adres"] == 0)
echo "<a href='index.php?page=gegevensonline&id=".$data["id"]."'>Klik hier om Adres en postcode te verbergen in uw galerie</a>";
else
{
echo '<br>';
echo "<b>Adres, postcode, telefoonnummer en e-mail adres niet zichtbaar in galerie</b>";
echo "</form>";
?>
Dit stukje: if($data["adres"] == 0) zegt of het zichtbaar of onzichtbaar moet zijn. Als het 0 is dan zijn ze in dit geval zichtbaar en kunnen ze een link klikken om het onzichtbaar te maken, maar als het 1 is dan is het niet zichtbaar en staat er een melding dat het niet zichtbaar is.
In de tabel mensen heb ik het veld "adres" en "postcode" en natuurlijk andere velden staan. Bij adres staat keurig het adres en postcode . Als ik dus gegevens niet wil laten zien dan voer ik het andere script uit met set postcode ='1' alleen dan BLIJFT de postcode in het veld adres intact. Echter hij ziet wel dat hij nu op 1 is en het niet zichtbaar moet zijn.
Alleen in het script wat de gegevens moet weergeven wordt hier schijnbaar geen rekening mee gehouden, daar heb ik dus iets fout zitten. Maar ik zie dus niet goed wat. Zoals gezegd, het is een ouder script en ik weet niet meer hoe ik dit gedaan heb.
In mysql
postcode varchar(255) latin1_swedish_ci Nee
zo staat hij in de database.
robert-jan schreef op 06.09.2008 12:20:
Wow! 255 karakters om een postcode op te slaan, dat is niet mis. In welk land gebruiken ze zulke onmogelijke postcodes? Gewoon de straatnaam en het huisnummer lijkt mij dan veel eenvoudiger, dat is al vele malen korter.Misschien handig om te weten:
In mysql
postcode varchar(255) latin1_swedish_ci Nee
zo staat hij in de database.
In mysql
postcode varchar(255) latin1_swedish_ci Nee
zo staat hij in de database.
Mocht je de postcodes van NL willen opslaan, dan is 6 karakters voldoende, meer tekens staan er niet in een postcode. En nee, een spatie is alleen maar opmaak en sla je dus niet op.
Ja, daar heb je een punt haha. Meteen even aangepast. Maar dat lost het probleem niet op obv. Wel scherp :)
pgFrank schreef op 06.09.2008 12:34:
Mocht je de postcodes van NL willen opslaan, dan is 6 karakters voldoende, meer tekens staan er niet in een postcode. En nee, een spatie is alleen maar opmaak en sla je dus niet op.
robert-jan schreef op 06.09.2008 12:20:
Wow! 255 karakters om een postcode op te slaan, dat is niet mis. In welk land gebruiken ze zulke onmogelijke postcodes? Gewoon de straatnaam en het huisnummer lijkt mij dan veel eenvoudiger, dat is al vele malen korter.Misschien handig om te weten:
In mysql
postcode varchar(255) latin1_swedish_ci Nee
zo staat hij in de database.
In mysql
postcode varchar(255) latin1_swedish_ci Nee
zo staat hij in de database.
Mocht je de postcodes van NL willen opslaan, dan is 6 karakters voldoende, meer tekens staan er niet in een postcode. En nee, een spatie is alleen maar opmaak en sla je dus niet op.
Klopt, dat is toch weer een byte die je zou kunnen besparen ;)
Een adres hoort niet 0 te zijn. Iets verbergen, is niet het zelfde als de informatie verwijderen.
Gewijzigd op 01/01/1970 01:00:00 door Emmanuel Delay