Lege pagina met script
Hallo,
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:
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
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
Ik snap niet goed wat het zou moeten doen, maar in
staat een spelfout. Het moet mysql_query zijn.
staat een spelfout. Het moet mysql_query zijn.
Gewijzigd op 22/05/2011 11:11:50 door Joris van Rijn
Mysql_query() returnt geen null maar een select handler als hij is gelukt en false als het mislukt.
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 ;-)
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 ;-)
Oké, dus ik moet gaan fetchen. Ik ga even zoeken op Google.
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!
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
Oké bedankt,
nu heb ik dit:
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?
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.
Ja, maar $deletegroup hoort ook een resultaat te zijn! Het resultaat dat hij het ID van een groep ophaalt. En dat moet hij er vervolgens bij $query inzetten. dan krijg je dus bijv:
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.
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.
gewoon het resultaat fetchen kijk naar http://nl3.php.net/manual/en/function.mysql-fetch-assoc.php
Gewijzigd op 22/05/2011 21:43:15 door Victor -




