wijzigen en delete probleempje.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Niek Kasius

Niek Kasius

22/10/2013 06:39:50
Quote Anchor link
Ik heb een script waarmee ik biljart wedstrijden kan bewerken. IK bedoel dat ik daarin de te caramboles, beurten en en de punten van een wedstrijd kan invullen en of veranderen, en dat komt dan 2 tabelen in de tabel "wedstrijden" en in de tabel "stand".
En Nou werkt dat wel, Alleen niet direct, als alles heb ingevuld en dan op Updaten klik gaat die naar edite_uitslag.php en daar krijg ik de meilding alles gewijzig is, word ik terug gestuurd naat de admin pagina en dan zie ik dat dat de wijdstrijd wel is gewijzigd, Dus dat is wel goed, Maar als ik dan de stand bekijk dan is daarin niks veranderd, En als ik dan die nog eens op Updaten klik word het wel in de stand bijgewerkt.

En met het verwijderen idem dito.
Daarin word me gevraagt of ik de wedstrijd wil verwijderen of niet, en als op Ja klik word de wedstrijd wel uit de tabel "wedstrijden" verwijderd maar niet uit de stand. En kan ik alleen nog maar via de terug pijl links boven in de browser terug gaan naar delete.php en dan nogmaals op Ja klikken waarna het wel in stand word verwijderd.
Hier onder de linken naar uitslag_bewerker.php en wedstijd_verwijderen.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<a href="uitslag_bewerken.php?id=<?php echo $uitslag['id'];?>">bewerk</a>
<a href="wedstrijd_verwijderen.php?id=<?php echo $uitslag['id'];?>">verwijder</a>

uitslag_bewerken
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
uitslag_bewerken.php


<?php
if(isset($_POST['update'])) {
$query = "UPDATE wedstrijden SET '".mysqli_real_escape_string($_POST[thuis])."',
                                 '"
.mysqli_real_escape_string($_POST['uit'])."',
                                 '"
.mysqli_real_escape_string($_POST['makenthuis'])."',
                                 '"
.mysqli_real_escape_string($_POST['makenuit'])."',
                                 '"
.mysqli_real_escape_string($_POST['doelthuis'])."',
                                 '"
.mysqli_real_escape_string($_POST['doeluit'])."',
                                 '"
.mysqli_real_escape_string ($_POST['beurenthuis'])."',
                                 '"
.mysqli_real_escape_string($_POST['beurtenuit'])."',
                                 '"
.mysqli_real_escape_string($_POST['puntenthuis'])."',
                                 '"
.mysqli_real_escape_string($_POST['puntenuit'])."'                                
                                 WHERE id='"
.$_GET['id']."'";
mysqli_query($query);                        
?>

  <h4>De  wijziging is uitgevoerd, je wordt nu terug gestuurd.</h4>
     <META HTTP-EQUIV="REFRESH" CONTENT="1; URL=index1.php">
<?php                        
}else{
if ($actie ="uitslag"){
$query = mysqli_query($con,"select * FROM wedstrijden WHERE id='".$_GET['id']."'");
while($uitslag = mysqli_fetch_object($query)){

echo "<form method=\"POST\" action=\"edite_uitslag.php?actie=&id=".$_GET['id']."\" name=\"form\">"; ?>

<table width="600px" border="0" cellspacing="2" cellpadding="2">
   <tr>
      <th align="left" valign="top">Wedstrijd datum</th><th align="left" valign="top">Team naam</th><th colspan="2">Caramboles</th><th>Beurten</th><th>Punten</th>
    </tr>
    <tr>
      <td align="left" valign="top"><input type="hidden" value="<?php echo $uitslag->datum; ?>" name="datum"><?php echo $uitslag->datum; ?></td><td></td><td>maken</td><td>gemaakt</td><td></td><td></td>
    </tr>
    <tr>
      <td align="left"><b>Thuis</b></td>
      <td align="left"><input type="hidden" value="<?php echo $uitslag->thuis; ?>" name="thuis"><?php echo $uitslag->thuis; ?></td>
      <td><input type="text" name="makenthuis" size="1" maxlength="3" value="<?php echo $uitslag->makenthuis; ?>"></td>
      <td><input type="text" name="doelthuis" size="1" maxlength="3" value="<?php echo $uitslag->doelthuis; ?>"></td>
      <td><input type="text" name="beurtenthuis" size="1" maxlength="3" value="<?php echo $uitslag->beurtenthuis; ?>"></td>
      <td><input type="text" name="puntenthuis" size="1" maxlength="3" value="<?php echo $uitslag->puntenthuis; ?>"></td>
    </tr>
    <tr>
      <td align="left"><b>Uit</b></td>
      <td align="left"><input type="hidden" value="<?php echo $uitslag->uit; ?>" name="uit"><?php echo $uitslag->uit; ?></td>
      <td><input type="text" name="makenuit" size="1" maxlength="3" value="<?php echo $uitslag->makenuit; ?>"></td>
      <td><input type="text" name="doeluit" size="1" maxlength="3" value="<?php echo $uitslag->doeluit; ?>"></td>
      <td><input type="text" name="beurtenuit" size="1" maxlength="3" value="<?php echo $uitslag->beurtenuit; ?>"></td>
      <td><input type="text" name="puntenuit" size="1" maxlength="3" value="<?php echo $uitslag->puntenuit; ?>"></td>
    </tr>
    <tr>  
      <td colspan="5" align="center"><input type="submit" value="Updaten" name="submit">&nbsp;&nbsp;<input type="reset" name="Reset" value="Resetten"></td>
     </tr>
  </form>
</table>
<?php
}
mysqli_close($con);
}
}

