Lege pagina met script
Ik ben niet zo heel goed in PHP maar ik wou een script maken die queries uit mijn database delete die geen resultaten opleveren in een ander tabel.
Dit is het script:
Quote:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
require_once('./includes/core.php');
require_once('./includes/session.php');
$deletegroup = mysql_query("SELECT id FROM groups_details");
$query = msyql_query("SELECT * from cms_homes WHERE location='$deletegroup'");
if($query == null){
mysql_query("DELETE FROM groups_details WHERE id='$deletegroup'");
}else{
echo "Geen groep gevonden";
}
?>
require_once('./includes/core.php');
require_once('./includes/session.php');
$deletegroup = mysql_query("SELECT id FROM groups_details");
$query = msyql_query("SELECT * from cms_homes WHERE location='$deletegroup'");
if($query == null){
mysql_query("DELETE FROM groups_details WHERE id='$deletegroup'");
}else{
echo "Geen groep gevonden";
}
?>
Eerst kreeg ik een paar errors en dat waren typfouten. Maar als ik het script nu uitvoer krijg ik een lege pagina!
Wat is het probleem? Ik zie het namelijk niet!
Groetjes,
Bart
Dit is echter alleen bij select statements. Bij de andere statements als update insert en delete returnt het enkel true of false. Kijk ook eens naar joins in mysql, dat zou veel efficienter werken in dit geval je zou dan alles in een query af kunnen.
Verder snap ik volgens mij wel wat je in je code wil doen, maar dat gaat op deze manier niet werken. Je fetcht de gegevens van de eerste queries nergens ;-)
Verder zal ik even uitleggen wat ik met het script wil.
bij $deletegroup selecteert hij de groep. Daarna moet hij bij $query checken of er bepaale stickers of items op die groep zijn. Als dat niet het geval is, dan kan hij bij if vervolgens de groep verwijderen. is dat wel het geval, dan laat hij de groep staan!
nee, je moet mysql_num_rows gaan gebruiken
nu heb ik dit:
Quote:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
require_once('./includes/core.php');
require_once('./includes/session.php');
$deletegroup = mysql_query("SELECT id FROM groups_details");
$query = mysql_query("SELECT * from cms_homes WHERE location='$deletegroup'");
$num_rows = mysql_num_rows($query);
if($num_rows == 0){
mysql_query("DELETE FROM groups_details WHERE id='$deletegroup'");
mysql_query("DELETE from groups_memberships where groupid='$deletegroup'");
echo "Het is gelukt!";
}else{
echo "Geen groep gevonden";
}
?>
require_once('./includes/core.php');
require_once('./includes/session.php');
$deletegroup = mysql_query("SELECT id FROM groups_details");
$query = mysql_query("SELECT * from cms_homes WHERE location='$deletegroup'");
$num_rows = mysql_num_rows($query);
if($num_rows == 0){
mysql_query("DELETE FROM groups_details WHERE id='$deletegroup'");
mysql_query("DELETE from groups_memberships where groupid='$deletegroup'");
echo "Het is gelukt!";
}else{
echo "Geen groep gevonden";
}
?>
Maar nu doet hij het nog niet, want de pagina zegt steeds 'Geen groep gevonden'. Doe ik nog wat fout bij de mysql_num_rows?
In $deletegroup zit het resultaat van een query. Dat kan je nooit zomaar weer even in een andere query zetten. Lees eens een tutorial over sql door.
Quote:
SELECT * from cms_homes WHERE location='655'
En als hij niets kan vinden in de cms_homes op location 655 moet hij hem deleten bij de if else ding! Maar op het één of andere manier doet hij dat niet.
Dan zal je toch eerst de resultaten moeten fetchen om de id's te krijgen.
http://nl3.php.net/manual/en/function.mysql-fetch-assoc.php
gewoon het resultaat fetchen kijk naar Gewijzigd op 22/05/2011 21:43:15 door Victor -