Versio

foto verwijderen uit mysql database

Overzicht Reageren

Peer Hems

Peer Hems

25/01/2012 14:21:48
Quote Anchor link
Hallo,

ik wil door middel van een php script een lijst laten zien met daar achter een knop of een foto te verwijderen.
Echter maakt de database geen verbinding, maar de reden daarvoor kan ik niet vinden.

Misschien kan iemand mij helpen?


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
<?php
ini_set('display_errors', 0); // 0 = uit, 1 = aan
error_reporting(E_ALL | E_STRICT);

mysql_connect("localhost" , "xxx" , "xxx");

mysql_select_db('foto');

$query = "SELECT woon
          FROM links
         "
;

if(($result = mysql_query($query)) === false)
{

    echo 'Error: '.mysql_error().'<br />'.$query;
}

elseif(($aantalrijen = mysql_num_rows($result)) < 1)
{

    echo 'Er zijn geen gegevens opgehaald';
}

else
{
    $lijst = '<form action="verwijderwoon.php" method="post">';
    $row = mysql_fetch_assoc($result)

    $waarde = 0;
    while($row = mysql_fetch_assoc($result)){

           // Voeg je record toe
           $lijst .= $row['woon'];


           $lijst .= <input type="checkbox" name="vehicle" value="$waarde" />;
           $waarde++;
    }


    $lijst .= <input type="submit" value="Submit" />
 <
/form>;

    echo $lijst;
}

?>


Toevoeging op 25/01/2012 15:27:23:

Of hoort dit thuis bij het php gedeelte?
 
PHP hulp

PHP hulp

24/05/2012 17:24:52
Gesponsorde koppelingen:
 
Kris Peeters

Kris Peeters

25/01/2012 15:37:50
Quote Anchor link
ini_set('display_errors', 0); // 0 = uit, 1 = aan

...


Je zou misschien beter je error reporting aan zetten; er zitten nog syntax errors in je script.
Eerst die oplossen, dan zien we wel of er ook inhoudelijk fouten zijn.

Strings moeten tussen aanhalingstekens (enkele of dubele).
Dit kan uiteraard niet

$lijst .= <input type="checkbox" name="vehicle" value="$waarde" />;
 
- SanThe -

- SanThe -

25/01/2012 15:43:18
Quote Anchor link
Zet eerst regel 2 eens op 1 zodat de errors te zien zijn. Verder haal je het eerste record op om er vervolgens niks mee te doen op regel 24. Regels 33, 37 en 38 zullen errors geven.
Gewijzigd op 25/01/2012 15:43:43 door - SanThe -
 
Peer Hems

Peer Hems

26/01/2012 11:02:41
Quote Anchor link
Het is inmiddels gelukt..
Ik heb alleen nog een ander vraagje..

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
<?php
ini_set('display_errors', 0); // 0 = uit, 1 = aan
error_reporting(E_ALL | E_STRICT);

mysql_connect("localhost" , "xxx" , "xxx");

mysql_select_db('foto');


if ($_POST['19'] == true) {
$fototag = $_POST['119'];
$query = "UPDATE links
        SET woon = ''
        WHERE woon = '"
.$fototag."' ";
        
        if(($result = mysql_query($query)) === false)
    {

    echo 'Error: '.mysql_error().'<br />'.$query;
    }

    else {
    $resultaat = 'De foto(s) is/zijn verwijderd.';
    }

}


if ($_POST['1'] == true) {
echo test;
}


if ($_POST['2'] == true) {
echo test;
}


echo $resultaat;
?>


Hij geeft wel de melding dat het gelukt is, maar hij heeft de de tabel niet geupdate..
Wat doe ik fout?
 
Jurgen B

Jurgen B

26/01/2012 11:23:13
Quote Anchor link
Ik weet niet wat je naamgeving is in het formulier, maar je kijkt eerst of $_POST['19'] true is (bedenk hier een betere controle voor, bijv string length na een trim), en daarna haal je uit $_POST['119'] de $fototag op. Met hetgeen wat hier staat zou ik zeggen dat daar dus ook 19 moet staan.
 
Roel van de Water
Moderator

Roel van de Water

26/01/2012 11:44:04
Quote Anchor link
Of je gebruikt fatsoenlijke namen, want dit slaat natuurlijk nergens op.
 
Kris Peeters

Kris Peeters

26/01/2012 11:47:16
Quote Anchor link
$_POST['19']

Net zoals bij de naam van variabelen, zorg dat de index begint met een letter of een underscore. Niet met een cijfer.

