PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks. |
 |
|

13-12-2006, 14:26
|
druckgott
Junior Member
|
|
Registriert seit: Mar 2004
Beiträge: 105
|
|
Problem mit Checkbox und variable
Hallo ich habe folgendes Script:
PHP-Code:
<form action = "<?php $PHP_SELF ?>" method
= "post">
<?php
if ($cd1)
echo "TEST<p>";
include "connect.php";
mysql_select_db($datenbank) OR die(mysql_error());
$sql = "SELECT name, cid FROM jos_ponygallery_catg;";
$res = mysql_query($sql) OR die(mysql_error());
$num = mysql_num_rows($res);
for($x=0;$x<$num;$x++)
{
$name = mysql_result($res, $x, "name");
echo "<input type='checkbox' name='cd".$x."' value='v' checked>";
echo $name;
echo "<p></p>";
}
echo "<input type = 'submit'>";
?>
Allerdings haut das jetzt nicht hin ich will wenn ich eine Checkbox in dem fall die mit der variable cd1 aktiv habe das er mir den text oben ausgibt.
Ich bekomme das aber nicht hin. Ich weiß nicht an was das liegt.
Kann mir da jemand helfen?
Normal müsste doch der name der Checkbox jetzt bei jedem durchlauf hochzählen. Die erste Variable $cd0 dann $cd1 dann $cd2 usw.?
Was mach ich da falsch.
MFG
druckgott
|

13-12-2006, 14:28
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.772
|
|
1. register_globals
2. nicht $PHP_SELF sondern $_SERVER['PHP_SELF']
3. print_r($_POST);
gruß
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

14-12-2006, 18:04
|
druckgott
Junior Member
|
|
Registriert seit: Mar 2004
Beiträge: 105
|
|
habe das script jetzt erweitert!
PHP-Code:
<form action = "<?php $_SERVER['PHP_SELF']?>" method = "post">
<?php
include "connect.php";
mysql_select_db($datenbank) OR die(mysql_error());
$sql1 = "SELECT cid,name FROM jos_ponygallery_catg;";
$sql2 = "SELECT chid, checked FROM jos_ponygallery_chro;";
$res1 = mysql_query($sql1) OR die(mysql_error());
$res2 = mysql_query($sql2) OR die(mysql_error());
$num1 = mysql_num_rows($res1);
$num2 = mysql_num_rows($res2);
//Einsetzen der Variablen
for ($r=0;$r<$num2;$r++)
{
if ($_POST["checkbox".$r.""] == "1")
{
$update = "update jos_ponygallery_chro set checked = '1'";
mysql_db_query($update, $r, 1)
}
}
//Überprüfen ob beide Tabellen die gleiche Anzahl an Zeilen haben
$anzahl = $num1 - $num2;
if ($anzahl <> 0)
{
$zeile = $num2+1;
for(z=0;$z<$anzahl;$z++)
{
$insert = "insert into jos_ponygallery_chro;";
mysql_db_query($insert, $zeile, 0)
}
}
//Checkboxen auslesen und auflisten
for($x=0;$x<$num1;$x++)
{
$cid = mysql_result($res1, $x, "cid");
$name = mysql_result($res1, $x, "name");
$chid = mysql_result($res2, $x, "chid");
$checked = mysql_result($res2, $x, "checked");
if ($checked == 1)
{
$an = "checked";
}
$name = mysql_result($res1, $x, "name");
echo "<input type='checkbox' name='checkbox".$x."' value='1' $an>";
echo $name;
echo "<p></p>";
}
echo "<input type = 'submit'>";
?>
in zeile 22 hab ich einen fehler mit der klammer, ich weiß allerdings auch nicht genau wie ich etwas in eine Tabelle eintrage bzw. update
kann sich das jemand mal anschauen
Ich weiß das das mit sicherheit nicht die schnellste metode ist allerdings lerne ich es wie gesagt gerade
mfg
druckgott
|

