dele probleem

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

dollo

Gebruiker
Lid geworden
1 jan 2008
Berichten
118
delete probleem

hallo ik probeer een item uit de database te verwijderen waarbij de titel overeenkomt met de waarde die is ingevuld in het tekstveld.
als ik deze waarde in de query invul gaat hij goed ( in plaats van ". $onderwerp; 'test'") maar als ik de waarde uit het veld laat halen niet.
Ook niet als ik de variabele een standaard waarde geef geeft hij en fout.
krijg dan deze melding
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= test' at line 1
mijn code staat hieronder
Code:
<form action="" method="post">
		<label class="artikellabel" for="">*onderwerp:</label>
		<input class="registerformantw" type="text" name="Onderwerp" /><br/>
		<input type="submit" name="Delete" value="Delete" />
		</form>
		<?php
	if(!empty($_POST['Delete']))
	{ 
		$onderwerp= $_POST['Onderwerp'];
		$onderwerp = 'test';
		$query="DELETE FROM" .$demaand. "WHERE Onderwerp = ". $onderwerp;  
		mysql_query($query) or die(mysql_error()); 
		mysql_close($con);
	}
	?>

weet iemand wat ik fout doe?
 
Laatst bewerkt:
PHP:
$query="DELETE FROM" .$demaand. "WHERE Onderwerp = ". $onderwerp;

Daar zou ik even een paar spaties inzetten:

PHP:
$query="DELETE FROM " .$demaand. " WHERE Onderwerp = ". $onderwerp;

Het kan wel eens handig zijn als je query niet werkt om de query even naar het scherm te printen. Dan zie je al gauw wat er mis is.

Nu zou er waarschijnlijk gestaan hebben:

DELETE FROMnovemberWHERE Onderwerp = watDanOok

Volgens mij moet je rond $onderwerp trouwens quotes gebruiken:

PHP:
$query = "DELETE FROM " .$demaand. " WHERE Onderwerp = '". $onderwerp . "'";
 
Laatst bewerkt:
oke bedankt het werkt :D:thumb:

bestaat er btw ook iets als een AND functie zodat ik meer voorwaarden kan toevoegen?

alvast bedankt
 
Ja in het 'WHERE-gedeelte' kun je gewoon AND en dan de volgende statement toevoegen. Bijv.:
PHP:
$query = "DELETE FROM " .$demaand. " WHERE Onderwerp = '". $onderwerp . "' AND auteur = '" . $auteur . "'";
 
met de and functie werkt ie bij mij helaas niet
krijg geen melding niets hij ververst de pagina .


Code:
<form action="" method="post">
		<label for="">*onderwerp:</label>
		<input type="text" name="Onderwerp" /><br/>
		<label for="">*dag:</label>
		<input type="text" name="Dag" />
		<input type="submit" name="Delete" value="Delete" /> <br/>
		</form>
		<?php
	if(!empty($_POST['Delete']))
	{ 
		$onderwerp= $_POST['Onderwerp'];
		$dag= $_POST['Dag'];
		echo $query="DELETE FROM " .$demaand. " WHERE Onderwerp = ' ". $onderwerp . " ' AND Dag = ' " . $dag . " ' ";    
		mysql_query($query) or die(mysql_error()); 
		mysql_close($con);
	}

alvast bedankt
 
Laatst bewerkt:
Dat is logisch dat er nu niets gebeurd.

Je hebt een echo statement en een toewijzingsstatement in één.

Maak van:

PHP:
echo $query="DELETE FROM " .$demaand. " WHERE Onderwerp = ' ". $onderwerp . " ' AND Dag = ' " . $dag . " ' ";

eens:

PHP:
$query="DELETE FROM " .$demaand. " WHERE Onderwerp = ' ". $onderwerp . " ' AND Dag = ' " . $dag . " ' ";

echo $query;

Die spaties binnen je enkele quotes lijken me trouwens ook niet erg handig. Weet niet zeker of het uitmaakt, maar volgens mij zoekt ie dan een value die begint en eindigt met een spatie.

Dit is volgens mij beter:

PHP:
$query="DELETE FROM " .$demaand. " WHERE Onderwerp = '". $onderwerp . "' AND Dag = '" . $dag . "'";
 
Laatst bewerkt:
dat delete werkt
maar als ik deze op en ander pagina include gaat het mis.

