Data weergeven of verbergen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Robert-Jan De Vries

Robert-Jan De Vries

06/09/2008 10:02:00
Quote Anchor link
Hey,

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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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>";
       ?>



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
 
PHP hulp

PHP hulp

23/11/2024 14:21:40
 
Loran DP

Loran DP

06/09/2008 10:05:00
Quote Anchor link
zet even alles tussen tags.
 
Robert-Jan De Vries

Robert-Jan De Vries

06/09/2008 10:21:00
Quote Anchor link
Is ie zo beter?
 
Emmanuel Delay

Emmanuel Delay

06/09/2008 11:41:00
Quote Anchor link
Plak die sql eens in phpMyadmin, zie eens of dat fouten maakt.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
mysql_query("UPDATE mensen SET adres='0' SET postcode=''  WHERE id='".$_GET["id"]."'");
?>


Maak daar eens van
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
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
 
Robert-Jan De Vries

Robert-Jan De Vries

06/09/2008 11:56:00
Quote Anchor link
postcode="" is een typefout van mij, dat moet ook gewoon postcode="0" zijn.

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.
 
Frank -

Frank -

06/09/2008 11:59:00
Quote Anchor link
robert-jan schreef op 06.09.2008 11:56:
postcode="" is een typefout van mij, dat moet ook gewoon postcode="0" zijn.
En welke straat hoort hier dan bij? Bij mijn weten is er geen postcode 0, dat staan dan fout in jouw database.

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.
 
Emmanuel Delay

Emmanuel Delay

06/09/2008 12:14:00
Quote Anchor link
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?
 
Robert-Jan De Vries

Robert-Jan De Vries

06/09/2008 12:17:00
Quote Anchor link
Dit is het deel code van het gegevens beheer wat de persoon zelf doet

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>";

?>


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.
 
Robert-Jan De Vries

Robert-Jan De Vries

06/09/2008 12:20:00
Quote Anchor link
Misschien handig om te weten:

In mysql

postcode varchar(255) latin1_swedish_ci Nee

zo staat hij in de database.
 
Frank -

Frank -

06/09/2008 12:34:00
Quote Anchor link
robert-jan schreef op 06.09.2008 12:20:
Misschien handig om te weten:

In mysql

postcode varchar(255) latin1_swedish_ci Nee

zo staat hij in de database.
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.

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 De Vries

Robert-Jan De Vries

06/09/2008 12:39:00
Quote Anchor link
Ja, daar heb je een punt haha. Meteen even aangepast. Maar dat lost het probleem niet op obv. Wel scherp :)
 
Jurgen assaasas

Jurgen assaasas

06/09/2008 13:30:00
Quote Anchor link
pgFrank schreef op 06.09.2008 12:34:
robert-jan schreef op 06.09.2008 12:20:
Misschien handig om te weten:

In mysql

postcode varchar(255) latin1_swedish_ci Nee

zo staat hij in de database.
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.

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 ;)
 
Emmanuel Delay

Emmanuel Delay

06/09/2008 13:37:00
Quote Anchor link
Wel, scrijf dan een andere if conditie:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
if($data["adres_verborgen"] == 0)
?>


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
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.