[php / mysql] update probleem

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ik al in de documentie van mysql en op google gekeken maar volgens
mij doe ik het gewoon goed, terwijl hij het niet doet. Hij geeft gewoon
een extra rij erbij .. dus de rij wordt niet ge-replaced maar ge-insert.
Ik wil de volgende data altijd replacen. maakt niet uit wat erin staat.

even de code:
hierin geef ik de waarden die in me tabel moeten komen
deze is verknipt
code:
1
2
3
4
5
6
7
8
9
10
11
12
<form method=post action=create_entry.php>
<table  class=body>

<tr><td>Website http:\\\</td>
<td><input type=text size=40 name=website class=body value='$website'></td>
</tr>
<tr><td>
<input type=submit name=submit value=Add>
<input type=reset name=reset value=Reset>
</td></tr>
</table>
</form>


nu de code om de info te replacen de creaty_entry.php:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?
include("dbconnect.php");            
if ($submit == "Add")
{
    $query = "replace into dirco_admin 
    (website,title,auteur,keywords,beschrijving,color1,color2) values
        ('$website','$title','$auteur','$keywords','$beschrijving','$color1','$color2')"
    ;                                                               
    mysql_query($query) or
        die (mysql_error()); 
?>
data is goed ingevoerd<br><br>
<a href="../index.php" target="new">view</a>  

<?

}
    else { 
    include("admin.php");
}
?>

Acties:
  • 0 Henk 'm!

  • phYzar
  • Registratie: November 2001
  • Laatst online: 08:07
REPLACE works exactly like INSERT, except that if an old record in the table has the same value as a new record on a UNIQUE index or PRIMARY KEY, the old record is deleted before the new record is inserted.
Er is dus geen overeenkomende record, dus een insert is het gevolg.
Note that unless the table has a UNIQUE index or PRIMARY KEY, using a REPLACE command makes no sense. It becomes equivalent to INSERT, because there is no index to be used to determine whether a new row duplicates another.
<td><input type=text size=40 name=website class=body value='$website'>

euhh, php in html?

<td><input type=text size=40 name=website class=body value='<?=$website?>'>

[ Voor 139% gewijzigd door phYzar op 26-12-2003 01:44 ]


Acties:
  • 0 Henk 'm!

  • Bubbaman
  • Registratie: Juli 2003
  • Laatst online: 20-03-2022
Volgens mij kan dit niet werken (replace into). Gewoon "replace 'table' set value=$value where id=$id", want hij moet tenslotte weten WELK record moet worden vervangen. Tenzij er maar 1 record in die tabel staat, en zelfs dan werkt dat "replace into" niet??? Ik ben het iig nog niet tegen gekomen.

Acties:
  • 0 Henk 'm!

  • Darkvater
  • Registratie: Januari 2001
  • Laatst online: 26-08-2024

Darkvater

oh really?

Ik heb ook even in de documentatie gekeken, en hij zou moeten werken, MITS je een unieke index aan de tabel hebt toegevoegd. Als dus bijvoorbeeld 'website' in je table de (unieke) index is, en je doet replace met weer dezelfde website, dan doet ie een replace. Het lijkt erop dat je geen index hebt in je tabel, en dan is het dus altijd insert.


Windows Vista? *NEVER* Het waarom - Opera forever!!!
I've seen chickens that were more menacing. Chickens in a coma. On ice. In my fridge


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
hmmm dan heb ik dat verkeerd begrepen, ik dacht dat replace
een harde update was (dus echt alle data replacen en niet kijken
of er data klopt)

dus dat word voor mij een update:

UPDATE updates columns in existing table rows with new values.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
phYzar schreef op 26 december 2003 @ 01:39:
[...]

<td><input type=text size=40 name=website class=body value='$website'>

euhh, php in html?

<td><input type=text size=40 name=website class=body value='<?=$website?>'>
nee is html in php....

Acties:
  • 0 Henk 'm!

  • phYzar
  • Registratie: November 2001
  • Laatst online: 08:07
if ($submit == "Add")

mooier is:

if(isset($_POST['submit']))

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
hmmm probleem erbij ... kan het niet proberen. editplus viel opeens
uit en nu ben ik mijn admin.php dus kwijt, heeft hij leeg gegooid.
dus geen reactie van mij of het werkt ja of nee... maar ik voorlopig met
de reacties goed uit de voeten

Acties:
  • 0 Henk 'm!

  • Alex
  • Registratie: Juli 2001
  • Laatst online: 20-08 21:38
Check altijd de temporary files in dat geval. Daar stata hij vaak nog tussen...

Deze post is bestemd voor hen die een tegenwoordige tijd kunnen onderscheiden van een toekomstige halfvoorwaardelijke bepaalde subinverte plagiale aanvoegend intentioneel verleden tijd.
- Giphart

Pagina: 1