telkens als ik op de delete knop druk ververst ie de pagina maar voert hij de delete niet uit
hieronder de hele code van het document.
Code:
		 <div class="activiteit">		 
		<table>
		<tr class="agendatitel">
		<th width="35px">
		dag
		</th>
		<th width="71px">
		type
		</th>
		<th width="67px">
		genre
		</th>
		<th width="151px">
		onderwerp
		</th>
		<th width="71px">
		tijd
		</th>
		<th width="144px">
		tarieven
		</th>
		<th width="70px">
		info
		</th>
		</tr>
		
		
		<?php
		include('databaseverbinding.php');
		$demaand = 'Januari';
		$dag = mysql_query( "SELECT * FROM ".$demaand . " ORDER BY Dag ");  // januari word $maand word megegeven bij elke maand
		$i =0;
		while($row = mysql_fetch_array( $dag ))
		{ $i = $i+1;
	
 if ($i / 2 != round($i / 2)) 
 { 
   $kleur = "kleur1"; 
 } 
 else 
 { 
  $kleur = "kleur2"; 
 } 
		?>
			<tr class=" <?php $kleur ?>">
			<td valign="top">
			<p class="tabelinfo">
			<?php
			echo $row['Dag'];
			?>
			</p>
			</td>
			<td valign="top" class=" <?php $kleur ?>">
			<p class="tabelinfo">
			<?php
			echo $row['Type'];
			?>
			</p>
			</td>
			<td valign="top" class=" <?php $kleur ?>">
			<p class="tabelinfo">
			
				<?php
	
				echo $row['Genre'];
			
			?>
			</p>
			</td>
			<td valign="top" class=" <?php $kleur ?>">
			<p class="tabelinfo">
			<?php
				echo $row['Onderwerp'];
			?>
			</p>
			</td>
			<td valign="top" class=" <?php $kleur ?>">
			<p class="tabelinfo">
			<?php
			echo $row['Tijd'];
			?>
			</p>
			</td>
			<td valign="top" class=" <?php $kleur ?>">
			<p class="tabelinfo">
			<?php
			echo $row['Tarieven'];
			?>
			</p>
			</td>
			<td valign="top" class=" <?php $kleur ?>"> <?php
		if (strlen($row['Info']) > 2) { ?>
			<a HREF="javascript:void(0)"
onclick="open('info.php?<?php echo $row['Onderwerp']; ?>','miniwin','toolbar=0,location=0,directories=0,status=1,menubar=0,scrollbars=1,resizable=1,width=480,height=280')">info</a></p>
<?php }
$programma = mysql_query( "SELECT * FROM programma WHERE Onderwerp = '".$row['Onderwerp'] . "'");
$lengteprogramma = mysql_numrows($programma);
if ($lengteprogramma >= 1)
{ ?>

<a HREF="javascript:void(0)"
onclick="open('Programma.php?<?php echo $row['Onderwerp']; ?>','miniwin','toolbar=0,location=0,directories=0,status=1,menubar=0,scrollbars=1,resizable=1,width=480,height=280')">Programma</a></p>
			<?php
			}
		echo'</td>
			</tr>';
			
		 echo '</div>';
		}
		?>
		<form action="" method="post">
		<label for="">*onderwerp:</label>
		<input type="text" name="Onderwerp" /><br/>
		<label for="">*dag:</label>
		<input type="text" name="Dag" />
		<input type="submit" name="Delete" value="Delete" /> <br/>
		</form>
		<?php 
	if(!empty($_POST['Delete']))
	{ 
		$onderwerp= $_POST['Onderwerp'];	
		$dag= $_POST['Dag'];	
		$query = "DELETE FROM " .$demaand. " WHERE  Onderwerp = '". $onderwerp . "' AND Dag = " . $dag . ""; 
		echo $query;   
		mysql_query($query) or die(mysql_error()); 
		//mysql_close($con);
	}
	?>	
		</table>
		</div>
		<?php

wat ik denk dat er gebeurt is dat hij de bovenste query om de een of andere reden opnieuw uitvoert in plaats van de delete query de querry word namelijk ook niet teruggegeven etc.

met alleen dit document werkt het dus maar van buitenaf word de maand aangegeven en als die twee documenten samen zijn (ook al maak een $demaand in dit document opnieuw aan) dan ververst ie het geheel. de namen van de knoppen verschillen ook daar heb ik al naar gekeken. heb ook al geprobeerd om de eerste knop na gebruik te unsetten maar dat werkte ook niet :S

kan iemand mij hiermee helpen??
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan