[php] deleten uit mysql met meerdere variabelen

Pagina: 1
Acties:

  • ikker
  • Registratie: Oktober 2001
  • Laatst online: 02-09 16:30

ikker

No Risk No Pain No Fun!!!

Topicstarter
ben ik weer :9

ik heb de volgende souce
PHP:
1
2
3
4
5
6
7
8
9
10
<?
if ($verwijderen) {
    echo $type2;
$query3 = "DELETE FROM geheugen WHERE type = ('$type2')";
    mysql_query($query3);
  
    $link = mysql_pconnect($host,$user,$password);
    mysql_select_db($database);
  }
?>

dit verwijdert keurig de gegevens uit de database, ware het niet dat hij alleen de type controleert. Kan ik er ook voor zorgen dat hij ook naar de andere waarden van type2 kijkt?
type2 heeft de waarden type,mb,mhz.

of kan moet ik dan een sleutel auto_increment toevoegen?

Mijn netwerkje


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

where blaat = iets and blaat2 =iets

kan prima hoor

maar ik weet niet precies wat je bedoeld

Doet iets met Cloud (MS/IBM)


  • ikker
  • Registratie: Oktober 2001
  • Laatst online: 02-09 16:30

ikker

No Risk No Pain No Fun!!!

Topicstarter
de variabele
type2 heeft drie waarden
bijvoorbeeld
Dimm, 128, 133
vervolgens wil ik dat hij bij het verwijderen kijkt naar alle drie de waarden van type2