14-12-2006, 18:25
|
penizillin
PHP Guru
|
|
Registriert seit: Feb 2004
Beiträge: 10.166
|
|
error_reporting() höher setzen hilft.
|

14-12-2006, 18:29
|
druckgott
Junior Member
|
|
Registriert seit: Mar 2004
Beiträge: 105
|
|
was heißt error_reporting() höher setzen wo soll ich das den hinsetzen
|

14-12-2006, 18:32
|
penizillin
PHP Guru
|
|
Registriert seit: Feb 2004
Beiträge: 10.166
|
|
|

14-12-2006, 18:51
|
druckgott
Junior Member
|
|
Registriert seit: Mar 2004
Beiträge: 105
|
|
diesen error bekomme ich
Parse error: parse error, unexpected '}' in /var/www/vhosts/sss/httpdocs/chronik/script/test.php on line 22
hoffe so ist das jetzt ok
|

14-12-2006, 18:54
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 25.236
|
|
Wenn irgendwas unexpected ist, dann fehlt meistens kurz davor was.
Und, vermisst du was am Ende der Zeile davor?
OffTopic: Muss man in den letzten Tagen immer öfter sagen: Kinder, lernt doch bitte die Grundlagen der Syntax wenigstens so weit, dass ihr bescheuerte Parse Errors selber finden könnt ...
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

14-12-2006, 18:55
|
Griecherus
PHP Senior
|
|
Registriert seit: May 2005
Ort: Berlin
Beiträge: 1.036
|
|
Na dann schau dir doch Zeile 22 +- eine Zeile drüber/ drunter an, denn laut Fehlermeldung ist da eine geschweifte Klammer fehl am Platze.
|

14-12-2006, 19:29
|
druckgott
Junior Member
|
|
Registriert seit: Mar 2004
Beiträge: 105
|
|
ne sehe ich eben nicht geht auf 2 mal auf und 2 mal zu oder bin ich jetzt blind?
|

14-12-2006, 19:31
|
Griecherus
PHP Senior
|
|
Registriert seit: May 2005
Ort: Berlin
Beiträge: 1.036
|
|
Code:
mysql_db_query($update, $r, 1)
Semikolon am Ende der Zeile fehlt. Stattdessen trifft Parser auf schließende geschweifte Klammer -> parse error mit unexpected }.
Geändert von Griecherus (14-12-2006 um 19:34 Uhr)
|

14-12-2006, 19:32
|
penizillin
PHP Guru
|
|
Registriert seit: Feb 2004
Beiträge: 10.166
|
|
Zitat:
... parse error, unexpected '}' ...
|
"php hat eigentlich noch etwas erwartet, die klammer kam zu früh."
|

14-12-2006, 19:33
|
druckgott
Junior Member
|
|
Registriert seit: Mar 2004
Beiträge: 105
|
|
ah super danke da war ich wohl blind
ist mir garnicht aufgefallen wegen der { klammer war ich total auf der Klammer und hab das nicht gesehen
|

15-12-2006, 15:21
|
druckgott
Junior Member
|
|
Registriert seit: Mar 2004
Beiträge: 105
|
|
So jetzt hab ich nochmal eine Frage er gibt mir diesen Fehler aus
Incorrect database name 'INSERT INTO jos_ponygallery_chro (chid, checked) VALUES ('2', '0');'
und die Tabelle sieht so aus:
Code:
CREATE TABLE `jos_ponygallery_chro` (
`chid` int(11) NOT NULL auto_increment,
`checked` int(11) NOT NULL default '0',
PRIMARY KEY (`chid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
An was liegt das jetzt?
|

15-12-2006, 15:26
|
penizillin
PHP Guru
|
|
Registriert seit: Feb 2004
Beiträge: 10.166
|
|
vielleicht daran, wass man zahlenwerte nicht in hochkommata einschließt, dagegen die spalten aber sehr wohl in backticks.
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Thema bewerten |
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|