?>

edite_uitslag
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
edite_uitslag.php


<?php
$query
= "UPDATE wedstrijden SET  
                                 thuis='"
.$_POST['thuis']."',
                                 uit='"
.$_POST['uit']."',
                                 makenthuis='"
.$_POST['makenthuis']."',  
                                 makenuit='"
.$_POST['makenuit']."',
                                 doelthuis='"
.$_POST['doelthuis']."',
                                 doeluit='"
.$_POST['doeluit']."',
                                 beurtenthuis='"
.$_POST['beurtenthuis']."',
                                 beurtenuit='"
.$_POST['beurtenuit']."',
                                 puntenthuis='"
.$_POST['puntenthuis']."',
                                 puntenuit='"
.$_POST['puntenuit']."'
                                 WHERE id='"
.$_GET['id']."'";
mysqli_query($con,$query) or die(mysqli_error($con));
echo '<h4>Je uitslag is gewijzigd, je wordt nu terug gestuurd.</h4>
<META HTTP-EQUIV="REFRESH" CONTENT="2; URL=index1.php">'
;
?>
  

wedstrijd_verwijderen
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
wedstrijd_verwijderen.php


<?php
if(isset($actie['1'])) {
$query="DELETE thuis, uit,makenthuis, makenuit doelthuis, doeluit, beurtenthuis, beurtenuit, puntenthuis, puntenuit FROM wedstrijden WHERE id='" .$_GET["id"] ."'";
  $result = mysqli_query($con, $query) or die ("FOUT: " . mysqli_error());

    echo '<h4>De stand is verwijderd, je wordt nu terug gestuurd.
           <meta http-equiv="refresh" content="1; URL=index1.php">'
;
    }
else{
echo '<H4>Weet je zeker dat je dit team wilt verwijderen?<br /><br />';
echo "<a href=\"delete_wedstrijd.php?actie=1&id=" .$_GET['id']. "\">"; echo '<font size="3"><b>Ja</a> &laquo;&laquo; &reg; &raquo;&raquo; <a href="index1.php"><font size="3"><b>Nee</b></font></a>




[size=xsmall][i]Toevoeging op 22/10/2013 06:55:10:[/i][/size]



delete_wedstrijd.php


<?php
if(isset($actie['
1'])) {
echo "<H4>Weet je zeker dat je deze wedstrijd wilt verwijderen?<br>
    <a href=\"delete_wedstrijd.php?actie=1&id=".$_GET['
id']."\">Ja</a> / <a href=\"index1.php\">Nee</a><H4>";
}else{
    $query="DELETE FROM wedstrijden WHERE id='" .$_GET["
id"] ."'";
    $query2="DELETE wedstrijden, winst, gelijk, verlies, maken, beurten, voor, tegen, punten FROM stand WHERE id='" .$_GET["
id"] ."'";
  $result = mysqli_query($con, $query) or die ("
FOUT: " . mysqli_error());
      echo "
<h4> De wedstrijd is verwijderd, je wordt nu terug gestuurd.</h4>";
    echo "
<meta http-equiv=\"refresh\" content=\"2; URL=index1.php\">";    
}
                                
?>




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
delete_wedstrijd.php


<?php
if(isset($actie['1'])) {
echo "<H4>Weet je zeker dat je deze wedstrijd wilt verwijderen?<br>
    <a href=\"delete_wedstrijd.php?actie=1&id="
.$_GET['id']."\">Ja</a> / <a href=\"index1.php\">Nee</a><H4>";
}
else{
    $query="DELETE FROM wedstrijden WHERE id='" .$_GET["id"] ."'";
    $query2="DELETE wedstrijden, winst, gelijk, verlies, maken, beurten, voor, tegen, punten FROM stand WHERE id='" .$_GET["id"] ."'";
  $result = mysqli_query($con, $query) or die ("FOUT: " . mysqli_error());
      echo "<h4> De wedstrijd is verwijderd, je wordt nu terug gestuurd.</h4>";
    echo "<meta http-equiv=\"refresh\" content=\"2; URL=index1.php\">";    
}
                                
?>
Gewijzigd op 22/10/2013 18:22:28 door Bas IJzelendoorn
 
PHP hulp

PHP hulp

21/11/2024 12:01:00
 
- Ariën  -
Beheerder

- Ariën -

22/10/2013 07:59:55
Quote Anchor link
Je kan alleen maar records wissen met DELETE. Geen aparte velden. Zie $query2.
Ook kloppen je metatags niet, die horen daar niet.

Pas tevens ook foutafhandeling en consistent mysqli_real_escape_string toe.
Gewijzigd op 22/10/2013 08:01:36 door - Ariën -
 
Frank Nietbelangrijk

Frank Nietbelangrijk

22/10/2013 09:02:40
Quote Anchor link
je kunt wél de waarde wijzigen van een veld (zelfs naar NULL) maar dat doe je dan met een UPDATE query
 
Michael -

Michael -

22/10/2013 09:11:47
Quote Anchor link
Persoonlijk vind ik het overzichtelijker om namen als phpHulp te schrijven ipv phphulp.
Zo is het makkelijker leesbaar en vallen typefouten eerder op.
Zo heb je in 'uitslag_bewerken.php' in je UPDATE query 'beurenthuis' ipv 'beurtenthuis'.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
'".mysqli_real_escape_string ($_POST['beurenthuis'])."',
'".mysqli_real_escape_string($_POST['beurtenuit'])."',
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

22/10/2013 10:11:20
Quote Anchor link
@Niek
De standen tabel is geheel overbodig, je kan dat gewoon met een SQL query bepalen.

Ik heb daar eerder in een ander topic al eens voorbeeld van geplaatst.

Op die manier hoef je alleen maar de uitslagen aan te passen, en krijg je altijd de juiste stand.
 
Niek Kasius

Niek Kasius

22/10/2013 17:59:14
Quote Anchor link
Ja als ik de uitslagen aanpas dan worden die ook wel in de stand gewijzigd, Dus dat werkt wel.
Alleen niet de meteen. Want de eerste keer doet die dat alleen in de wedstrijden en naar nogmaals op Updaten te klikken doet die de stand,

Oh ja En nog iets, ik heb.
echo "<form method=\"POST\" action=\"edite_uitslag.php?actie=&id=".$_GET['id']."\" name=\"form\">"; ?>
Maar als ik dat verander in dit.
echo '<form method="POST" action="edite_uitslag.php?actie=&id=".$_GET['id']."" name="form">'; ?>
dan krijg ik een fout melding dat het id niet goed is.
ook id='".$_GET['id']."'"
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

22/10/2013 18:18:44
Quote Anchor link
Het werkt wel, maar werkt het goed?
Nee, want als jij 5 wedstrijden invult en je vergeet op update te klikken, krijg je een onjuiste stand.
Dit noemt men inconsistentie van de database.
Dit kan je voorkomen door real time de standen te genereren vanuit de uitslagen.
Gewijzigd op 22/10/2013 18:30:55 door Ger van Steenderen
 
Niek Kasius

Niek Kasius

23/10/2013 00:08:23
Quote Anchor link
ja daar had ik nog niet aan gedacht.
Maar het heeft wel gewerkt tot ik er mysqli van gemaakt heb, dus zal ik het advies van -Aar- maar eens opvolgen.

Ik heb dat zelfde script ook als voetbal standen, maar dan in mysql en dat werkt perfect.
Het onderstaande staat er daar in editen.php
Dus ik denk dat het aan die die $con ligt in mysqli_query($con,$query) maar als ik die weg laat krijg ik foutmelding dat ik 2 parameters moet gebruiken


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
$query = "UPDATE wedstrijden SET thuis='".$_POST['thuis']."',
                                 uit='".$_POST['uit']."',
                                 doelthuis='".$_POST['doelthuis']."',
                                 doeluit='".$_POST['doeluit']."'
                                 WHERE id='".$_GET['id']."'";
mysql_query($query) or die(mysql_error());[
/code]
Gewijzigd op 23/10/2013 01:03:34 door Niek Kasius
 
Michael -

Michael -

23/10/2013 08:28:04
Quote Anchor link
Niek Kasius op 22/10/2013 17:59:14:
Ja als ik de uitslagen aanpas dan worden die ook wel in de stand gewijzigd, Dus dat werkt wel.
Alleen niet de meteen. Want de eerste keer doet die dat alleen in de wedstrijden en naar nogmaals op Updaten te klikken doet die de stand,

Oh ja En nog iets, ik heb.
echo "<form method=\"POST\" action=\"edite_uitslag.php?actie=&id=".$_GET['id']."\" name=\"form\">"; ?>
Maar als ik dat verander in dit.
echo '<form method="POST" action="edite_uitslag.php?actie=&id=".$_GET['id']."" name="form">'; ?>
dan krijg ik een fout melding dat het id niet goed is.
ook id='".$_GET['id']."'"


Je zou het als volgt kunnen doen
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
if(isset($_GET['id']) && is_numeric($_GET['id']))
{

    echo '<form method="POST" action="edite_uitslag.php?actie=&amp;id='. $_GET['id'] .'" name="form">';
}

?>


Daarnaast zou ik een goede foutafhandeling gebruiken en zeker geen die().
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
<?php
$sql
= "SELECT uitslag FROM uitslagen";
$res = $con->query($sql);

if($res)
{

    if($res->num_rows > 0)
    {

        while($rij = $res->fetch_assoc())
        {

            echo $rij['uitslag'];
        }
    }

    else
    {
        echo 'Geen data gevonden';
    }
}

else
{
    echo 'Fout opgetreden';
    echo '<br/>'. $con->error();
}


$sql = "UPDATE uitslagen SET uitslag = '". $con->real_escape_string($_POST['uitslag']) ."'  WHERE ... LIMIT 1"; // Geen ' ' om de POST als het een getal is.
$res = $con->query($sql);

if($res)
{

    if($con->affected_rows > 0)
    {

        echo 'Geupdate';
    }

    else
    {
        echo 'Er is geen data gewijzigd';
    }
}

else
{
    echo 'Fout opgetreden';
    echo '<br/>'. $con->error();
}

?>


Let op dat de & in 'action' vervangen is door &amp;
Let op dat bij SELECT $con->num_rows wordt gebruikt om het aantal rijen te tellen, en bij UPDATE (of DELETE of INSERT) $con->affected_rows wordt gebruikt om het aantal verwerkte rijen te tellen.
Pas op dat je $con-error(); niet laat staan in je uit eindelijke versie. Deze errors bevatten veel informatie en zijn alleen voor jou. Een kwaadwillende zou hier misbruik van kunnen maken.
Gewijzigd op 23/10/2013 11:41:23 door Michael -
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

23/10/2013 11:32:38
Quote Anchor link
Niek Kasius op 23/10/2013 00:08:23:
Ik heb dat zelfde script ook als voetbal standen, maar dan in mysql en dat werkt perfect.

Als jij een script dat tegen het einde van de voetbal competitie ruim 500 queries per request uitvoert perfect vind werken .....
 
Niek Kasius

Niek Kasius

23/10/2013 18:22:57
Quote Anchor link
Als je per request bedoeld het invoeren van de uitslagen ,dan is dat nog meer 500 volgens mij.
Want als je met 18 clubs speelt, zijn 34 wedstrijden, dus moet er 18 X 34 = 612 keer een uitslag worden uit ingevoerd.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

24/10/2013 09:05:36
Quote Anchor link
Het gaat niet om de invoer van de uitslagen, dat zijn er overigens 306, maar om het updaten van de stand.

Ik neem aan dat je nog steeds met dat script werkt dat je van hier hebt, en dan worden in verwerken.php aan het einde van de competitie 632!! queries uitgevoerd als je dat script draait.

Maar nogmaals, heel die tabel met de stand kan komen te vervallen, en daarmee kan ook verwerken.php bij het restafval (waar het thuis hoort).
 



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.