ik heb het een zo geprobeerd maar tevergeefs :(
PHP:
1
2
3
4
5
6
7
8
9
10
<?
if ($verwijderen) {
    echo $type2;
    $query3 = "DELETE FROM geheugen WHERE type = ('$type2') and mb = ('$type2')";
    mysql_query($query3);
  
    $link = mysql_pconnect($host,$user,$password);
    mysql_select_db($database);
  }
?>

Mijn netwerkje


  • Creepy
  • Registratie: Juni 2001
  • Nu online

Creepy

Tactical Espionage Splatterer

Op dinsdag 13 november 2001 15:34 schreef ikker het volgende:
de variabele
type2 heeft drie waarden
bijvoorbeeld
Dimm, 128, 133
vervolgens wil ik dat hij bij het verwijderen kijkt naar alle drie de waarden van type2

ik heb het een zo geprobeerd maar tevergeefs :(
PHP:
1
2
3
4
5
6
7
8
9
10
<?
if ($verwijderen) {
    echo $type2;
    $query3 = "DELETE FROM geheugen WHERE type = ('$type2') and mb = ('$type2')";
    mysql_query($query3);
  
    $link = mysql_pconnect($host,$user,$password);
    mysql_select_db($database);
  }
?>
type2 heeft 3 waarden.. het is een array???
code:
1
"delete from geheugen where type = \"$type2[0]\" and mb=\"$type[1]\"";

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • Mir
  • Registratie: Maart 2001
  • Niet online

Mir

Je werkt met arrays dus
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?
if ($verwijderen) {
    //echo $type2;
       $query3 = "DELETE FROM geheugen WHERE";
    foreach ($type2 as $sWaarde){
       if ($bFirst){$query3. = " AND"};
       $query3. = " type = '$sWaarde'";
       $bFirst = True;
       
    };
    mysql_query($query3);
    $link = mysql_pconnect($host,$user,$password);
    mysql_select_db($database);
  };
?>

zoiets?
(ffys uit mn hoofd)

  • ikker
  • Registratie: Oktober 2001
  • Laatst online: 02-09 16:30

ikker

No Risk No Pain No Fun!!!

Topicstarter
geen idee of ik arrays gebruik geloof het niet.
de waarde type2 wordt als volgt gevuld:
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
<?
HTML>
<HEAD>
  <TITLE><?php echo $title; ?></TITLE>
</HEAD>
<BODY BGCOLOR="<?php echo $achtergrond_kleur ?>" TEXT="<?php echo $tekst_kleur ?>" LINK="<?php echo $link_kleur; ?>" VLINK="<?php echo $link_kleur; ?>">
  <FONT FACE="Arial">
  <CENTER><FONT SIZE="5" FACE="Arial"><SPAN style="background-color: #3333FF">&amp;nbsp;<?php echo "$koptekst"; ?>&amp;nbsp;</SPAN></FONT></CENTER>
  <CENTER><P><H5>STAAT HET GEHEUGEN AL IN DE LIJST??</H5></P>
  <P><H5>DAN HOEFT U HEM NIET MEER TOE TE VOEGEN ! NATUURLIJK :)</H5></P></center>
  <FORM action="geheugen.php">
  <TABLE WIDTH="50%" ALIGN="" BORDER="0" CELPADDING="5">
    <TR>
      Bestaand geheugen:
    </TR>
    <TR>
      <TD><select multiple name="type2" size="10">
          <?php  
         $query2 = "SELECT type,mb,mhz FROM geheugen ORDER BY type DESC";
         $result = mysql_query($query2);
         
         for ($i = mysql_num_rows($result) - 1; $i >=0; $i--) {
         if (!mysql_data_seek($result, $i)) {
            printf ("Cannot seek to row %d\n", $i);
             continue; 
           }

          if (!($row = mysql_fetch_object($result)))
              continue;
  
            printf ("<OPTION VALUE=\"$row->type, $row->mb, $row->mhz\">%s  %s  %s ", $row->type, $row->mb, $row->mhz);
           } 
         ?>
         <INPUT TYPE="submit" NAME="verwijderen" VALUE="verwijderen">
      </TD>
    </TR>
    <TR>
      <TD>Type: </TD>
    </TR>
    <TR>  
      <TD><INPUT TYPE="text" NAME="type" SIZE="50"></TD> 
    </TR>
    <TR>
      <TD>MB: </TD>
    </TR>
    <TR>  
      <TD><INPUT TYPE="text" NAME="mb" SIZE="50"></TD> 
    </TR>
    <TR>
      <TD>Mhz: </TD>
    </TR>
    <TR>  
      <TD><INPUT TYPE="text" NAME="mhz" SIZE="50"></TD> 
    </TR>
    <TR>
      <TD COLSPAN="2" ALIGN="center"><INPUT TYPE="submit" NAME="submit" VALUE="submit"></TD>
    </TR>
  </TABLE>
  </FORM>        
  <CENTER><P><H5>Om VERDER TE GAAN MET HET TOEVOEGEN VAN</H5></P>
  <P><H5>EEN PC KUNT U DIT VENSTER GEWOON SLUITEN</H5></P></center>
?>

Mijn netwerkje


  • Erik Jan
  • Registratie: Juni 1999
  • Niet online

Erik Jan

Langzaam en zeker

Dit doet wat je denk ik bedoelt:
code:
1
DELETE from geheugen WHERE type2 IN ('Dimm','128','133')

This can no longer be ignored.


  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
Op dinsdag 13 november 2001 16:10 schreef ikker het volgende:
geen idee of ik arrays gebruik geloof het niet.
de waarde type2 wordt als volgt gevuld:
(php)
$row2 heeft dan bv. de waarde "Dimm, 128, 133". Dit zul je eerst in aparte vars moeten zetten met explode:
code:
1
list($type, $mb, $mhz) = explode(", ", $row2);

dan kun je die vars gebruiken in de query:
code:
1
DELETE FROM geheugen WHERE type = '$type' AND mb = '$mb' AND mhz = '$mhz'

btw, je kunt de code om de zooi uit de db te halen wat overzichtelijker schrijven:
code:
1
2
3
4
5
6
7
while ($record = mysql_fetch_object($result)
{
    $type = $record->type;
    $mb = $record->mb;
    $mhz = $record->mhz;
    echo "<OPTION VALUE=\"$type, $mb, $mhz\">$type $mb $mhz</OPTION>";
}

  • ikker
  • Registratie: Oktober 2001
  • Laatst online: 02-09 16:30

ikker

No Risk No Pain No Fun!!!

Topicstarter
MARDUSK:
ik heb even geprobeerd om jou manier van weergeven te
gebruiken. Dit werkt wel en ziet er mischien wel beter
uit, Het is alleen niet de bedoeling omdat ik zo de
weergegeven waarden niet meer kan selecteren.
Maar toch bedankt *D

Er moet toch een manier zijn om het te laten werken.....
ik zal als voorbeeld wel even een hele script erin gooien die dus 1 waarde gebruikt om iets te verwijderen....mischien schept dit duidelijkheid :?
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
<?
##########################################################
################### User variables #######################

## $title is de titel van het document
$title = "Toevoegen en verwijderen van een systeemkast";

## $koptext is de tekst die bovenaan de pagina wordt getoont
$koptekst = "*** Toevoegen en verwijderen van een systeemkast ***";

## $achtergrond_kleur........ duh
$achtergrond_kleur = "#6666CC";

## $tekst_kleur........ duh
$tekst_kleur = "#FFFFFF";

## $link_kleur is de kleur van een (hyper)link
$link_kleur = "#6699FF";

## $host is de server waar de MySQL database opstaat
## Meestal hoeft dit niet te worden veranderd
$host = "localhost";

## $database is de naam van de database waar de gegevens in staan
## Meestal hoeft dit niet te worden veranderd
$database = "incident";

## $user is de gebruikersnaam voor de toegang tot de MySQL database
$user = "lars";

## $password is het wachtwoord voor de $user
$password = "";

################## End user variables ####################
##########################################################
?>

<?php  
###### Connectie maken de database

  $link = mysql_pconnect($host,$user,$password);
  mysql_select_db($database);

###### Connectie gemaakt
 
  
  if ($submit) {
    $query = "INSERT INTO systeemkast VALUES ('$typekast','$voeding','$model')";
    mysql_query($query);
  
    $link = mysql_pconnect($host,$user,$password);
    mysql_select_db($database);
  }

  if ($verwijderen) {
    $query3 = "DELETE FROM systeemkast WHERE model = ('$model2')";
    mysql_query($query3);
  
    $link = mysql_pconnect($host,$user,$password);
    mysql_select_db($database);
  }
?>

<?php
  global $title, $koptekst, $achtergrond_kleur, $tekst_kleur, $link_kleur, $host, $database, $user, $password;
?>

<?php
    $link = mysql_pconnect($host,$user,$password);
    mysql_select_db($database);
?>

<HTML>
<HEAD>
  <TITLE><?php echo $title; ?></TITLE>
</HEAD>
<BODY BGCOLOR="<?php echo $achtergrond_kleur ?>" TEXT="<?php echo $tekst_kleur ?>" LINK="<?php echo $link_kleur; ?>" VLINK="<?php echo $link_kleur; ?>">
  <FONT FACE="Arial">
  <CENTER><FONT SIZE="5" FACE="Arial"><SPAN style="background-color: #3333FF">&amp;nbsp;<?php echo "$koptekst"; ?>&amp;nbsp;</SPAN></FONT></CENTER>
  <CENTER><P><H5>STAAT DE SYSTEEMKAST AL IN DE LIJST??</H5></P>
  <P><H5>DAN HOEFT U HEM NIET MEER TOE TE VOEGEN ! NATUURLIJK :)</H5></P></center>
  <FORM action="systeemkast.php">
  <TABLE WIDTH="50%" ALIGN="" BORDER="0" CELPADDING="5">
    <TR>
      Bestaande systeemkasten:
    </TR>
    <TR>
      <TD><select multiple name="model2" size="10">
          <?php  
         $query2 = "SELECT typekast,voeding,model FROM systeemkast ORDER BY typekast DESC";
         $result = mysql_query($query2);
         
         for ($i = mysql_num_rows($result) - 1; $i >=0; $i--) {
         if (!mysql_data_seek($result, $i)) {
            printf ("Cannot seek to row %d\n", $i);
             continue; 
           }

          if (!($row = mysql_fetch_object($result)))
              continue;
  
            printf ("<OPTION VALUE=\"$row->model\">%s  %s  %s ", $row->typekast, $row->voeding, $row->model);
           } 
         ?>
         <INPUT TYPE="submit" NAME="verwijderen" VALUE="verwijderen">
      </TD>
    </TR>
    <TR>
      <TD>Typekast: </TD>
    </TR>
    <TR>  
      <TD><INPUT TYPE="text" NAME="typekast" SIZE="50"></TD> 
    </TR>
    <TR>
      <TD>Voeding: </TD>
    </TR>
    <TR>  
      <TD><INPUT TYPE="text" NAME="voeding" SIZE="50"></TD> 
    </TR>
    <TR>
      <TD>Model: </TD>
    </TR>
    <TR>  
      <TD><INPUT TYPE="text" NAME="model" SIZE="50"></TD> 
    </TR>
    <TR>
      <TD COLSPAN="2" ALIGN="center"><INPUT TYPE="submit" NAME="submit" VALUE="submit"></TD>
    </TR>
  </TABLE>
  </FORM>        
  <CENTER><P><H5>Om VERDER TE GAAN MET HET TOEVOEGEN VAN</H5></P>
  <P><H5>EEN PC KUNT U DIT VENSTER GEWOON SLUITEN</H5></P></center>

  
<?php
  mysql_close($link);
?> 
?>

de post is wel een beetje groot zo maar mischien toch duidelijker

Mijn netwerkje


  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

Op dinsdag 13 november 2001 15:12 schreef ikker het volgende:
ik heb de volgende souce
PHP:
1
2
3
4
5
6
7
8
9
10
<?
if ($verwijderen) {
    echo $type2;
$query3 = "DELETE FROM geheugen WHERE type = ('$type2')";
    mysql_query($query3);
  
    $link = mysql_pconnect($host,$user,$password);
    mysql_select_db($database);
  }
?>
waarom doe je een connect NA je query :?

Klaar voor een nieuwe uitdaging.


Verwijderd

Op woensdag 14 november 2001 11:38 schreef chem het volgende:

[..]

waarom doe je een connect NA je query :?
ja idd :)