Allemaal aanpassen; in je formulier en in de verwerking er van.



Verder snap ik niet wat je van plan bent.
Wat is de tabel links? Wat staat daar in? Wat doet die cel woon daar?
Gewijzigd op 26/01/2012 11:48:18 door Kris Peeters
 
Peer Hems

Peer Hems

26/01/2012 12:47:08
Quote Anchor link
in de tabel links staan linkjes.
Daar moet gewoon een vakje moet leeg gemaakt worden.
De namen van de variabelen kloppen wel.

ik wilde de post variabele eerst andere naam geven, maar dit werkt in mijn toepassing wel goed.
Het probleem zit hem denk ik in de query..

Toevoeging op 26/01/2012 12:48:45:

hij update het vakje momenteel niet..

Toevoeging op 26/01/2012 13:22:23:

Nog even ter toelichting..
In de cel staat een link naar de desbetreffende foto.
De naam van deze foto komt binnen via post 119. en de foto wordt geselecteerd met post 19.
Dit is het nummer van de foto, (foto 19).

Het probleem is nu dat hij de link niet gewoon weg haalt..
dus het vakje leeg maakt.
Verwijderen is niet de bedoeling.
Ik wil het vakje zelf behouden.
 
Kris Peeters

Kris Peeters

26/01/2012 14:16:13
Quote Anchor link
Weet je wat je voorlopig doet ...
op lijn 15, onder $query = " ...

Zet daar eens:
echo $query;

en zie eens of de query doet wat je verwacht.

-----

Ik raad je toch aan om je naamgeving om te gooien. Zorg dat de naam iets zegt over wat je wil doen. Volg de goede raad aan die men je hier geeft.

Als ik het ongeveer begrijp, heb je ergens een foto. Dan heb je verschillende linkjes, waarbij een veld verwijst naar die foto.

Uit de naamgeving van je variabelen en indexen, kan je dat absoluut niet uitmaken.
Wat "woon" met een "fototag" te maken heeft ...

Toon anders ook eens je formulier.

-----

Peer Hems op 26/01/2012 12:47:08:
... Verwijderen is niet de bedoeling.
Ik wil het vakje zelf behouden.

Wat blijft er dan over? Een link die nergens meer naar wijst. Blijft er dan iets interessants over in die link?
Gewijzigd op 26/01/2012 14:18:37 door Kris Peeters
 
Peer Hems

Peer Hems

26/01/2012 14:30:05
Quote Anchor link
bedankt voor de hulp alvast.
Ik krijg dit als uitkomst van de query, wat dus niet goed is.

UPDATE links SET woon = '' WHERE woon = '

waar kan dit aan liggen.

Het feit waarom ik niet wil verwijderen is dat ik in de lijn in de tabel nog meer heb staan wat er niet uit moet.
Dus ik wil alleen het vakje leeg halen..
 
Kris Peeters

Kris Peeters

26/01/2012 14:32:20
Quote Anchor link
Het lijkt er dus op dat $_POST['119'] leeg blijft.

Dus dat je ergens iets hebt als:

<input name="119" .../> Foto tag

en dat dat dus niet werkt. Geef je indexen een naam die begint met een letter of met _ .
 
Peer Hems

Peer Hems

26/01/2012 14:40:12
Quote Anchor link
kan ik hem dan wel op laten lopen met $waarde++;?

Toevoeging op 26/01/2012 14:42:46:

Ik heb de fout gevonden, het ligt niet aan de namen.
Het probleem is dat er in een variabele een ", waardoor hij het input gedeelte al afsluit of iets dergelijks..
Kan ik dit op ene manier omzeilen?

Kijk maar naar uitkomst post variabele:
Array
(
[100] => <a href=
[101] => <a href=
[102] => <a href=
[103] => <a href=
[104] => <a href=
[105] => <a href=
[106] => <a href=
[107] => <a href=
[108] => <a href=
[109] => <a href=
[110] => <a href=
[111] => <a href=
[112] => <a href=
[113] => <a href=
[114] => <a href=
[115] => <a href=
[116] => <a href=
[117] => <a href=
[18] => on
[118] => <a href=
[19] => on
[119] => <a href=
)

Toevoeging op 26/01/2012 14:44:24:

Hij doet dit overigens op de orginele script pagina wel goed.
Als ik daar de post variabele uitlees, dan heeft hij daar geen last van..

Toevoeging op 26/01/2012 14:58:17:

Iemand enig idee?
Gewijzigd op 26/01/2012 14:43:17 door Peer Hems
 



Overzicht Reageren

Get Adobe Flash player