php sql update script?

  • Onderwerp starter Onderwerp starter igi
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

igi

Gebruiker
Lid geworden
24 jul 2007
Berichten
19
Hallo allemaal.
Ik zit met een dilemma.

Op mijn website maak ik gebruik van een database. Ik kan 'tutorials' toevoegen en verwijderen. Wat ik nu nog wil is dat ik bestaande tutorials kan wijzigen.

Eerst wil ik kunnen kiezen uit een lijst met de bestaande tutorials, en vervolgens moet er een formulier komen waarin de bestaande gegevens al zijn ingevuld.

Dezelfde vraag had ik al gevraagd op phphulp.nl. Daar had iemand me dit script gegeven. En, het werkt voor de helft. Ik kan al wel kiezen uit de bestaande tutorials, ik klik op selecteren, en dan krijg ik niks op een leeg vlak na.

Ik ben een phpnoob (probeer het te leren) dus ik kan geen fout vinden in dit script. Ik had al gepost op phphulp.nl waar de fout zat, maar ik krijg geen reactie.

Hopelijk kunnen jullie me helpen. Met een nieuw script, of het script hieronder dat WEL werkt.


PHP:
 <?php
				if($_SERVER['REQUEST_METHOD'] == 'POST')
				{
    				if(!empty($_POST['form']))
    				{
       					 if($_POST['form'] == 'select_tutorial')
        				{
            				if(!empty($_POST['tutorial']) && ctype_digit($_POST['tutorial']))
            				{
               			 		$sQuery = "SELECT title, downloadlink, description FROM tutorials WHERE TUTORIAL_ID = ".$_POST['tutorial'];
                				if(!$rResult = mysql_query($sQuery))
                				{
                    				trigger_error(mysql_error().'<br>Query: '.$sQuery);
                				}
                				else
                				{
                    				$aRow = mysql_fetch_assoc($rResult);
                    				echo '<form method="post" action="'. $_SERVER['PHP_SELF'] .'">';
									echo '<input type="hidden" name="form" value="update_tutorial" />';
									echo '<p>Titel: <input type="text" name="title" value="'.$aRow['title'].'" /></p>';
									echo '<p>Downloadlink: <input type="text" name="downloadlink" value="'.$aRow['downloadlink'].'" /></p>';
									echo '<p>Omschrijving: <input type="text" name="description" value="'.$aRow['description'].'" /></p>';
									echo '<p><input type="submit" value="Updaten" /></p>';
									echo '</form>';
								}
							}
						}
        				elseif($_POST['form'] == 'update_tutorial')
        				{
            				$sql = "UPDATE tutorials SET title = '".$_POST["title"]."', downloadlink = '".$_POST["downloadlink"]."', description = '".$_POST["description"]."' WHERE TUTORIAL_ID = ".$_POST["tutorialid"].";";
							if (!mysql_query($sql))
							{
								echo "The tutorial is not changed.";
								exit;
							} 
							echo "The tutorial is changed.";
        				}
    				}
				}
				else
				{
					$sQuery = "SELECT TUTORIAL_ID, title FROM tutorials";
					if(!$rResult = mysql_query($sQuery))
					{
						trigger_error(mysql_error().'<br>Query: '.$sQuery);
					}
					else
					{
						echo '<form method="post" action="'. $_SERVER['PHP_SELF'] .'">';
						echo '<input type="hidden" name="form" value="select_tutorial" />';
						echo '<select name="tutorial">';
						
						while($aRow = mysql_fetch_assoc($rResult))
						{
							echo '<option value="'.$aRow['id'].'">'.$aRow['title'].'</option>';
						}
						
						echo '</select>';
						echo '<input type="submit" value="Selecteren" />';
						echo '</form>';
					}
				}
			?>

Alvast bedankt.

Groet
igi
 
probeer
$aRow = mysql_fetch_assoc($rResult);

eens te veranderen naar

$aRow = mysql_fetch_object($rResult);



/michael
 
Re:

Ok, heb ik gedaan, alleen geen ander resultaat :(
 
ik heb effe naar je script gekeken, en het probleem zit hem erin dat $_POST['tutorial'] leeg is. Verander:
PHP:
while($aRow = mysql_fetch_assoc($rResult)) 
                        { 
                            echo '<option value="'.$aRow['id'].'">'.$aRow['title'].'</option>'; 
                        }

in:

PHP:
while($aRow = mysql_fetch_assoc($rResult)) 
                        { 
                            echo '<option value="'.$aRow['TUTORIAL_ID'].'">'.$aRow['title'].'</option>'; 
                        }


succes
 
Re:

bedankt,

inmiddels werkt hij al ;)