maar wat je ook kan doen (als je variable een string bevat als dit: "var1,var2,var3")

$array=explode($variable,"\,");
DELETE FROM pietjepuk WHERE blaat='$array[1]' AND blaat='$array[2]' enz enz..


en er wel netjes een countertje bij maken natuurlijk en een for loopje.. als het er veel zijn of als de variable een variable inhoud heeft.

:)

  • Apache
  • Registratie: Juli 2000
  • Laatst online: 14-09 22:46

Apache

amateur software devver

Op woensdag 14 november 2001 11:38 schreef chem het volgende:

[..]

waarom doe je een connect NA je query :?
waarom doe jij hem ervoor >:) :P

en waarom eigenlijk pconnects lijkt met onnodig hiervoor :?
Op dinsdag 13 november 2001 16:10 schreef ikker het volgende:
geen idee of ik arrays gebruik geloof het niet.
de waarde type2 wordt als volgt gevuld:
...
heb je ze wel zelf geschreven dan?

en waarom heb je dit nodig:
PHP:
1
2
3
<?
  global $title, $koptekst, $achtergrond_kleur, $tekst_kleur, $link_kleur, $host, $database, $user, $password;
?>

tenzij heel die pagina natuurlijk in een aparte functie zit ofzo :?

If it ain't broken it doesn't have enough features

Pagina: 1