maar toch bedankt allemaal.

groet
igi
 
Hoi Igi,

Ik ben met een hetzelfde project bezig, nu heb ik dankbaar je script overgenomen :thumb:, hij werkt, maar plaatst de gegevens niet in de database, hij geeft geen foutmelding....
ik hoop dat jij dat nu inmiddels weet(of dat iemand anders me kan helpen), zit aardig omhoog met dit project
dit is wat ik van jouw code heb gemaakt

PHP:
<?php

$titel= $_POST["titel"];
$beschrijving= $_POST["beschrijving"];
$URL=$_POST["URL"];
$artikel_id=$_POST["artikelid"];


                if($_SERVER['REQUEST_METHOD'] == 'POST')
                {
                    if(!empty($_POST['form']))
                    {
                            if($_POST['form'] == 'select_tutorial')
                        {
                            if(!empty($_POST['tutorial']) && ctype_digit($_POST['tutorial']))
                            {
                                    $sQuery = "SELECT titel, beschrijving, URL FROM artikelen WHERE ARTIKEL_ID = ".$_POST['tutorial'];
                                if(!$rResult = mysql_query($sQuery))
                                {
                                    trigger_error(mysql_error().'<br>Query: '.$sQuery);
                                }
                                else
                                {
                                    $aRow = mysql_fetch_assoc($rResult);
                                    echo '<form method="post" action="'. $_SERVER['PHP_SELF'] .'">';
                                    echo '<input type="hidden" name="form" value="update_tutorial" />';
                                    echo '<p>Titel: <input type="text" name="titel" value="'.$aRow['titel'].'" /></p>';
                                    echo '<p>beschrijving: <input type="text" name="beschrijving" value="'.$aRow['beschrijving'].'" /></p>';
                                    echo '<p>URL: <input type="text" name="URL" value="'.$aRow['URL'].'" /></p>';
                                    echo '<p><input type="submit" value="Updaten" /></p>';
                                    echo '</form>';
                                }
                            }
                        }
                        elseif($_POST['form'] == 'update_tutorial')
                        {
                            
$sql = 'UPDATE artikelen SET titel="'.$titel.'", beschrijving="'.$beschrijving.'",URL="'.$URL.'" WHERE ARTIKEL_ID="'.$artikel_id.'"';

                            if (!mysql_query($sql))
                            {
                                echo "Er is niks veranderd, probeer het nog eens.";
                                exit;
                            } 
                            echo "Het artikel  ".$_POST["titel"]." is gewijzigd<br/>";
							echo " nieuwe titel :" .$_POST["titel"]."<br/>";
							echo " nieuwe beschrijving :" .$_POST["beschrijving"]."<br/>";
							echo " nieuwe URL :" .$_POST["URL"]."<br/>";
                        }
                    }
                }
                else
                {
                    $sQuery = "SELECT ARTIKEL_ID, titel FROM artikelen";
                    if(!$rResult = mysql_query($sQuery))
                    {
                        trigger_error(mysql_error().'<br>Query: '.$sQuery);
                    }
                    else
                    {
                        echo '<form method="post" action="'. $_SERVER['PHP_SELF'] .'">';
                        echo '<input type="hidden" name="form" value="select_tutorial" />';
                        echo '<select name="tutorial">';
                        
                     while($aRow = mysql_fetch_assoc($rResult)) 
                        { 
                            echo '<option value="'.$aRow['ARTIKEL_ID'].'">'.$aRow['titel'].'</option>'; 
                        }  
                        
                        echo '</select>';
                        echo '<input type="submit" value="Selecteren" />';
                        echo '</form>';
                    }
                }
          
mysql_close($db);
?>
alvast bedankt

groetjes natas
 
Laatst bewerkt:
Ok, :thumb:

Eeh, weet je wel zeker dat je van de voren verbinding maakt met de database?
En, uit ervaring spreek ik, als ik script van anderen overneem, dat je echt goed moet controleren of dat alle gegevens over de database goed staan...
 
Hoi!

ja, weet zeker dat ik met de database ben verbonden, anders had hij daar een melding over gegeven, de gegevens heb ik ook al drie keer gecontroleerd, dus dat moet allemaal kloppen...
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan